OpenLineage adalah platform terbuka untuk mengumpulkan dan menganalisis informasi silsilah data. Dengan menggunakan standar terbuka untuk data lineage, OpenLineage merekam peristiwa lineage dari komponen data pipeline yang menggunakan OpenLineage API untuk melaporkan operasi, tugas, dan set data.
Melalui Data Lineage API, Anda dapat mengimpor peristiwa OpenLineage untuk ditampilkan di antarmuka web Dataplex bersama informasi lineage 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 facet OpenLineage ke atribut Data Lineage API.
Batasan
Data Lineage API mendukung versi utama OpenLineage 1 dan 2.
Data Lineage API tidak mendukung hal berikut:
- Setiap rilis OpenLineage berikutnya dengan perubahan format pesan
DatasetEvent
JobEvent
Ukuran maksimum satu pesan adalah 5 MB.
Panjang setiap Nama yang Memenuhi Syarat Penuh dalam input dan output dibatasi hingga 4.000 karakter.
Link dikelompokkan berdasarkan peristiwa dengan 100 link. Jumlah agregat maksimum link adalah 1.000.
Dataplex menampilkan grafik silsilah untuk setiap tugas yang dijalankan, yang menampilkan input dan output peristiwa silsilah. Spark tidak mendukung proses tingkat 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 |
Process.displayName | Job.namespace + ":" + Job.name |
Process.attributes | Job.facets (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) |
Run.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 penggabungan namespace dan nama) |
LineageEvent.EventLinks.target | output (fqn adalah namespace dan penyambungan 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 aspek dari pesan OpenLineage. Data Lineage API menyimpan kolom aspek berikut:
spark_version
openlineage-spark-version
spark-version
- semua
spark.logicalPlan.*
environment-properties
(facet garis keturunan Google Cloud kustom)origin.sourcetype
danorigin.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
Data Lineage API menyimpan informasi berikut:
eventTime
run.runId
job.namespace
job.name