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

データリネージの組織導入事例と今後の戦略 / Introduction to an examp...

データリネージの組織導入事例と今後の戦略 / Introduction to an example of data lineage in GMO Pepabo

datatech-jp Casual Talks #4 登壇資料 https://datatech-jp.connpass.com/event/264640/

Toshifumi Tsutsumi

December 12, 2022
Tweet

More Decks by Toshifumi Tsutsumi

Other Decks in Programming

Transcript

  1. 2 自己紹介 技術部 データ基盤チーム シニアエンジニア 2020年 中途入社 堤 利史 TSUTSUMI Toshifumi

    2020年12月にGMOペパボへ入社。 データエンジニアとしてデータ基盤の 開発・運用に従事。 Twitter: @tosh2230 先日、PS5の購入に成功しました
  2. 7 - 運営サービスが複数ある = データベースが複数ある - つまり Extract 対象がいっぱいある -

    Extract したデータの種類が多いと Transform のパターン数も増えがち GMOペパボは、インターネットサービスを多数運営しています 1. データリネージをはじめた背景 * ほかにもたくさん! 詳しくは https://pepabo.com/services/ をご覧ください
  3. 8 困りごと 1: データ障害の原因や影響範囲を把握しにくい 1. データリネージをはじめた背景 誰か 「このテーブルが壊れたら、誰が、どういう風に困る?」  私 「」

    過去には、データ障害発生から復旧までに要した時間の半分以上を “影響範囲の調査”と”復旧に必要なジョブ特定”に使っていたことも...
  4. 9 困りごと 2: 業務データの活用状況を把握しにくい 1. データリネージをはじめた背景 「誰が、どこにあるデータを、どのように活用しているのか?」 • 各事業では、複数のデータベースやデータウェアハウスに対して SQL

    を用いてデータを取得し、施策の検討やビジネス的な判断を行っている • Bigfoot は、社内ユーザーから見るとデータソースのひとつに過ぎない • Bigfoot の活用状況のみならず、業務データ全体の活用状況を知りたい
  5. 12 2. Stairlight の紹介 An end-to-end data lineage tool, detects

    table dependencies from SQL statements. $ pip install stairlight https://github.com/tosh2230/stairlight
  6. 15 2. Stairlight の紹介 特徴3: 独立性が高い - データリネージ機能(抽出・検索)のみを提供する - ETL/ELT,

    BI などの機能を提供するツールとの結合度が低い - 複数のユースケース - ローカルなどから依存関係を検索 - 抽出用エージェント - Python ライブラリとしてアプリケーションに組み込み
  7. 3. GMOペパボでのデータリネージ導入事例 18 logs metrics GitHub issues databases tbls datasets

    BigQuery bigfoot/platform Cloud Storage - Permissions - Datasets - Buckets Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog Apply metadata Generate & Commit Generate schema.json & commit bigfoot/data-catalog Update metadata & commit Send analysis results Verne Vertex AI Bigfoot 概要図 18
  8. 3. GMOペパボでのデータリネージ導入事例 20 bigfoot/data-lineage で設定ファイルを管理 bigfoot/cloud-composer 1. コード追加・変更 2. Pull

    Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出* 2. 設定追加・変更 3. Pull Request 作成 4. マージ * “stairlight map” コマンドで抽出します
  9. 3. GMOペパボでのデータリネージ導入事例 21 情報伝達の質と展開速度↑ - データ障害が発生した際、影響調査に要する時間が減った - 業務影響の有無を、これまでよりも正確に・早い段階で周知できるようになった 俯瞰的な視点 -

    アウトプット同士の依存関係を把握する手段を得たことで、 優先順位を決める判断材料が増えた - 障害復旧までに要する作業量の削減と作業時間の短縮を実現した 効果
  10. 4. 今後の戦略と課題 23 View 層のデータリネージ Verne - Cloud Run ベースの

    汎用アプリケーション基盤 - Streamlit を用いた ダッシュボードがメイン - ex. Four keys* BI ツール - Redash - Metabase * エンジニアの活動情報からFour Keysを集計、可視化した話 https://tech.pepabo.com/2022/01/06/four-keys-dashboard/
  11. 4. 今後の戦略と課題 24 設定ファイル更新 Pull Request 作成の自動化 bigfoot/cloud-composer 1. コード追加・変更

    2. Pull Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出 2. 設定追加・変更 3. Pull Request 作成 4. マージ
  12. 4. 今後の戦略と課題 25 リネージ情報を GUI で公開 bigfoot/cloud-composer 1. コード追加・変更 2.

    Pull Request 作成 3. マージ・デプロイ bigfoot/data-lineage 1. 未設定クエリの自動抽出 2. 設定追加・変更 3. Pull Request 作成 4. マージ Verne
  13. 4. 今後の戦略と課題 26 遅延情報の開示と通知 Data Health Dashboard - データが期待した状態であるか、ヘルスチェック結果を常に開示 -

    ETLジョブではなく アウトプットの状態とその関係性 を表示する 遅延通知 - データ遅延を都度報告するのではなく、即座に伝える - 通知登録をした人・グループ・Slack チャンネルに送る(列車遅延通知と同じ)
  14. 4. 今後の戦略と課題 27 Looker Studio と Connected Sheets - 設定を取り出す方法が

    見つかっていない - 監査ログから事後的に クエリを検出する予定 検討中... アプリ・ジョブ ⇔ アウトプットの 相互検索 - Stairlight の Label 機能 で実現できる? - (要検証)