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.1k
⚡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
530
"あえて"データ整備人になるメリットを前向きに考えてみた
k_data_analyst
0
110
Other Decks in Technology
See All in Technology
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
180
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
330
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Site-Speed That Sticks
csswizardry
0
28
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Rails Girls Zürich Keynote
gr2m
94
13k
Embracing the Ebb and Flow
colly
84
4.5k
KATA
mclloyd
29
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Pragmatic Product Professional
lauravandoore
31
6.3k
Speed Design
sergeychernyshev
25
620
Adopting Sorbet at Scale
ufuk
73
9.1k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
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で 集計 と割り切るのはありかも? ・今後のアップデートに期待が高まる💪