OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Informationen zur Datenherkunft. Offenen Standard für die Herkunft verwenden erfasst OpenLineage Lineage-Ereignisse aus Datenpipelinekomponenten die über eine OpenLineage API Berichte zu Ausführungen, Jobs und Datasets erstellen.
Über die Data Lineage API können Sie OpenLineage-Ereignisse importieren, die dann in der Dataplex-Benutzeroberfläche zusammen mit Herkunftsinformationen aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc angezeigt werden.
Wenn Sie OpenLineage-Ereignisse importieren möchten, die die OpenLineage-Spezifikation verwenden, verwenden Sie die REST API-Methode ProcessOpenLineageRunEvent
und ordnen Sie OpenLineage-Facetten 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
Die maximale Größe einer einzelnen Nachricht beträgt 5 MB.
Die Länge jedes vollständig qualifizierten Namens in Eingaben und Ausgaben ist auf 4.000 Zeichen beschränkt.
Links werden nach Ereignissen mit 100 Links gruppiert. Die Gesamtzahl der Links darf maximal 1.000 betragen.
In Dataplex wird für jeden Jobausführung ein Herkunftsdiagramm mit den Eingaben und Ausgaben von Herkunftsereignissen angezeigt. Untergeordnete Prozesse wie Spark-Phasen
OpenLineage-Zuordnung
Die REST API-Methode ProcessOpenLineageRunEvent
ordnet OpenLineage-Attributen den Data Lineage-API-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 |
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 | inputs (fqn ist die Koncatenation von Namespace und Name) |
LineageEvent.EventLinks.target | Ausgaben (fqn ist eine Kombination aus Namespace und Name) |
LineageEvent.startTime | eventTime |
LineageEvent.endTime | eventTime |
requestId | Durch die Methode definiert |
OpenLineage-Ereignis importieren
Wenn du OpenLineage noch nicht eingerichtet hast, siehe Jetzt starten
Wenn Sie ein OpenLineage-Ereignis in Dataplex importieren möchten, rufen Sie die REST API-Methode ProcessOpenLineageRunEvent
auf:
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 zur Analyse der importierten OpenLineage-Ereignisse finden Sie unter Abstammungsdiagramme in der Dataplex-Benutzeroberfläche ansehen.
Gespeicherte Daten
Die Data Lineage API speichert nicht alle Facettendaten aus den OpenLineage-Nachrichten. Die Data Lineage API speichert die folgenden Facettenfelder:
spark_version
openlineage-spark-version
spark-version
- alle
spark.logicalPlan.*
environment-properties
(benutzerdefinierte Google Cloud-Abstammungsfacette)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