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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
k_data_analyst
May 17, 2022
Technology
1
1.4k
⚡Lightdashを試してみた
k_data_analyst
May 17, 2022
Tweet
Share
More Decks by k_data_analyst
See All by k_data_analyst
入社してからデータ分析基盤でやってきたことを 真面目にドヤる!!
k_data_analyst
0
34
dbt v1.8で追加された単体テストを触ってみた
k_data_analyst
2
800
"あえて"データ整備人になるメリットを前向きに考えてみた
k_data_analyst
0
150
Other Decks in Technology
See All in Technology
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.2k
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
760
Cosmos World Foundation Model Platform for Physical AI
takmin
0
890
配列に見る bash と zsh の違い
kazzpapa3
1
150
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.5k
Red Hat OpenStack Services on OpenShift
tamemiya
0
110
Tebiki Engineering Team Deck
tebiki
0
24k
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
410
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
プロポーザルに込める段取り八分
shoheimitani
1
250
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
370
Featured
See All Featured
Marketing to machines
jonoalderson
1
4.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Prompt Engineering for Job Search
mfonobong
0
160
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
320
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
Statistics for Hackers
jakevdp
799
230k
A Soul's Torment
seathinner
5
2.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
First, design no harm
axbom
PRO
2
1.1k
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で 集計 と割り切るのはありかも? ・今後のアップデートに期待が高まる💪