PyCon JP 2022

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

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

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