OpenLineage は、データリネージ情報を収集して分析するためのオープン プラットフォームです。OpenLineage は、リネージデータに対してオープン標準を使用し、OpenLineage API を使用して実行、ジョブ、データセットを報告するデータ パイプライン コンポーネントからリネージ イベントを取得します。
Data Lineage API を使用すると、OpenLineage イベントをインポートして、BigQuery、Cloud Composer、Cloud Data Fusion、Dataproc などの Google Cloud サービスからのリネージ情報とともに Dataplex UI に表示できます。
OpenLineage 仕様を使用する OpenLineage イベントをインポートするには、ProcessOpenLineageRunEvent
REST API メソッドを使用して、OpenLineage ファセットを Data Lineage API 属性にマッピングします。
制限事項
Data Lineage API では、OpenLineage メジャー バージョン 1 と 2 がサポートされています。
Data Lineage API は、次の機能をサポートしていません。
- メッセージ形式が変更された、以降の OpenLineage リリース
DatasetEvent
JobEvent
1 つのメッセージの最大サイズは 5 MB です。
入力と出力の各完全修飾名の長さは 4,000 文字に制限されています。
リンクは、100 個のリンクがあるイベント別にグループ化されます。リンクの最大数は 1,000 個です。
Dataplex には、ジョブの実行ごとにリネージグラフが表示され、リネージ イベントの入力と出力が示されます。Spark ステージなどの下位レベルのプロセスはサポートされていません。
OpenLineage マッピング
REST API メソッド ProcessOpenLineageRunEvent
は、OpenLineage 属性を Data Lineage API 属性に次のようにマッピングします。
Data Lineage API 属性 | OpenLineage 属性 |
---|---|
Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
Process.displayName | Job.namespace + ":" + Job.name |
Process.attributes | Job.facets(保存データを参照) |
Run.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID |
Run.displayName | Run.runId |
Run.attributes | Run.facets(保存データを参照) |
Run.startTime | eventTime |
Run.endTime | eventTime |
Run.state | eventType |
LineageEvent.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID/lineageEvents/HASH_OF_JOB_RUN_INPUT_OUTPUTS_OF_EVENT(例: projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
LineageEvent.EventLinks.source | 入力(fqn は名前空間と名前を連結したもの) |
LineageEvent.EventLinks.target | 出力(fqn は名前空間と名前を連結したもの) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | メソッド ユーザーによって定義されます。 |
OpenLineage イベントをインポートする
OpenLineage をまだ設定していない場合は、スタートガイドをご覧ください。
OpenLineage イベントを Dataplex にインポートするには、REST API メソッド ProcessOpenLineageRunEvent
を呼び出します。
POST https://datalineage.googleapis.com/v1/projects/{project}/locations/{location}:processOpenLineageRunEvent \
--data '{"eventTime":"2023-04-04T13:21:16.098Z","eventType":"COMPLETE","inputs":[{"name":"somename","namespace":"somenamespace"}],"job":{"name":"somename","namespace":"somenamespace"},"outputs":[{"name":"somename","namespace":"somenamespace"}],"producer":"someproducer","run":{"runId":"somerunid"},"schemaURL":"https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"}'
OpenLineage の情報を分析する
インポートされた OpenLineage イベントを分析するには、Dataplex UI でリネージグラフを表示するをご覧ください。
保存データ
Data Lineage API では、OpenLineage メッセージのすべてのファセット データが格納されるわけではありません。Data Lineage API には、次のファセット フィールドが保存されます。
spark_version
openlineage-spark-version
spark-version
- すべての
spark.logicalPlan.*
environment-properties
(カスタム Google Cloud リネージ ファセット)origin.sourcetype
とorigin.name
spark.app.id
spark.app.name
spark.batch.id
spark.batch.uuid
spark.cluster.name
spark.cluster.region
spark.job.id
spark.job.uuid
spark.project.id
spark.query.node.name
spark.session.id
spark.session.uuid
Data Lineage API には、次の情報が保存されます。
eventTime
run.runId
job.namespace
job.name