Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
⚡Lightdashを試してみた
Search
k_data_analyst
May 17, 2022
Technology
1
1.3k
⚡Lightdashを試してみた
k_data_analyst
May 17, 2022
Tweet
Share
More Decks by k_data_analyst
See All by k_data_analyst
dbt v1.8で追加された単体テストを触ってみた
k_data_analyst
2
740
"あえて"データ整備人になるメリットを前向きに考えてみた
k_data_analyst
0
140
Other Decks in Technology
See All in Technology
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
2k
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
250
データモデリング通り #2オンライン勉強会 ~方法論の話をしよう~
datayokocho
0
160
2時間で300+テーブルをデータ基盤に連携するためのAI活用 / FukuokaDataEngineer
sansan_randd
0
150
Amazon Q と『音楽』-ゲーム音楽もAmazonQで作成してみた感想-
senseofunity129
0
140
事業特性から逆算したインフラ設計
upsider_tech
0
100
Segment Anything Modelの最新動向:SAM2とその発展系
tenten0727
0
750
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.3k
10年以上続くプロダクトで今取り組んでること、取り組もうとしていること
sansantech
PRO
2
110
マルチプロダクト×マルチテナントを支えるモジュラモノリスを中心としたアソビューのアーキテクチャ
disc99
1
520
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
7
320
AIに頼りすぎない新人育成術
cuebic9bic
3
300
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Site-Speed That Sticks
csswizardry
10
770
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
BBQ
matthewcrist
89
9.8k
Fireside Chat
paigeccino
38
3.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
Transcript
⚡Lightdashを試してみた
自己紹介 株式会社オープンエイト CS企画部 データ戦略グループ 香村 貴之 / Komura Takayuki ・データ基盤の開発・保守
・Salesforceのシステム管理者 @k_data_engineer
アジェンダ 1. Lightdashとは? 2. 実行環境の準備 3. できること/できないこと
・所謂BIツールに属するサービス ・有名どころだとUI/UXがLookerに似ている ・OSS(無償)とCloud(有償)で提供されている ・dbtのプロジェクトをベースに、抽出する デー タ(カラム)を選択できる Lightdashとは? 特徴
・data build toolの略称 ・ELT処理のTをSELECT文で実装できる ・OSS(無償)とCloud(一部有償)で提供されている ・yml形式でunique/not nullといったテストの実装 や、descriptionの定義ができる ・データリネージを自動で生成してくれる 特徴
dbtとは?
実行環境の準備 Google Compute Engine (Container-Optimized OS) Google Compute EngineのContainer-Optimized OSインスタンスを起動します。
Dockerイメージをもとにdbtを起動します。
実行環境の準備 Google Compute Engine (Container-Optimized OS) $ dbt init のコマンドでdbtのプロジェクトを作成します。
加工前サンプル用データを BigQueryに用意しておき、dbtで加工処理を実装した上で $ dbt run のコマンドで加工後のテーブルを BigQueryに作成します。
実行環境の準備 Google Compute Engine (Container-Optimized OS) Githubリポジトリに、dbtプロジェクトのコードを pushします。
実行環境の準備 Google Compute Engine (Container-Optimized OS) DockerイメージをもとにLightdashを起動します。 接続先をGithubリポジトリにして、dbtプロジェクトのコードを Lightdashから参照できるようにします。
実行環境の準備 Google Compute Engine (Container-Optimized OS) これでLightdashからBigQueryにSQLを投げ、データ抽出及び可視化ができるようになります。
サンプルデータの説明 データセット pokemon_mart pokemon_warehouse テーブル pokemons (ポケモンの基本データ ) types (ポケモンのタイプデータ
) pokemon_details (ポケモンの詳細データ )
できること/できないこと Explore>Tables:データ抽出、グラフ化を行うページ
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと version: 2 models: - name: pokemon_details description: ‘ポケモンの詳細データ
’ meta: label: ‘DM:ポケモン詳細データ ’ config: tags: [‘data_mart’] 通常はnameフィールドの文字列が表示されるが、 meta フィールドを追加することで、テーブルの表示名を制御で きます。 pokemon_details.yml
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと version: 2 models: - name: pokemon_details description: ‘ポケモンの詳細データ
’ meta: label: ‘DM:ポケモン詳細データ ’ config: tags: [‘data_mart’] 接続先を設定する際にタグを指定すると、そのタグがつ けられたテーブル(モデル)のみを表示させることができ ます。 pokemon_details.yml
できること/できないこと Lightdash Project Project Project ・tagA ・tagC ・tagB
・tagC 全てのテーブルが表示される tagA,tagCが設定されたテーブルが表示される tagB,tagCが設定されたテーブルが表示される 接続先 タグ
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上で選択できるようになりま す。
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと 選べるグラフは ・縦棒グラフ ・横棒グラフ ・折れ線グラフ ・散布図 ・テーブル形式 ・単一数値 の6種類
ファネルグラフや円グラフを作ることはできません。 また、一部のdimensionをpivotさせてピボットテーブルを作 ることもできません。 (クロス分析ができないのが残念ポイン ト)
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと
Explore>Tables:データ抽出、グラフ化を行うページ できること/できないこと フィルターの組み合わせは ・All(全てand条件) ・Any(全てor条件) のどちらかしか選べないため、 A and B and
(C or D) といった条件を表現できません。 また、複数のdimensionを組み合わせたり、関数を使ったカ スタムフィルター的なものを作ることもできません。
Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと
Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと グラフ単位でフィルターをかけることができません。 例えば、DM:ポケモン詳細データ タイプ1というフィルターを 追加し、条件にでんきを入力したとします。 この際裏側では、DM:ポケモン詳細データ テーブルから生 成された全てのグラフに対して、 WHERE
タイプ1 = ‘でんき’ という条件が付与されます。
Browse>Dashboards:保存したグラフを並べてダッシュボードを作るページ できること/できないこと また、フィルターは全て and条件で処理されます。 例えば、DM:ポケモン詳細データ タイプ1とDM:ポケモン詳 細データ タイプ2をフィルターに追加し、それぞれの条件に でんきを入力したとします。 この場合、
WHERE タイプ1 = ‘でんき’ AND タイプ2 = ‘でんき’ という条件が、DM:ポケモン詳細データ テーブルから作られ た全てのグラフに付与されます。
まとめ ・dbtのプロジェクトを整備しておくことで、GUIベースでデータ 抽出・可 視化できる状態を作れるのが便利! ・簡単な集計はLightdash、複雑な集計はcsvで落としてExcelで 集計 と割り切るのはありかも? ・今後のアップデートに期待が高まる💪