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 と管理]が表示されます。
  6. 左メニューから[サービスアカウント]を選択します。
  7. [サービスアカウントを作成]ボタンを押下します。
  8. 任意のサービスアカウント名を入力し、[作成]ボタンを押下します。[このサービス アカウントにプロジェクトへのアクセスを許可します]は、[続行]ボタンでスキップしてください。
  9. [ユーザーにこのサービス アカウントへのアクセスを許可]項目の[キーの作成(オプション)]で、[キーを作成ボタン]をクリックします。
  10. キーのタイプに[JSON]を選択し、[作成]ボタンを押下します。秘密鍵ファイルがダウンロードされます。
  11. [完了]ボタンを押下します。新しいサービスアカウントが作成されます。
  12. 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]ボタンを押下します。
  3. データソースとなるサービスが一覧表示されます。その中から、[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 に保存されているクエリの実行結果をデータソースとして扱う必要があります。