RedashとGoogle SpreadSheetを連携する

Posts

Google SpreadSheetのデータをRedashで扱うための設定方法の手順です。

動作を確認した環境

  • Redash v5.0.2

手順

RedashとGoogle SpreadSheetを連携するには、SpreadSheetとRedashそれぞれの設定が必要です。 大まかな流れは次のとおり。

  1. Google SpreadSheetでアクセスキーの発行と共有設定をする。
  2. Redashで、アクセスキーの読み込みを行いデータソースに追加する。
  3. 追加したデータソースからクエリを作成し、Google SpreadSheet内のデータを表示する。

Google SpreadSheetの設定

Cloud Platformの設定

  1. グラフ化したいGoogle SpreadSheetファイルを開きます。
  2. [ツール]メニュー >[スクリプト エディタ]を選択します。
  3. スクリプトエディタで、[リソース]メニュー >[Google Platformプロジェクト]を選択します。このとき、プロジェクトの保存を求められるので任意の名前で保存してください。
  4. 「project-id-」から始まるリンクを選択します。Google Cloud Platformダッシュボードが表示されます。 5.[プロジェクト情報]セクションの[プロジェクト設定に移動]を選択します。[IAMと管理]が表示されます。
  5. 左メニューから[サービスアカウント]を選択します。 7.[サービスアカウントを作成]ボタンを押下します。
  6. 任意のサービスアカウント名を入力し、[作成]ボタンを押下します。[このサービス アカウントにプロジェクトへのアクセスを許可します]は、[続行]ボタンでスキップしてください。 9.[ユーザーにこのサービス アカウントへのアクセスを許可]項目の[キーの作成(オプション)]で、[キーを作成ボタン]をクリックします。
  7. キーのタイプに[JSON]を選択し、[作成]ボタンを押下します。秘密鍵ファイルがダウンロードされます。 11.[完了]ボタンを押下します。新しいサービスアカウントが作成されます。
  8. Google Cloud Platformとスクリプトエディタを閉じます。

共有設定

  1. Google SpreadSheetで、[ファイル]メニュー >[共有]を選択します。
  2. [ユーザー]項目に取得した秘密鍵ファイルのclient_emailに記載されているメールアドレスを入力し、[完了]ボタンを押下します。
  {
    "type": "service_account",
    "project_id": "project-id-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "private_key": "-----BEGIN PRIVATE KEY-----xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n",
    "client_email": "xxxxxx@project-id-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.iam.gserviceaccount.com",
    "client_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/xxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx.iam.gserviceaccount.com"
  }

これで、Google SpreadSheetの設定は完了です。

Redashの設定

データソースの追加

  1. Redash右上のドロップメニューから、[Data Souces]を選択します。 2.[New Data Source]ボタンを押下します。
  2. データソースとなるサービスが一覧表示されます。その中から、[Google Spreadsheet]を選びます。 4.[Name]項目に任意の値、[JSON Key File]項目にGoogle SpreadSheetの設定でダウンロードした秘密鍵ファイルを指定します。 5.[Save]ボタンを押下します。Data Sourceが追加されます。

クエリの作成(Google SpreadSheet内のデータを表示)

  1. Redash上中央の[Create]メニューから、[Query]を選択します。

  2. 左ドロップメニューから、先ほど追加したデータソースを選びます。右のテキストフィールドに、SpreadSheetのID|シート番号を指定します。

  3. SpreadSheetのIDは、SpreadSheetのURLで確認できます。

    • https://docs.google.com/spreadsheets/d/<この部分>/edit#gid=0
    • シート番号(インデックス番号)は、SpreadSheetファイルの左から0,1,2.. と振られている。1枚目のシートなら0
  4. [Execute]ボタンを押下すると、SpreadSheet内のデータを取得します。

これでRedashの設定とクエリ作成が完了です。

Google SpreadSheetをデータソースとした場合の注意点

  • 1行目はヘッダー扱いです。
  • SpreadSheet内の全件を取得します。
  • 絞り込みしたいときは、Redash DBに保存されているクエリの実行結果をデータソースとして扱う必要があります。