Silsilah data dengan Knowledge Catalog

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Halaman ini menjelaskan cara mengaktifkan integrasi silsilah data di Managed Airflow.

Tentang integrasi silsilah data

Silsilah data adalah fitur Knowledge Catalog yang melacak pergerakan data melalui sistem Anda: dari mana data berasal, ke mana data diteruskan, dan transformasi apa yang diterapkan padanya.

Managed Airflow menggunakan paket apache-airflow-providers-openlineage untuk membuat peristiwa silsilah yang dikirim ke Data Lineage API.

Paket ini sudah diinstal di lingkungan Managed Airflow. Jika Anda menginstal versi lain paket ini, daftar operator yang didukung dapat berubah. Sebaiknya lakukan hal ini hanya jika diperlukan. Jika tidak, pertahankan versi paket yang sudah diinstal sebelumnya.

  • Silsilah data tersedia untuk lingkungan di region yang sama dengan region Knowledge Catalog yang mendukung silsilah data.

  • Jika silsilah data diaktifkan di lingkungan Managed Service untuk Apache Airflow Anda, Managed Service untuk Apache Airflow akan melaporkan informasi silsilah ke Data Lineage API untuk DAG yang menggunakan salah satu operator yang didukung. Anda juga dapat mengirim peristiwa silsilah kustom jika ingin melaporkan silsilah untuk operator yang tidak didukung.

  • Anda dapat mengakses informasi silsilah dengan:

    • Data Lineage API
    • Grafik silsilah untuk entri yang didukung di Knowledge Catalog. Untuk mengetahui informasi selengkapnya, lihat Grafik silsilah dalam dokumentasi Knowledge Catalog.

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

  • Data Lineage API diaktifkan di project Anda. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Data Lineage API dalam dokumentasi Knowledge Catalog.

  • Backend Silsilah 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 Managed Service untuk Apache Airflow

Managed Airflow melakukan panggilan RPC untuk membuat peristiwa silsilah dalam kasus berikut:

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

Untuk mengetahui detail tentang entity ini, baca artikel model informasi silsilah dan referensi Lineage API dalam dokumentasi Knowledge Catalog.

Traffic silsilah yang dihasilkan akan dibatasi oleh kuota di Data Lineage API. Managed Airflow menggunakan kuota Penulisan.

Harga yang terkait dengan penanganan data silsilah akan bergantung pada harga silsilah. Baca artikel pertimbangan silsilah data.

Pertimbangan performa di Managed Service untuk Apache Airflow

Silsilah data dilaporkan pada akhir eksekusi tugas Airflow. Rata-rata, pelaporan silsilah data memerlukan waktu sekitar 1-2 detik.

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

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

Kepatuhan

Silsilah data menawarkan berbagai tingkat dukungan untuk fitur seperti Kontrol Layanan VPC. Baca artikel pertimbangan silsilah data untuk memastikan kesesuaian tingkat dukungan dengan persyaratan lingkungan Anda.

Sebelum memulai

Memeriksa operator yang didukung

Dukungan silsilah data disediakan oleh paket penyedia tempat operator berada:

  1. Periksa log perubahan paket penyedia tempat operator berada untuk 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 versi Managed Airflow yang digunakan di lingkungan Anda. Anda juga dapat menginstal versi lain paket di lingkungan Anda.

Selain itu, halaman Supported classes dalam dokumentasi apache-airflow-providers-openlineage memberikan daftar terbaru semua operator yang didukung.

Mengonfigurasi integrasi silsilah data

Integrasi silsilah data untuk Managed Service untuk Apache Airflow dikelola berdasarkan per lingkungan. Artinya, diperlukan dua langkah untuk mengaktifkan fitur ini:

  1. Aktifkan Data Lineage API di project Anda.
  2. Aktifkan integrasi silsilah data di lingkungan Managed Service untuk Apache Airflow tertentu.

Mengaktifkan silsilah data di Managed Service untuk Apache Airflow

Konsol

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Environments

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

  3. Pilih tab Environment configuration.

  4. Di bagian Knowledge Catalog Lineage integration, klik Edit.

  5. Di panel Knowledge Catalog Lineage integration, pilih Enable integration with Knowledge Catalog Lineage.

  6. Klik Save.

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 Managed Service untuk Apache Airflow

Menonaktifkan integrasi silsilah data di lingkungan Managed Service untuk Apache Airflow tidak akan menonaktifkan Data Lineage API. Jika Anda ingin menonaktifkan pelaporan silsilah data sepenuhnya untuk project Anda, nonaktifkan juga Data Lineage API. Baca artikel Menonaktifkan layanan.

Konsol

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Environments

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

  3. Pilih tab Environment configuration.

  4. Di bagian Knowledge Catalog Lineage integration, klik Edit.

  5. Di panel Knowledge Catalog Lineage integration, pilih Disable integration with Knowledge Catalog Lineage.

  6. Klik Save.

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 silsilah di operator yang didukung

Jika silsilah data diaktifkan, operator yang didukung akan mengirim peristiwa silsilah secara otomatis. 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',
            },
        }
    },
)

Akan menghasilkan grafik silsilah berikut di UI Knowledge Catalog:

Contoh grafik silsilah di UI Knowledge Catalog.
Gambar 1. Contoh grafik silsilah untuk a BigQuery table di UI Knowledge Catalog.

Mengirim peristiwa silsilah kustom

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

Misalnya, untuk mengirim peristiwa kustom dengan:

  • BashOperator: ubah parameter inlets atau outlets dalam definisi tugas.
  • PythonOperator: ubah parameter task.inlets atau task.outlets dalam definisi tugas.
  • Anda dapat menggunakan AUTO untuk parameter inlets. Tindakan ini menetapkan nilainya sama dengan outlets untuk 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

Ini menghasilkan grafik silsilah berikut di UI Knowledge Catalog:

Contoh grafik silsilah untuk peristiwa kustom di UI Katalog Pengetahuan.
Gambar 2. Contoh grafik silsilah untuk beberapa BigQuery tables di UI Knowledge Catalog.

Melihat log silsilah di Managed Service untuk Apache Airflow

Anda dapat memeriksa log yang terkait dengan silsilah data menggunakan link di halaman Environment configuration di bagian Knowledge Catalog Lineage integration.

Pemecahan masalah

Jika data silsilah tidak dilaporkan ke Lineage API, atau Anda tidak dapat melihatnya di Knowledge Catalog, coba langkah-langkah pemecahan masalah berikut:

  • Pastikan Data Lineage API diaktifkan di project lingkungan Managed Service untuk Apache Airflow Anda.
  • Periksa apakah integrasi silsilah data diaktifkan di lingkungan Managed Service untuk Apache Airflow.
  • Periksa apakah operator yang Anda gunakan disertakan dalam dukungan pelaporan silsilah otomatis. Untuk mengetahui informasi selengkapnya, lihat Operator Airflow yang didukung.
  • Periksa log silsilah di Managed Service untuk Apache Airflow untuk mengetahui kemungkinan masalah.

Langkah berikutnya