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.targetS | 出力(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