PyCon JP 2022

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

SQL クエリ解析による E2E データリネージの実現
2022-10-15 , pyconjp_5
Language: 日本語

統計解析や機械学習によるデータ需要の高まりによって、データの加工・利用のプロセスは複雑化する傾向にあります。近年、そうした複雑さに対抗する手段として、データの生成や利用の流れを把握する「データリネージ (Data Lineage)」が注目されています。

このデータリネージを手軽にはじめられるように、Python 製 OSS Stairlight を開発しました。SQL クエリ解析によって、データの生成から利用者によるデータ取得へ至る全体像を把握する “End-to-End(E2E) Data Lineage” の実現を目指しています。

このトークでは、データリネージの概要や問題意識を共有した後、Stairlight のアプローチと、導入によって期待される効果をご紹介します。


プロポーザルの詳細

最初に、テーマである「データリネージ」の一般的な定義や、背景にあるデータエンジニアリングで発生しうる問題を共有します。そのうえで、データリネージ手法の分類を試みます。

一般に、データリネージの対象となるデータ群は複数の場所に別れて保存されており、それぞれの管理者やアクセスレベルは異なっています。そのため、データリネージのしくみを導入するにあたっては、ネットワークやセキュリティ、データガバナンスなどの調整が求められます。また、Web アプリケーションとして提供されることが多いため、サーバーの管理と運用も必要になります。

これらのハードルをなくし、データリネージをはじめやすくすることを目標に、Python 製の OSS である Stairlight を開発しました。SQL の SELECT 文を解析し、グラフノードとエッジに分解することでその依存関係を明らかにします。そうしたコンセプトや機能、運用イメージをご紹介します。

また、その中で Stairlight をなぜ Python で実装したのか、各機能について Python を用いてどのように実装しているのかも合わせてお話しします。最後に、他のソフトウェアやサービスと組み合わせることで期待される効果について、ユースケースとともに解説します。

想定するオーディエンス

  • データリネージという単語を初めて聞いた、という方
  • 長大な SELECT 文を読み込むのがつらくなってきた方
  • データリネージをやりたいが、大変そう… という方

ゴール

  • データリネージの概要や登場した背景を知ってもらう
  • データリネージを試してみようかな、と思ってもらう
  • グラフデータ構造を扱う Python 実装に興味をもってもらう

構成とタイムライン (計 30 min)

データリネージの概要 (7 min)

  • データリネージとは
  • データリネージが解決したい課題
  • データリネージ手法の分類

導入のハードルを下げるために (3 min)

  • プロトコルを SQL の SELECT 文に統一
  • 目的を「リネージ情報の抽出と統合」に絞る
  • 抽出工程をできるかぎり簡単にする

Python 製 OSS: Stairlight (10 min)

  • コンセプト
  • なぜ Python を選んだのか?
  • データソース サポート対象
  • リネージ情報の構造
  • リネージ情報の抽出と統合
  • その他機能と Python 実装の紹介

他のソフトウェアと組み合わせる (7 min)

  • Git
  • Shell
  • CI サービス
  • Streamlit

まとめ (3 min)

データエンジニア。SIer や製造業を経て、2020年にGMOペパボ株式会社へ入社。技術部 データ基盤チームに所属。

Twitter: tosh2230
GitHub: tosh2230