OpenLineage ist eine offene Plattform zum Erfassen und Analysieren von Informationen zur Datenableitung. OpenLineage verwendet einen offenen Standard für Lineage-Daten, um Lineage-Ereignisse aus Datenpipeline-Komponenten zu erfassen, die mit einer 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 Weboberfläche des Dataplex Universal Catalogs zusammen mit Herkunftsinformationen ausGoogle 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 Hauptversionen 1 und 2 von OpenLineage.
Die Data Lineage API unterstützt Folgendes nicht:
- Jede nachfolgende OpenLineage-Version mit Änderungen am Nachrichtenformat
DatasetEventJobEvent
Die maximale Größe einer einzelnen Nachricht beträgt 5 MB.
Die Länge jedes vollqualifizierten Namens in Eingaben und Ausgaben ist auf 4.000 Zeichen beschränkt.
Links werden nach Ereignissen mit jeweils 100 Links gruppiert. Die maximale Gesamtzahl der Links beträgt 1.000.
Der Dataplex Universal Catalog enthält für jeden Jobausführung ein Abstammungsdiagramm mit den Eingaben und Ausgaben von Abstammungsereignissen. Es werden keine Prozesse auf niedrigerer Ebene wie Spark-Phasen unterstützt.
OpenLineage-Zuordnung
Die REST API-Methode ProcessOpenLineageRunEventordnet OpenLineage-Attribute den Data Lineage API-Attributen folgendermaßen 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) |
| Ausführen.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 |
| Lauf.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/de/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 | Wird vom Nutzer der Methode definiert |
OpenLineage-Ereignis importieren
Wenn Sie OpenLineage noch nicht eingerichtet haben, lesen Sie den Hilfeartikel Erste Schritte.
Wenn Sie ein OpenLineage-Ereignis in den Dataplex Universal Catalog 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 zum Analysieren der importierten OpenLineage-Ereignisse finden Sie unter Abstammungsdiagramme in der Dataplex Universal Catalog-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_versionopenlineage-spark-versionspark-version
- Alle
spark.logicalPlan.* environment-properties(benutzerdefinierte Google Cloud Abstammungsfacette)origin.sourcetypeundorigin.namespark.app.idspark.app.namespark.batch.idspark.batch.uuidspark.cluster.namespark.cluster.regionspark.job.idspark.job.uuidspark.project.idspark.query.node.namespark.session.idspark.session.uuid
Die Data Lineage API speichert die folgenden Informationen:
eventTimerun.runIdjob.namespacejob.name