Dokumen ini menjelaskan cara mengintegrasikan OpenLineage dengan Knowledge Catalog (sebelumnya Dataplex Universal Catalog) untuk mengimpor dan memvisualisasikan silsilah data dari sistem eksternal. Dengan bertindak sebagai konsumen OpenLineage
menggunakan ProcessOpenLineageRunEvent REST API, Knowledge Catalog memungkinkan Anda menyatukan silsilah pipeline kustom
bersama silsilah bawaan dari Google Cloud layanan.
Ringkasan
OpenLineage adalah platform terbuka untuk mengumpulkan dan menganalisis informasi silsilah data. Dengan menggunakan standar terbuka untuk data silsilah, OpenLineage menangkap peristiwa silsilah dari komponen pipeline data yang menggunakan OpenLineage API untuk melaporkan proses, tugas, dan set data.
Melalui Data Lineage API, Anda dapat mengimpor peristiwa OpenLineage untuk ditampilkan di antarmuka web Knowledge Catalog bersama informasi silsilah dari Google Cloud layanan, seperti BigQuery, Managed Service untuk Apache Airflow, Cloud Data Fusion, dan Managed Service untuk Apache Spark.
Untuk mengimpor peristiwa OpenLineage yang menggunakan
spesifikasi OpenLineage,
gunakan metode
ProcessOpenLineageRunEvent
REST API, dan petakan aspek OpenLineage ke atribut Data Lineage API.
Batasan integrasi OpenLineage
Versi yang didukung: Data Lineage API mendukung OpenLineage versi utama 1.
Tindakan API: endpoint API Data Lineage
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 Knowledge Catalog. Beberapa Google Cloud layanan, seperti Managed Service untuk Apache Spark dan Managed Airflow, menyertakan OpenLineage produsen bawaan yang dapat mengirim peristiwa ke endpoint ini, sehingga mengotomatiskan pengambilan silsilah dari layanan tersebut.Fitur yang tidak didukung: Data Lineage API tidak mendukung hal berikut:
- Rilis OpenLineage berikutnya dengan perubahan format pesan
DatasetEventJobEvent
Ukuran pesan: Ukuran maksimum satu pesan adalah 5 MB.
Panjang nama: Panjang setiap Nama yang Sepenuhnya Berkualitas dalam input dan output dibatasi hingga 4.000 karakter.
Batas link: Link dikelompokkan berdasarkan peristiwa, dengan maksimum 100 link per peristiwa. Jumlah agregat maksimum link tingkat tabel adalah 1.000. Jika pesan berisi lebih dari 1.500 link tingkat kolom, informasi tingkat kolom akan dilewati.
Cakupan grafik: Knowledge Catalog menampilkan grafik silsilah untuk setiap proses tugas, yang menunjukkan input dan output peristiwa silsilah. Knowledge Catalog tidak mendukung proses tingkat yang lebih rendah seperti tahap Spark.
Pemetaan atribut aspek OpenLineage
Untuk mengetahui informasi tentang pemetaan OpenLineage, lihat Pemetaan OpenLineage.
Mengimpor peristiwa OpenLineage
Jika Anda belum menyiapkan OpenLineage, lihat Memulai.
Untuk mengimpor peristiwa OpenLineage ke Knowledge Catalog, panggil metode API
ProcessOpenLineageRunEvent.
C#
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai Data Lineage menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Data Lineage C# API dokumentasi referensi.
Untuk melakukan autentikasi ke Data Lineage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Data Lineage menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Data Lineage Go API dokumentasi referensi.
Untuk melakukan autentikasi ke Data Lineage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Data Lineage menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Data Lineage Java API dokumentasi referensi.
Untuk melakukan autentikasi ke Data Lineage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Data Lineage menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Data Lineage Python API dokumentasi referensi.
Untuk melakukan autentikasi ke Data Lineage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai Data Lineage menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Data Lineage Ruby API.
Untuk melakukan autentikasi ke Data Lineage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Untuk mengimpor peristiwa OpenLineage, gunakan metode
processOpenLineageRunEvent.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID: project ID Anda Google Cloud .LOCATION_ID: lokasi Google Cloud , sepertius-central1.
Metode HTTP dan URL:
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:processOpenLineageRunEvent
Meminta isi JSON:
{
"eventTime": "2023-04-04T13:21:16.098Z",
"eventType": "COMPLETE",
"inputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"job": {
"name": "somename",
"namespace": "customnamespace"
},
"outputs": [
{
"name": "somename",
"namespace": "customnamespace"
}
],
"producer": "someproducer",
"run": {
"runId": "somerunid"
},
"schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"process": "projects/my-project/locations/us-central1/processes/my-process",
"run": "projects/my-project/locations/us-central1/processes/my-process/runs/my-run",
"lineageEvents": [
"projects/my-project/locations/us-central1/processes/my-process/runs/my-run/lineageEvents/my-lineage-event"
]
}
Alat untuk mengirim pesan OpenLineage
Untuk menyederhanakan pengiriman peristiwa ke Data Lineage API, Anda dapat menggunakan berbagai alat dan library:
- Library klien Google Cloud untuk Data Lineage: Google menyediakan library klien untuk berinteraksi dengan Data Lineage API secara terprogram. Untuk mengetahui petunjuk penginstalan, lihat Library klien.
- 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 Library java produsen untuk Data Lineage kini open source. Library ini tersedia di GitHub dan Maven.
- Transportasi GCP OpenLineage: Untuk produsen OpenLineage berbasis Java, Transportasi GcpLineage
khusus
tersedia. Transportasi 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 Melihat grafik silsilah di UI Knowledge Catalog.
Data aspek OpenLineage yang disimpan
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(custom Google Cloud lineage aspek)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
Langkah berikutnya
- Pelajari lebih lanjut silsilah data dengan Managed Service untuk Apache Spark dan silsilah data Hive integrasi.
- Coba di lab interaktif: Mengambil dan Menjelajahi Pembaruan Data Dengan Silsilah Data dan OpenLineage