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

データ基盤における管理の考え方 〜dbtの極意〜:LayerXにdbtを導入するときに意識したこと

Civitaspo
August 22, 2023

データ基盤における管理の考え方 〜dbtの極意〜:LayerXにdbtを導入するときに意識したこと

データ基盤における管理の考え方 〜dbtの極意〜 https://findy.connpass.com/event/291767/

[カジュアル面談リンク]
全員アナリストを実現するData Enablingを支えるData Engineeringについて語らいましょう〜〜!!!
https://jobs.layerx.co.jp/2c0258fa624f4a25975bc59767a81225

[資料中のリンク]
バクラク事業におけるデータ組織とデータ基盤 2023:https://tech.layerx.co.jp/entry/bakuraku-data-management-2023
バクラクにはアナリストが不在?いいえ全員アナリストです!そんな理想を実現するData Enabling teamをつくります:https://note.com/shuntak/n/na78d757de509
dbt materialization:https://docs.getdbt.com/docs/build/materializations
dbt bigquery setup:https://docs.getdbt.com/docs/core/connect-data-platform/bigquery-setup#service-account-impersonation

Civitaspo

August 22, 2023
Tweet

More Decks by Civitaspo

Other Decks in Technology

Transcript

  1. 2 © 2023 LayerX Inc. 所属 バクラク事業部Platform Engineering部DevOpsグループ Mgr 兼

    バクラク事業部Platform Engineering部Product Securtyグループ 兼 バクラク事業部Data&ML部Dataグループ 兼 CTO室 SNS 𝕏 civitaspo   civitaspo その他 福岡在住 (一応)Embulkのメンテナ @civitaspo (きびたすぽ、きびちゃん)
  2. 6 © 2023 LayerX Inc. このLTの内容をざっくり 「LayerXにdbtを導入するときに意識したこと」の背景 • 2022年中頃までRedash+本番DB Read

    Replicaという牧歌的な分析環境 • 複数プロダクト提供、及び利用SaaS増加等の背景からマルチデータソースを扱える分析環境が必要に • BigQuery + dbt で分析環境を構築を決定 • 初期は価値検証目的、そのまま利用拡大する可能性を考えて基盤構築する必要があった • このLTはそんな状況下で何を考えてdbtを導入していったかお話します
  3. 7 © 2023 LayerX Inc. このLTの内容をざっくり 想定視聴者 • dbtをこれから導入しようとしている人 •

    dbtを導入したけどまだ運用が固まってなくて示唆が欲しい人 思想的な話半分、技術的な話半分くらいの分量です。 dbtゴリゴリ運用してる人は参考になる情報少ないかも。
  4. 8 © 2023 LayerX Inc. このLTの内容をざっくり LayerXにdbtを導入するときに意識したこと 意識したこと3つ • データ階層

    • 可搬性 • 開発者(≠エンジニア)体験 時間があんまりないので各パート1〜2ページでサクサク終わらせます なお、このスライドに記載しているコードはすべてMITライセンスで利用できます。
  5. 12 © 2023 LayerX Inc. データ階層 dbtの特性を活かしてデータ階層を細分化 Naked Source Safe

    Source I/F Data Component Data Mart / Activation データエンジニア アナリティクスエンジニア アナリスト 匿名化・仮名化・同意フィルタリング・etc. データモデリング・用途特化
  6. 14 © 2023 LayerX Inc. 可搬性 materialized="view"を積極的に利用する Materializations | dbt

    Developer Hub • データ基盤の導入期には将来どのような要件が現れるか読めません • が、将来発生する要件の中にはかならず「データの移動」及び「データの削除」が存在します ◦ e.g. IPアドレスは個人情報として扱うことになったのでデータの削除をお願いします ◦ e.g. このデータセットは管理要件を厳しくすることにしたので別のGoogle Cloudプロジェクトに 移してほしい • materialized=”view”はmaterialized=”table”とは異なり、変換後のデータを保持しません。ビュー を作ります。 • 実データを保持しないことで将来の要件に対応しやすくなります。 ◦ ソースとなるテーブルを参照するビューからカラムを削除するだけで、元データを消すことなく、依存 するすべてのビューからデータが参照できなくすることができる ◦ 必要なデータモデルのdatabase/schemaを変更するだけで、データコピーなくデータモデルの移 動が完結する。
  7. 18 © 2023 LayerX Inc. 開発者(≠エンジニア)体験 GitHub Pagesにdbt docsのホスティング •

    dbt docs generate で生成されたファイ ルをArtifactとして保存 • あとはソースをGitHub Actionsとして Pagesをセットアップするだけ。
  8. 19 © 2023 LayerX Inc. 開発者(≠エンジニア)体験 BigQuery impersonate service account

    BigQuery setup | dbt Developer Hub • dbtの実行プロファイルにimpersonate_service_accountを設定することで、指定したサービスアカ ウントを借用した状態でdbtが実行できる • 個人に依存した権限エラーが発生しなくなるため、サポートが非常にやりやすくなる。
  9. 21 © 2023 LayerX Inc. 俺たちの戦いはこれからだ! もっと事業貢献できるデータ組織にしたい!助けてください! • 弊社では「全員アナリスト」として活躍できるデータ基盤を作ろうと頑張っています •

    まだまだやりたいことがたくさんあってアナリティクスエンジニア・データエンジニアともに大募集中です • ホントに大募集中です • 少しでも興味を持たれた方はぜひカジュアル面談にいらしてください! 全員アナリストを実現する Data Enablingを支えるData Engineeringについて語らいましょう〜〜!!!