OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Data Lineage-Informationen. Mit einem offenen Standard für Lineage-Daten erfasst OpenLineage Lineage-Ereignisse aus Datenpipeline-Komponenten, die eine OpenLineage API verwenden, um Ausführungen, Jobs und Datasets zu melden.
Über die Data Lineage API können Sie OpenLineage-Ereignisse importieren, um sie in der Dataplex-UI zusammen mit den Herkunftsinformationen aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc anzuzeigen.
Verwenden Sie zum Importieren von OpenLineage-Ereignissen, die die OpenLineage-Spezifikation verwenden, die REST API-Methode ProcessOpenLineageRunEvent
und ordnen Sie OpenLineage-Attribute den Data Lineage API-Attributen zu.
Beschränkungen
Die Data Lineage API unterstützt die OpenLineage-Hauptversionen 1 und 2.
Folgendes wird von der Data Lineage API nicht unterstützt:
- Jeder nachfolgende OpenLineage-Release mit geändertem Nachrichtenformat
DatasetEvent
JobEvent
Eine einzelne Nachricht darf maximal 5 MB groß sein.
Die Länge der voll qualifizierten Namen in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.
Links werden nach Ereignissen mit 100 Links gruppiert. Die maximale Gesamtzahl an Links beträgt 1.000.
Dataplex zeigt für jede Jobausführung ein Lineage-Diagramm an, in dem die Ein- und Ausgaben von Lineage-Ereignissen angezeigt werden. Untergeordnete Prozesse wie Spark-Phasen werden nicht unterstützt.
OpenLineage-Zuordnung
Die REST API-Methode ProcessOpenLineageRunEvent
ordnet Data Lineage-Attributen OpenLineage-Attributen so zu:
Data Lineage API-Attribute | OpenLineage-Attribute |
---|---|
Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
Prozess.displayName | Job.namespace + ":" + Job.name |
Prozess.attributes | Job.facets (siehe Gespeicherte Daten) |
Run.name (Ausführen) | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID |
Run.displayName | Run.runId |
Run.attributes | Run.facets (siehe Gespeicherte Daten) |
Run.startTime (Ausführen) | eventTime |
Run.endTime (Ausführen). | 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 (z.B. projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
LineageEvent.EventLinks.source. | Eingaben (fqn ist die Verkettung von Namespace und Namen) |
LineageEvent.EventLinks.target | Ausgaben (fqn ist Namespace- und Namensverkettung) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | Durch die Methode definiert |
OpenLineage-Ereignis importieren
Wenn Sie OpenLineage noch nicht eingerichtet haben, finden Sie weitere Informationen unter Erste Schritte.
Rufen Sie die REST API-Methode ProcessOpenLineageRunEvent
auf, um ein OpenLineage-Ereignis in Dataplex zu importieren:
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"}'
Informationen aus OpenLineage analysieren
Informationen zum Analysieren der importierten OpenLineage-Ereignisse finden Sie unter Lineage-Diagramme in der Dataplex-UI ansehen.
Gespeicherte Daten
Die Data Lineage API speichert nicht alle Attributdaten aus den OpenLineage-Nachrichten. Die Data Lineage API speichert die folgenden Attributfelder:
spark_version
openlineage-spark-version
spark-version
- alle
spark.logicalPlan.*
environment-properties
(benutzerdefiniertes Google Cloud-Herkunftsattribut)origin.sourcetype
undorigin.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
Die Data Lineage API speichert die folgenden Informationen:
eventTime
run.runId
job.namespace
job.name