In OpenLineage einbinden

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 und origin.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