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 REST API ProcessOpenLineageRunEvent, Knowledge Catalog memungkinkan Anda menyatukan silsilah pipeline kustom
bersama silsilah bawaan dari layanan Google Cloud .
Ringkasan
OpenLineage adalah platform terbuka untuk mengumpulkan dan menganalisis informasi silsilah data. Dengan menggunakan standar terbuka untuk data silsilah, OpenLineage merekam 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 Knowledge Catalog bersama informasi silsilah dari layananGoogle Cloud , 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
REST API
ProcessOpenLineageRunEvent, 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 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 produser OpenLineage 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 Memenuhi Syarat Sepenuhnya dalam input dan output dibatasi hingga 4.000 karakter.
Batas link: Link dikelompokkan menurut acara, dengan maksimum 100 link per acara. Jumlah gabungan 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 eksekusi tugas, yang menunjukkan input dan output peristiwa silsilah. Tidak mendukung proses tingkat yang lebih rendah seperti tahap Spark.
Pemetaan atribut faset 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 dokumentasi referensi C# API Data Lineage.
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 dokumentasi referensi Go API Data Lineage.
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 dokumentasi referensi Java API Data Lineage.
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 dokumentasi referensi Python API Data Lineage.
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 Ruby API Data Lineage.
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: Google Cloud Project ID Anda.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 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 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 produser 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(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
Langkah berikutnya
- Pelajari lebih lanjut asal-usul data dengan Managed Service untuk Apache Spark dan integrasi asal-usul data Hive.
- Coba di lab interaktif: Merekam dan Menjelajahi Pembaruan Data dengan Silsilah Data dan OpenLineage