Upgrade to Pro — share decks privately, control downloads, hide ads and more …

⚡Lightdashを試してみた

 ⚡Lightdashを試してみた

2c6a9bc003b77685330cc9359b6fbbc4?s=128

k_data_analyst

May 17, 2022
Tweet

More Decks by k_data_analyst

Other Decks in Technology

Transcript

  1. ⚡Lightdashを試してみた

  2. 自己紹介 株式会社オープンエイト CS企画部 データ戦略グループ 香村 貴之 / Komura Takayuki ・データ基盤の開発・保守

    ・Salesforceのシステム管理者 @k_data_engineer
  3. アジェンダ 1. Lightdashとは? 2. 実行環境の準備 3. できること/できないこと

  4. ・所謂BIツールに属するサービス ・有名どころだとUI/UXがLookerに似ている ・OSS(無償)とCloud(有償)で提供されている ・dbtのプロジェクトをベースに、抽出する  デー タ(カラム)を選択できる Lightdashとは? 特徴

  5. ・data build toolの略称 ・ELT処理のTをSELECT文で実装できる ・OSS(無償)とCloud(一部有償)で提供されている ・yml形式でunique/not nullといったテストの実装  や、descriptionの定義ができる ・データリネージを自動で生成してくれる 特徴

    dbtとは?
  6. 実行環境の準備 Google Compute Engine (Container-Optimized OS) Google Compute EngineのContainer-Optimized OSインスタンスを起動します。

    Dockerイメージをもとにdbtを起動します。
  7. 実行環境の準備 Google Compute Engine (Container-Optimized OS) $ dbt init のコマンドでdbtのプロジェクトを作成します。

    加工前サンプル用データを BigQueryに用意しておき、dbtで加工処理を実装した上で $ dbt run のコマンドで加工後のテーブルを BigQueryに作成します。
  8. 実行環境の準備 Google Compute Engine (Container-Optimized OS) Githubリポジトリに、dbtプロジェクトのコードを pushします。

  9. 実行環境の準備 Google Compute Engine (Container-Optimized OS) DockerイメージをもとにLightdashを起動します。 接続先をGithubリポジトリにして、dbtプロジェクトのコードを Lightdashから参照できるようにします。

  10. 実行環境の準備 Google Compute Engine (Container-Optimized OS) これでLightdashからBigQueryにSQLを投げ、データ抽出及び可視化ができるようになります。

  11. サンプルデータの説明 データセット pokemon_mart pokemon_warehouse テーブル pokemons (ポケモンの基本データ ) types (ポケモンのタイプデータ

    ) pokemon_details (ポケモンの詳細データ )
  12. できること/できないこと Explore>Tables:データ抽出、グラフ化を行うページ

  13. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと version: 2 models: - name: pokemon_details description: ‘ポケモンの詳細データ

    ’ meta: label: ‘DM:ポケモン詳細データ ’ config: tags: [‘data_mart’]   通常はnameフィールドの文字列が表示されるが、 meta フィールドを追加することで、テーブルの表示名を制御で きます。 pokemon_details.yml
  14. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと version: 2 models: - name: pokemon_details description: ‘ポケモンの詳細データ

    ’ meta: label: ‘DM:ポケモン詳細データ ’ config: tags: [‘data_mart’]   接続先を設定する際にタグを指定すると、そのタグがつ けられたテーブル(モデル)のみを表示させることができ ます。 pokemon_details.yml
  15.     できること/できないこと Lightdash Project Project Project ・tagA ・tagC ・tagB

    ・tagC 全てのテーブルが表示される tagA,tagCが設定されたテーブルが表示される tagB,tagCが設定されたテーブルが表示される 接続先 タグ
  16. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと pokemon_details.yml   columns: - name: pokemon_id meta: dimension:

    label: ‘図鑑ナンバー’ metrics: count_pokemon_id: label: ‘(CountDis)図鑑ナンバー’ type: count_distinct - name: pokemon_name metaフィールドを追加し、その中で dimensionやmetrics を定義すると、Lightdash上で選択できるようになりま す。
  17. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと

  18. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと 選べるグラフは ・縦棒グラフ ・横棒グラフ ・折れ線グラフ ・散布図 ・テーブル形式 ・単一数値 の6種類

    ファネルグラフや円グラフを作ることはできません。 また、一部のdimensionをpivotさせてピボットテーブルを作 ることもできません。 (クロス分析ができないのが残念ポイン ト)
  19. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと

  20. Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと フィルターの組み合わせは ・All(全てand条件) ・Any(全てor条件) のどちらかしか選べないため、 A and B and

    (C or D) といった条件を表現できません。 また、複数のdimensionを組み合わせたり、関数を使ったカ スタムフィルター的なものを作ることもできません。
  21. Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと

  22. Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと グラフ単位でフィルターをかけることができません。 例えば、DM:ポケモン詳細データ タイプ1というフィルターを 追加し、条件にでんきを入力したとします。 この際裏側では、DM:ポケモン詳細データ テーブルから生 成された全てのグラフに対して、 WHERE

    タイプ1 = ‘でんき’ という条件が付与されます。
  23. Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと また、フィルターは全て and条件で処理されます。 例えば、DM:ポケモン詳細データ タイプ1とDM:ポケモン詳 細データ タイプ2をフィルターに追加し、それぞれの条件に でんきを入力したとします。 この場合、

    WHERE タイプ1 = ‘でんき’ AND タイプ2 = ‘でんき’ という条件が、DM:ポケモン詳細データ テーブルから作られ た全てのグラフに付与されます。
  24. まとめ ・dbtのプロジェクトを整備しておくことで、GUIベースでデータ 抽出・可 視化できる状態を作れるのが便利! ・簡単な集計はLightdash、複雑な集計はcsvで落としてExcelで 集計 と割り切るのはありかも? ・今後のアップデートに期待が高まる💪