Bagikan melalui


Memindahkan tabel di antara Alur Deklaratif Lakeflow

Penting

Fitur ini ada di Pratinjau Publik.

Artikel ini menjelaskan cara memindahkan tabel streaming dan tampilan materialisasi antar alur. Setelah pemindahan, pipeline yang Anda pindahkan akan memperbarui tabel, bukan pipeline yang asli. Ini berguna dalam banyak skenario, termasuk:

  • Membagi jalur besar menjadi yang lebih kecil.
  • Gabungkan beberapa alur dalam satu alur yang lebih besar.
  • Ubah frekuensi refresh untuk beberapa tabel dalam alur.
  • Pindahkan tabel dari skema LIVE warisan, ke mode penerbitan default baru. Lihat skema LIVE (versi lama).

Persyaratan

Berikut ini adalah prasyarat untuk memindahkan tabel antar alur.

  • Anda harus menggunakan Databricks Runtime 16.3 atau lebih tinggi saat menjalankan perintah yang ALTER TABLE diperlukan.
  • Alur sumber dan tujuan harus:
    • Alur kerja Unity Catalog (alur kerja metastore Hive tidak didukung)
    • Di ruang kerja yang sama
    • Dimiliki oleh akun pengguna Azure Databricks atau perwakilan layanan yang menjalankan operasi
  • Anda harus menjalankan alur tujuan setidaknya sekali sebelum memindahkan tabel.
  • Anda harus mengonfigurasi alur tujuan untuk menggunakan mode penerbitan default. Ini memungkinkan Anda menerbitkan tabel ke beberapa katalog dan skema. Jika tidak, kedua alur harus menggunakan mode penerbitan warisan dan keduanya harus memiliki katalog dan nilai target yang sama dalam pengaturan.

Nota

Fitur ini tidak mendukung pemindahan alur menggunakan mode penerbitan default ke alur menggunakan mode penerbitan warisan.

Memindahkan tabel antar alur

Instruksi berikut menjelaskan cara memindahkan tabel streaming atau tampilan materialisasi dari satu alur ke alur lainnya.

  1. Hentikan alur sumber jika sedang berjalan. Tunggu sampai benar-benar berhenti.

  2. Hapus definisi tabel dari buku catatan atau file alur sumber dan simpan di suatu tempat untuk referensi di masa mendatang.

    Sertakan kueri atau kode pendukung yang diperlukan agar alur berjalan dengan benar.

  3. Dari notebook atau editor SQL, jalankan perintah SQL berikut untuk menetapkan ulang tabel dari alur sumber ke alur tujuan:

    ALTER [MATERIALIZED VIEW | STREAMING TABLE] <table-name>
      SET TBLPROPERTIES("pipelines.pipelineId"="<destination-pipeline-id>");
    

    Misalnya, jika Anda ingin memindahkan tabel streaming bernama sales ke alur dengan ID abcd1234-ef56-ab78-cd90-1234efab5678, Anda akan menjalankan perintah berikut:

    ALTER STREAMING TABLE sales
      SET TBLPROPERTIES("pipelines.pipelineId"="abcd1234-ef56-ab78-cd90-1234efab5678");
    

    Nota

    pipelineId harus berupa pengidentifikasi alur yang valid. Nilai null tidak diizinkan.

  4. Tambahkan definisi tabel ke buku catatan/file alur tujuan.

    Nota

    Jika katalog atau skema target berbeda antara sumber dan tujuan, menyalin kueri dengan tepat mungkin tidak berfungsi. Tabel yang memenuhi syarat sebagian dalam definisi dapat diselesaikan secara berbeda. Anda mungkin perlu memperbarui definisi saat bergerak.

Pemindahan selesai. Anda sekarang dapat menjalankan baik jalur sumber maupun tujuan. Alur tujuan memperbarui tabel.

Penyelesaian Masalah

Tabel berikut ini menjelaskan kesalahan yang bisa terjadi saat memindahkan tabel antar alur.

Kesalahan Deskripsi
DESTINATION_PIPELINE_NOT_IN_DIRECT_PUBLISHING_MODE Jalur sumber berada dalam mode publikasi default, dan tujuan menggunakan mode skema LIVE (lama). Ini tidak didukung. Jika sumber menggunakan mode penerbitan default, maka tujuan juga harus.
PIPELINE_TYPE_NOT_WORKSPACE_PIPELINE_TYPE Hanya memindahkan tabel di antara pipeline ETL yang didukung. Alur untuk tabel streaming dan tampilan materialisasi yang dibuat dengan Databricks SQL tidak didukung.
DESTINATION_PIPELINE_NOT_FOUND pipelines.pipelineId harus berupa alur yang valid. pipelineId tidak boleh bernilai null.
Tabel gagal diperbarui di tujuan setelah pemindahan. Untuk memitigasi dengan cepat dalam hal ini, pindahkan tabel kembali ke alur sumber dengan mengikuti instruksi yang sama. Anda kemudian dapat memecahkan masalah atau mengajukan masalah dengan manajer akun Anda.

Batasan

Berikut ini adalah batasan untuk memindahkan tabel antar alur.

  • Tampilan materialisasi dan tabel streaming yang dibuat dengan Databricks SQL tidak didukung.
  • Tabel atau tampilan privat tidak didukung.
  • Alur sumber dan tujuan harus berupa alur terkelola Katalog Unity. Alur metastore Apache Hive tidak didukung. Alur null tidak didukung.
  • Alur sumber dan tujuan harus berada di ruang kerja yang sama.
  • Alur sumber dan tujuan harus dimiliki oleh pengguna yang menjalankan operasi pemindahan.
  • Jika alur sumber menggunakan mode penerbitan default, alur tujuan juga harus menggunakan mode penerbitan default. Anda tidak dapat memindahkan tabel dari pipa data yang menggunakan mode penerbitan default ke pipa data yang menggunakan skema LIVE (lama). Lihat skema LIVE (versi lama).
  • Jika pipa sumber dan tujuan keduanya menggunakan skema LIVE (warisan), maka mereka harus memiliki nilai catalog dan target yang sama dalam pengaturan.