OpenLineage ist eine offene Plattform zum Erfassen und das Analysieren der Herkunftsinformationen. 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, um sie in der Dataplex-UI zusammen mit Lineage-Informationen aus Google Cloud-Diensten wie BigQuery, Cloud Composer, Cloud Data Fusion und Dataproc.
So importieren Sie OpenLineage-Ereignisse, die die Methode
OpenLineage-Spezifikation
ProcessOpenLineageRunEvent
verwenden
REST API-Methode und ordnen Sie OpenLineage-Attributen 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.
Länge der einzelnen vollständig qualifizierten Namen ist auf 4.000 Zeichen begrenzt.
Links werden nach Ereignissen mit 100 Links gruppiert. Die maximale aggregierte Anzahl von Links 1000 beträgt.
Dataplex zeigt für jede Jobausführung ein Lineage-Diagramm mit den Eingaben an und die Ausgaben von Lineage-Ereignissen. 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 |
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 du OpenLineage noch nicht eingerichtet hast, siehe Jetzt starten
Rufen Sie die REST API-Methode auf, um ein OpenLineage-Ereignis in Dataplex zu importieren
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"}'
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) <ph type="x-smartling-placeholder">- </ph>
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