Urutan data dengan Katalog Universal Dataplex

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Halaman ini menjelaskan cara mengaktifkan integrasi silsilah data di Cloud Composer.

Tentang integrasi silsilah data

Silsilah data adalah fitur Dataplex Universal Catalog yang melacak bagaimana data berpindah melalui sistem Anda: tempat asalnya, tempat data diteruskan, dan transformasi yang diterapkan pada data.

Cloud Composer menggunakan paket apache-airflow-providers-openlineage untuk menghasilkan peristiwa silsilah yang dikirim ke Data Lineage API.

Paket ini sudah diinstal di lingkungan Cloud Composer. Jika Anda menginstal versi lain paket ini, daftar operator yang didukung mungkin berubah. Sebaiknya lakukan hal ini hanya jika diperlukan dan simpan versi paket yang telah diinstal sebelumnya.

  • Silsilah data tersedia untuk lingkungan di region yang sama dengan region Katalog Universal Dataplex yang mendukung silsilah data.

  • Jika garis keturunan data diaktifkan di lingkungan Cloud Composer, Cloud Composer akan melaporkan informasi garis keturunan ke Data Lineage API untuk DAG yang menggunakan salah satu operator yang didukung. Anda juga dapat mengirim peristiwa garis keturunan kustom jika ingin melaporkan garis keturunan untuk operator yang tidak didukung.

  • Anda dapat mengakses informasi silsilah dengan:

    • Data Lineage API
    • Diagram silsilah untuk entri yang didukung di Katalog Universal Dataplex. Untuk mengetahui informasi selengkapnya, lihat Grafik silsilah dalam dokumentasi Katalog Universal Dataplex.

Saat Anda membuat lingkungan, integrasi silsilah data akan otomatis diaktifkan jika kondisi berikut terpenuhi:

  • Data Lineage API diaktifkan di project Anda. Untuk informasi selengkapnya, lihat Mengaktifkan Data Lineage API dalam dokumentasi Katalog Universal Dataplex.

  • Lineage Backend kustom tidak dikonfigurasi di Airflow.

Anda dapat menonaktifkan integrasi silsilah data saat membuat lingkungan.

Untuk lingkungan yang ada, Anda dapat mengaktifkan atau menonaktifkan integrasi silsilah data kapan saja.

Pertimbangan fitur di Cloud Composer

Cloud Composer melakukan panggilan RPC untuk membuat peristiwa garis keturunan dalam kasus berikut:

  • Saat tugas Airflow dimulai atau selesai
  • Saat operasi DAG dimulai atau selesai

Untuk mengetahui detail tentang entitas ini, lihat model informasi silsilah dan referensi Lineage API dalam dokumentasi Katalog Universal Dataplex.

Traffic lineage yang dimunculkan tunduk pada kuota di Data Lineage API. Cloud Composer menggunakan kuota Tulis.

Harga yang terkait dengan penanganan data lineage tunduk pada harga lineage. Lihat pertimbangan silsilah data.

Pertimbangan performa di Cloud Composer

Silsilah data dilaporkan di akhir eksekusi tugas Airflow. Rata-rata, pelaporan garis keturunan data memerlukan waktu sekitar 1-2 detik.

Hal ini tidak memengaruhi performa tugas itu sendiri: Tugas Airflow tidak gagal jika silsilah tidak berhasil dilaporkan ke Lineage API. Tidak ada dampak pada logika operator utama, tetapi seluruh instance tugas akan dijalankan sedikit lebih lama untuk memperhitungkan data garis keturunan pelaporan.

Lingkungan yang melaporkan urutan data akan mengalami sedikit peningkatan biaya terkait, karena waktu tambahan yang diperlukan untuk melaporkan urutan data.

Kepatuhan

Lineage data menawarkan tingkat dukungan yang berbeda untuk fitur seperti Kontrol Layanan VPC. Tinjau pertimbangan silsilah data untuk memastikan tingkat dukungan sesuai dengan persyaratan lingkungan Anda.

Sebelum memulai

Memeriksa apakah operator didukung

Dukungan silsilah data disediakan oleh paket penyedia tempat operator berada:

  1. Periksa log perubahan paket penyedia tempat operator berada untuk menemukan entri yang menambahkan dukungan OpenLineage.

    Misalnya, BigQueryToBigQueryOperator mendukung OpenLineage mulai dari apache-airflow-providers-google versi 11.0.0.

  2. Periksa versi paket penyedia yang digunakan oleh lingkungan Anda. Untuk melakukannya, lihat daftar paket yang diprainstal untuk build Airflow yang digunakan di lingkungan Anda. Anda juga dapat menginstal versi lain paket di lingkungan Anda.

Selain itu, halaman Class yang didukung dalam dokumentasi apache-airflow-providers-openlineage mencantumkan operator terbaru yang didukung.

Mengonfigurasi integrasi silsilah data

Integrasi silsilah data untuk Cloud Composer dikelola berdasarkan lingkungan. Artinya, mengaktifkan fitur ini memerlukan dua langkah:

  1. Aktifkan Data Lineage API di project Anda.
  2. Mengaktifkan integrasi silsilah data di lingkungan Cloud Composer tertentu.

Mengaktifkan silsilah data di Cloud Composer

Konsol

  1. Di Google Cloud console, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Pilih tab Environment configuration.

  4. Di bagian Integrasi silsilah data Dataplex, klik Edit.

  5. Di panel Integrasi garis keturunan data Dataplex, pilih Aktifkan integrasi dengan garis keturunan data Dataplex, lalu klik Simpan.

gcloud

Gunakan argumen --enable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-cloud-data-lineage-integration

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.

Contoh:

gcloud composer environments update example-environment \
    --location us-central1 \
    --enable-cloud-data-lineage-integration

Menonaktifkan silsilah data di Cloud Composer

Menonaktifkan integrasi lineage di lingkungan Cloud Composer tidak akan menonaktifkan Data Lineage API. Jika Anda ingin menonaktifkan pelaporan lineage untuk project sepenuhnya, nonaktifkan juga Data Lineage API. Lihat Menonaktifkan layanan.

Konsol

  1. Di Google Cloud console, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Pilih tab Environment configuration.

  4. Di bagian Integrasi silsilah data Dataplex, klik Edit.

  5. Di panel Integrasi garis keturunan data Dataplex, pilih Nonaktifkan integrasi dengan garis keturunan data Dataplex, lalu klik Simpan.

gcloud

Gunakan argumen --disable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-cloud-data-lineage-integration

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.

Contoh:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-cloud-data-lineage-integration

Mengirim peristiwa garis keturunan di operator yang didukung

Jika silsilah data diaktifkan, operator yang didukung akan otomatis mengirim peristiwa silsilah. Anda tidak perlu mengubah kode DAG.

Misalnya, menjalankan tugas berikut:

task = BigQueryInsertJobOperator(
    task_id='snapshot_task',
    dag=dag,
    location='<dataset-location>',
    configuration={
        'query': {
            'query': 'SELECT * FROM dataset.tableA',
            'useLegacySql': False,
            'destinationTable': {
                'project_id': 'example-project',
                'dataset_id': 'dataset',
                'table_id': 'tableB',
            },
        }
    },
)

Hasilnya adalah pembuatan grafik garis keturunan berikut di UI Katalog Universal Dataplex:

Contoh grafik silsilah di UI Dataplex.
Gambar 1. Contoh grafik silsilah untuk tabel BigQuery di UI Katalog Universal Dataplex.

Mengirim peristiwa garis keturunan kustom

Anda dapat mengirim peristiwa garis keturunan kustom jika ingin melaporkan garis keturunan untuk operator yang tidak didukung untuk pelaporan garis keturunan otomatis.

Misalnya, untuk mengirim peristiwa kustom dengan:

  • BashOperator: mengubah parameter inlets atau outlets dalam definisi tugas.
  • PythonOperator: mengubah parameter task.inlets atau task.outlets dalam definisi tugas.
  • Anda dapat menggunakan AUTO untuk parameter inlets. Tindakan ini menetapkan nilainya sama dengan outlets tugas upstream-nya.

Contoh berikut menunjukkan penggunaan inlet dan outlet:

from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO

...

bash_task = BashOperator(
    task_id="bash_task",
    dag=dag,
    bash_command="sleep 0",
    inlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table1",
        )
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table2",
        )
    ],
)


def _python_task(task):
    print("Python task")


python_task = PythonOperator(
    task_id="python_task",
    dag=dag,
    python_callable=_python_task,
    inlets=[
        AUTO,
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table3",
        ),
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table4",
        )
    ],
)

bash_task >> python_task

Akibatnya, grafik garis keturunan berikut dibuat di UI Katalog Universal Dataplex:

Contoh grafik silsilah untuk peristiwa kustom di UI Dataplex.
Gambar 2. Contoh grafik silsilah untuk beberapa tabel BigQuery di UI Katalog Universal Dataplex.

Melihat log silsilah di Cloud Composer

Anda dapat memeriksa log yang terkait dengan silsilah data menggunakan link di halaman Konfigurasi lingkungan di bagian Integrasi silsilah data Katalog Universal Dataplex.

Pemecahan masalah

Jika data garis keturunan tidak dilaporkan ke Lineage API, atau Anda tidak dapat melihatnya di Katalog Universal Dataplex, coba langkah pemecahan masalah berikut:

  • Pastikan Data Lineage API diaktifkan di project lingkungan Cloud Composer Anda.
  • Periksa apakah integrasi garis keturunan data diaktifkan di lingkungan Cloud Composer.
  • Periksa apakah operator yang Anda gunakan disertakan dalam dukungan pelaporan lineage otomatis. Lihat Operator Airflow yang didukung.
  • Periksa log silsilah di Cloud Composer untuk mengetahui kemungkinan masalah.

Langkah berikutnya