OpenLineage 是用於收集及分析資料沿革資訊的開放式平台。OpenLineage 採用資料沿革資料的開放標準,從使用 OpenLineage API 回報執行作業、工作和資料集的資料管道元件中擷取沿革事件。
您可以透過 Data Lineage API 匯入 OpenLineage 事件,並在 Dataplex 通用目錄網頁介面中顯示,同時顯示來自Google Cloud 服務的歷程資訊,例如 BigQuery、Cloud Composer、Cloud Data Fusion 和 Dataproc。
如要匯入使用 OpenLineage 規格的 OpenLineage 事件,請使用 ProcessOpenLineageRunEvent
REST API 方法,並將 OpenLineage 切面對應至 Data Lineage API 屬性。
限制
Data Lineage API 支援 OpenLineage 主要版本 1 和 2。
Data Lineage API 不支援下列項目:
- 任何後續的 OpenLineage 版本,只要訊息格式有變更
DatasetEvent
JobEvent
單一訊息的大小上限為 5 MB。
輸入和輸出內容中每個完全合格名稱的長度上限為 4000 個半形字元。
連結會按 100 個連結的事件分組。連結的總數上限為 1000。
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 lineage 切面)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