🍎

GASとRedashでデータを自動化する方法

2023/11/30に公開

概要

Google Apps Script (GAS)とRedashのAPIを組み合わせることで、Redashのクエリ結果をGoogleスプレッドシートに自動的に出力することが可能です。この記事では、CSV形式のAPIを使用してデータを取得し、スプレッドシートに挿入する方法を詳細に説明します。この組み合わせにより、データの可視化や分析がより容易になります。

Redashとは

Redashは、データベースから情報を取得し、それを視覚的に表示するためのオープンソースのデータビジュアライゼーションツールです。SQLクエリを使用してデータを取得し、その結果をダッシュボード上で視覚的に表示することができます。

Google Apps Script (GAS)とは

Google Apps Script (GAS)は、Googleのクラウド上で動作するJavaScriptベースのスクリプト言語です。GASを使用すると、GoogleスプレッドシートやGoogleドキュメントなどのGoogleのサービスを自動化したり、カスタマイズしたりすることができます。

手順

  1. まず、RedashからAPIを取得します。APIはCSV形式を使用します。RedashのAPIを取得する方法は以下の記事を参照してください。RedashのAPIを取得する方法

  2. 次に、GASを開き、新しいスクリプトを作成します。スクリプトエディタは、GoogleスプレッドシートやGoogleドキュメントの「ツール」メニューからアクセスできます。

  3. スクリプトには、APIからデータを取得し、スプレッドシートに挿入する関数を定義します。この関数は、APIからデータを取得し、そのデータをスプレッドシートの特定の範囲に挿入する役割を果たします。

具体的には

以下の関数はRedashのAPIからデータを取得し、そのデータをスプレッドシートに挿入します。

function insertDataFromRedash() {
  // RedashのAPIエンドポイント
  var apiEndpoint = 'https://redash.yourdomain.com/api/queries/your_query_id/results.csv?api_key=your_api_key';

  // APIからデータを取得
  var response = UrlFetchApp.fetch(apiEndpoint);

  // CSV形式のデータを2次元配列に変換
  var csvData = Utilities.parseCsv(response.getContentText());

  // スプレッドシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // スプレッドシートにデータを挿入
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
  1. APIからデータを取得するには、UrlFetchApp.fetch(apiEndpoint)を使用します。これにより、APIからCSV形式のデータを取得できます。apiEndpointは、取得したいデータのAPIエンドポイントを指定します。

  2. 取得したデータは、Utilities.parseCsv(response.getContentText())を使用して配列に変換します。これにより、CSV形式のデータを2次元配列に変換することができます。

  3. 最後に、setValues(csvData)を使用してスプレッドシートにデータを挿入します。このメソッドは、指定した範囲に2次元配列のデータを挿入します。

補足

APIからデータを取得する際にエラーが発生した場合、エラーメッセージをログに記録し、Slackに通知する方法などがあります。詳細は以下の記事を参照してください。RedashのエラーハンドリングとSlackへの通知

また、時間や日付などのトリガーを設定することで自動的にデータを取得できる便利な方法もあります。詳細は以下の記事を参照してください。GASでのトリガーの設定

まとめ

GASとRedashのAPIを組み合わせることで、Redashのクエリ結果を自動的にGoogleスプレッドシートに出力することができます。これにより、データの可視化や分析がより容易になります。

ただし、APIキーは秘密情報なので、外部に漏れないように注意してください。また、スクリプトのエラーハンドリングを適切に行うことで、問題が発生した際に迅速に対応することが可能です。

参考文献

以下に、本記事の内容を深く理解するための参考文献をいくつか紹介します。

  1. Google Apps Scriptの公式ドキュメンテーション
    Google Apps Scriptの公式ドキュメンテーションは、GASの基本的な使い方や、スプレッドシートとの連携方法などを詳しく説明しています。

  2. Redashの公式ドキュメンテーション
    Redashの公式ドキュメンテーションは、Redashの基本的な使い方や、APIの使用方法などを詳しく説明しています。

  3. Google Apps Scriptでのエラーハンドリング
    この記事は、Google Apps Scriptでのエラーハンドリングについて詳しく説明しています。

これらのリソースを参考にすることで、GASとRedashのAPIを組み合わせたデータ取得とその自動化についてより深く理解することができます。

Discussion