OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Datenherkunftsinformationen. OpenLineage verwendet einen offenen Standard für Herkunftsdaten und erfasst so Herkunftsereignisse aus Datenpipelinekomponenten, die eine OpenLineage API verwenden, um Berichte zu Ausführungen, Jobs und Datasets zu erstellen.
Über die Data Lineage API können Sie OpenLineage-Ereignisse importieren, um sie in der Dataplex-UI zusammen mit Herkunftsinformationen aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc anzuzeigen.
Wenn Sie OpenLineage-Ereignisse importieren möchten, die die OpenLineage-Spezifikation verwenden, verwenden Sie 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.
Die Data Lineage API unterstützt Folgendes nicht:
- Jeder nachfolgende OpenLineage-Release mit Änderungen des Nachrichtenformats
DatasetEvent
JobEvent
Eine einzelne Nachricht darf maximal 5 MB groß sein.
Die Länge jedes Fully Qualified Name in Ein- und Ausgaben ist auf 4.000 Zeichen begrenzt.
Links werden nach Ereignissen mit 100 Links gruppiert. Insgesamt sind maximal 1.000 Links zulässig.
Dataplex zeigt für jede Jobausführung ein Herkunftsdiagramm mit den Ein- und Ausgaben von Herkunftsereignissen an. Untergeordnete Prozesse wie Spark-Phasen werden nicht unterstützt.
OpenLineage-Zuordnung
Die REST API-Methode ProcessOpenLineageRunEvent
ordnet OpenLineage-Attribute den Data Lineage API-Attributen so zu:
Data Lineage API-Attribute | OpenLineage-Attribute |
---|---|
Prozess.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
Prozess.displayName | Job.namespace + ":" + Job.name |
Process.attributes | Job.facets (siehe Gespeicherte Daten) |
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 (siehe Gespeicherte Daten) |
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 (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 die Verkettung von Namespace und Namen) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | Wird vom Methodennutzer definiert |
OpenLineage-Ereignis importieren
Wenn Sie OpenLineage noch nicht eingerichtet haben, lesen Sie die 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 Herkunftsdiagramme in der Dataplex-UI ansehen.
Gespeicherte Daten
Die Data Lineage API speichert nicht alle Attributdaten aus den OpenLineage-Nachrichten. In der Data Lineage API werden die folgenden Attributfelder gespeichert:
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