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