OpenLineage adalah platform terbuka untuk mengumpulkan dan menganalisis informasi silsilah data. Dengan menggunakan standar terbuka untuk data silsilah, OpenLineage mengambil peristiwa silsilah dari komponen pipeline data yang menggunakan OpenLineage API untuk melaporkan eksekusi, tugas, dan set data.
Melalui Data Lineage API, Anda dapat mengimpor peristiwa OpenLineage untuk ditampilkan di antarmuka web Dataplex Universal Catalog bersama informasi silsilah dari layananGoogle 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 aspek OpenLineage ke atribut Data Lineage API.
Batasan
Data Lineage API mendukung OpenLineage versi utama 1.
Endpoint Data Lineage API
ProcessOpenLineageRunEventhanya bertindak sebagai konsumen pesan OpenLineage, bukan produsen. API ini memungkinkan Anda mengirim informasi silsilah yang dihasilkan oleh alat atau sistem yang kompatibel dengan OpenLineage ke Dataplex Universal Catalog. Beberapa layanan Google Cloud , seperti Dataproc dan Cloud Composer, menyertakan produsen OpenLineage bawaan yang dapat mengirim peristiwa ke endpoint ini, sehingga mengotomatiskan pengambilan silsilah dari layanan tersebut.Data Lineage API tidak mendukung hal berikut:
- Rilis OpenLineage berikutnya dengan perubahan format pesan
DatasetEventJobEvent
Ukuran maksimum satu pesan adalah 5 MB.
Panjang setiap Nama yang Sepenuhnya Memenuhi Syarat dalam input dan output dibatasi hingga 4.000 karakter.
Link dikelompokkan berdasarkan peristiwa dengan 100 link. Jumlah gabungan maksimum link adalah 1.000.
Dataplex Universal Catalog menampilkan grafik silsilah untuk setiap eksekusi tugas, yang menunjukkan input dan output peristiwa silsilah. Layanan ini tidak mendukung proses tingkat 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 |
| 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 gabungan namespace dan nama) |
| LineageEvent.EventLinks.target | output (fqn adalah gabungan 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 Universal Catalog, 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"}'
Alat untuk mengirim pesan OpenLineage
Untuk menyederhanakan pengiriman peristiwa ke Data Lineage API, Anda dapat menggunakan berbagai alat dan library:
- Library Produsen Java Google Cloud: Google menyediakan library Java open source untuk membantu membuat dan mengirim peristiwa OpenLineage ke Data Lineage API. Untuk mengetahui informasi selengkapnya, lihat postingan blog Producer java library for Data Lineage is now open source. Library ini tersedia di GitHub dan Maven.
- Transportasi OpenLineage GCP: Untuk produsen OpenLineage berbasis Java, tersedia
GcpLineage Transport
khusus. Hal ini menyederhanakan integrasi dengan Data Lineage API, dengan
meminimalkan kode yang diperlukan untuk mengirim peristiwa ke Data Lineage API.
GcpLineageTransportdapat dikonfigurasi sebagai sink peristiwa untuk produsen OpenLineage yang ada seperti Airflow, Spark, dan Flink. Untuk mengetahui informasi dan contoh selengkapnya, lihat GcpLineage.
Menganalisis informasi dari OpenLineage
Untuk menganalisis peristiwa OpenLineage yang diimpor, lihat bagian Melihat grafik silsilah di UI Dataplex Universal Catalog.
Data tersimpan
Data Lineage API tidak menyimpan semua data aspek dari pesan OpenLineage. Data Lineage API menyimpan kolom aspek berikut:
spark_versionopenlineage-spark-versionspark-version
- semua
spark.logicalPlan.* environment-properties(aspek silsilah Google Cloud kustom)origin.sourcetypedanorigin.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
Data Lineage API menyimpan informasi berikut:
eventTimerun.runIdjob.namespacejob.name
Apa langkah selanjutnya?
- Lihat integrasi Dataproc Serverless dan Dataproc Hive.
- Coba di lab interaktif: Merekam dan Menjelajahi Pembaruan Data dengan Silsilah Data dan OpenLineage