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
720
"あえて"データ整備人になるメリットを前向きに考えてみた
k_data_analyst
0
140
Other Decks in Technology
See All in Technology
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
720
M3 Expressiveの思想に迫る
chnotchy
0
100
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
530
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1k
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
270
Witchcraft for Memory
pocke
1
270
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
250
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
220
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
620
IIWレポートからみるID業界で話題のMCP
fujie
0
790
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
130
Postman AI エージェントビルダー最新情報
nagix
0
110
Featured
See All Featured
Code Review Best Practice
trishagee
68
18k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
33
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
It's Worth the Effort
3n
185
28k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Documentation Writing (for coders)
carmenintech
71
4.9k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
What's in a price? How to price your products and services
michaelherold
246
12k
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で 集計 と割り切るのはありかも? ・今後のアップデートに期待が高まる💪