Googleのデータ系ライブラリがオープンソース化:データラインエージの概要
はじめに
Googleが支援する皆さんに向けて、データラインエージに関する新しいオープンソースライブラリについてお伝えします。本記事では、データラインエージが何であるか、そして新たに公開されたJavaライブラリの特徴について解説します。
データラインエージとは
データラインエージは、データの流れを追跡するためのGoogle Cloud Platform(GCP)機能です。このツールを使用することで、データ所有者やアナリストはデータフロー内の異常を検出し、データソース間のつながりを見つけ、データパイプラインの計画変更が持つ可能性のある影響を確認することができます。
一部のGoogle Cloudプロダクト(BigQuery、Cloud Data Fusion、Cloud Composerなど)では、ラインエージは自動的に注入されます。これにより、これらのプロダクトによるジョブの実行から生じるデータ移動がGCPラインエージに報告されます。
GCPラインエージ情報モデル
GCPラインエージは、以下の概念を用いてデータフローを記述します:
- プロセス: データ変換の定義(例: SQLやSparkスクリプト)
- ラン: プロセスの実行
- ラインエージイベント: データ変換イベントで、ランの文脈で報告されます。
- リンク: 2つのデータソース間の接続を示し、リンクのターゲットがそのソースに依存することを示します。
オープンラインエージのサポート
オープンラインエージは、ラインエージ情報を報告するためのオープンスタンダードです。このスタンダードは、システム間でのラインエージ報告を統一し、生成されたイベントは、オープンラインエージ形式をサポートするいかなるプロダクトでも消費可能です。
GCPラインエージもオープンラインエージのサポーターの一つです。ユーザーは、オープンラインエージ形式でイベントを報告し、その結果を表示したり、APIを介してクエリしたりすることができます。
プロデューサーライブラリの必要性
GCPラインエージプロデューサーライブラリは、クライアントライブラリの拡張であり、ここではCloud APIをプログラム的に呼び出すためのコードが提供されています。このライブラリを用いることで、データラインエージAPIにリクエストを送信するためのコードは次のように簡略化されます:
SyncLineageProducerClient client = SyncLineageProducerClient.create();
ProcessOpenLineageRunEventRequest request =
ProcessOpenLineageRunEventRequest.newBuilder()
.setParent(parent)
.setOpenLineage(openLineageMessage)
.build();
client.processOpenLineageRunEvent(request);
このコードは、ジョブの実行情報や入力および出力のデータを含むプロトbuf構造体を必要とします。
オープンラインエージメッセージを構築する際のベストプラクティス
オープンラインエージメッセージは、オープンラインエージの形式に従う必要があります。GCPラインエージAPIによる正しい解析には、次のフィールドが必須となります:
- ジョブ
- ラン
- プロデューサー
- タイムスタンプ
- スキーマURL
これに加え、ラインエージを形成するために必要なフィールドには、イベントタイプ、入力、出力が含まれます。
まとめ
新たに発表されたGCPデータラインエージプロデューサーライブラリは、データの流れを追跡し、可視化するのに役立つ強力なツールです。オープンソースとして提供されることで、開発者たちがより手軽にデータラインエージ情報を扱えるようになります。興味がある方は、ぜひ活用してみてください。
コメント