Mengintegrasikan dengan OpenLineage

OpenLineage adalah platform terbuka untuk mengumpulkan dan menganalisis informasi silsilah data. Dengan menggunakan standar terbuka untuk silsilah data, OpenLineage menangkap peristiwa silsilah dari komponen pipeline data yang menggunakan OpenLineage API untuk melaporkan operasi, tugas, dan set data.

Melalui Data Lineage API, Anda dapat mengimpor peristiwa OpenLineage untuk ditampilkan di UI Dataplex bersama informasi silsilah dari layanan Google Cloud, seperti BigQuery, Cloud Composer, Cloud Data Fusion, dan Dataproc.

Untuk mengimpor peristiwa OpenLineage yang menggunakan spesifikasi OpenLineage, gunakan metode REST API ProcessOpenLineageRunEvent, dan petakan faset OpenLineage ke atribut Data Lineage API.

Batasan

  • Data Lineage API mendukung OpenLineage versi utama 1 dan 2.

  • Data Lineage API tidak mendukung hal berikut:

    • Semua rilis OpenLineage berikutnya dengan perubahan format pesan
    • DatasetEvent
    • JobEvent
  • Ukuran maksimum satu pesan adalah 5 MB.

  • Panjang setiap Nama yang Memenuhi Syarat Sepenuhnya dalam input dan output dibatasi hingga 4.000 karakter.

  • Link dikelompokkan menurut peristiwa dengan 100 link. Jumlah gabungan maksimum link adalah 1.000.

  • Dataplex menampilkan grafik silsilah untuk setiap tugas yang dijalankan, yang menunjukkan input dan output peristiwa silsilah data. API ini tidak mendukung proses level yang lebih rendah seperti tahap Spark.

Pemetaan OpenLineage

Metode REST API ProcessOpenLineageRunEvent memetakan atribut OpenLineage ke atribut Data Lineage API sebagai berikut:

Atribut Data Lineage API Atribut OpenLineage
Process.name projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME
Proses.displayName Job.namespace + ":" + Job.name
Process.attributes Job.facet (lihat Data tersimpan)
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 (lihat Data tersimpan)
Jalankan.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 (misalnya projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333)
LineageEvent.EventLinks.source input (fqn adalah penyambungan namespace dan nama)
LineageEvent.EventLinks.target output (fqn adalah penyambungan namespace dan nama)
LineageEvent.startTime eventTime
LineageEvent.endTime eventTime
requestId Ditentukan oleh pengguna metode

Mengimpor peristiwa OpenLineage

Jika Anda belum menyiapkan OpenLineage, lihat Memulai.

Untuk mengimpor peristiwa OpenLineage ke Dataplex, panggil metode REST API 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"}'

Menganalisis informasi dari OpenLineage

Untuk menganalisis peristiwa OpenLineage yang diimpor, lihat Melihat grafik silsilah di UI Dataplex.

Data tersimpan

Data Lineage API tidak menyimpan semua data dalam pesan OpenLineage. Kode ini hanya menyimpan properti berikut dari faset Job dan Run:

  • Name
  • Display name
  • State
  • Start time
  • End time

Data Lineage API juga menyimpan properti berikut untuk integrasi Apache Spark.

  • spark.logicalPlan.*
  • spark_version.openlineage-spark-version
  • spark_version.spark-version