Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Lakebase Autoscaling tersedia di wilayah berikut: eastus, , , eastus2centralus, southcentralus, westus, westus2canadacentral, brazilsouth, , northeurope, uksouth, westeurope, , , australiaeast, , centralindia, . southeastasia
Lakebase Autoscaling adalah versi terbaru Lakebase, dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Jika Anda adalah pengguna Lakebase Provisioned, lihat Lakebase Provisioned.
Tabel yang disinkronkan memungkinkan Anda menyajikan data lakehouse melalui Lakebase Postgres. Tabel Unity Catalog disinkronkan ke Postgres sehingga aplikasi dapat mengkueri data lakehouse secara langsung dengan latensi rendah. Proses ini umumnya dikenal sebagai reverse ETL. Lakehouse dioptimalkan untuk analitik dan pengayaan, sementara Lakebase dirancang untuk beban kerja operasional yang memerlukan kueri gaya pencarian yang cepat dan konsistensi transaksi.
Apa itu tabel yang disinkronkan?
Tabel yang disinkronkan memungkinkan Anda menyajikan data tingkat analitik dari Unity Catalog melalui Lakebase Postgres, membuatnya tersedia untuk aplikasi yang membutuhkan kueri latensi rendah (sub-10ms) dan transaksi ACID penuh. Mereka menjembatani kesenjangan antara penyimpanan analitik dan sistem operasional dengan memastikan data Anda siap untuk digunakan dalam aplikasi real-time.
Sumber yang didukung
Tabel yang disinkronkan mendukung jenis sumber Katalog Unity berikut ini:
- Tabel Delta terkelola dan eksternal
- Tabel Iceberg terkelola dan eksternal
- Pandangan dan pandangan terwujud
Cara kerjanya
Tabel yang disinkronkan Databricks membuat salinan terkelola data Unity Catalog Anda di Lakebase. Saat membuat tabel yang disinkronkan, Anda mendapatkan:
- Tabel yang disinkronkan di Katalog Unity yang mereferensikan alur sinkronisasi
- Tabel Postgres di Lakebase (baca-saja, dapat dikueri oleh aplikasi Anda)
Misalnya, Anda dapat menyinkronkan tabel emas, fitur rekayasa, atau output ML dari analytics.gold.user_profiles ke dalam tabel analytics.gold.user_profiles_syncedbaru yang disinkronkan . Di Postgres, nama skema Katalog Unity menjadi nama skema Postgres, sehingga muncul sebagai "gold"."user_profiles_synced":
SELECT * FROM "gold"."user_profiles_synced" WHERE "user_id" = 12345;
Aplikasi terhubung dengan driver Postgres standar dan mengkueri data yang disinkronkan bersama status operasionalnya sendiri.
Peringatan
Meskipun dimungkinkan untuk memodifikasi tabel yang disinkronkan langsung di Postgres, Azure Databricks sangat menyarankan untuk menjalankan hanya kueri baca untuk melindungi integritas data dengan sumbernya. Untuk operasi yang didukung pada tabel yang disinkronkan, lihat Operasi yang didukung.
Alur sinkronisasi menggunakan Alur Deklaratif Lakeflow Spark terkelola untuk terus memperbarui tabel yang disinkronkan Katalog Unity dan tabel Postgres dengan perubahan dari tabel sumber. Setiap sinkronisasi dapat menggunakan hingga 16 koneksi ke database Lakebase Anda.
Lakebase Postgres mendukung hingga 1.000 koneksi bersamaan dengan jaminan transaksional, sehingga aplikasi dapat membaca data yang diperkaya sambil juga menangani sisipan, pembaruan, dan penghapusan dalam database yang sama.
Mode sinkronisasi
Pilih mode sinkronisasi yang tepat berdasarkan kebutuhan aplikasi Anda:
| Modus | Deskripsi | Kapan digunakan | Kinerja |
|---|---|---|---|
| Snapshot | Salin sekali semua data | Perubahan sumber >10% baris per siklus, atau sumber tidak mendukung CDF (tampilan, tabel Iceberg) | 10x lebih efisien jika memodifikasi >10% data sumber |
| Diaktifkan | Pembaruan terjadwal yang dijalankan sesuai permintaan atau pada interval | Baris sumber berubah pada frekuensi yang diketahui. Penyisipan, pembaruan, dan penghapusan dilakukan setiap pemutakhiran. | Keseimbangan biaya/keterlambatan yang baik. Mahal jika dijalankan pada interval <5 menit |
| Terus-menerus | Streaming real-time dengan latensi beberapa detik | Perubahan harus muncul di Lakebase dalam waktu hampir real time | Jeda terendah, biaya tertinggi. Interval minimum 15 detik |
Mode Terpicu dan Berkelanjutan mengharuskan Umpan Data Perubahan (CDF) diaktifkan pada tabel sumber Anda. Jika CDF tidak diaktifkan, Anda akan melihat peringatan di UI dengan perintah yang tepat ALTER TABLE yang harus dijalankan. Untuk informasi lebih lanjut mengenai Change Data Feed, lihat Gunakan Change Data Feed Delta Lake di Databricks.
Contoh kasus penggunaan
Anda dapat menggunakan tabel yang disinkronkan untuk kasus penggunaan penyajian data seperti:
- Mesin personalisasi yang melayani profil pengguna baru ke Aplikasi Databricks
- Aplikasi yang melayani prediksi model atau nilai fitur yang dihitung di lakehouse
- Dasbor yang menghadap pelanggan yang melayani KPI secara real time
- Layanan deteksi penipuan yang melayani skor risiko untuk tindakan segera
- Perangkat pendukung yang menyajikan catatan pelanggan yang diperkaya dari data lakehouse
Membuat tabel yang disinkronkan (UI)
Alur kerja UI diuraikan di bawah ini.
Prasyarat
Anda memerlukan:
- Ruang kerja Databricks yang mengaktifkan Lakebase.
- Proyek Lakebase (lihat Membuat proyek).
- Tabel Katalog Unity untuk sinkronisasi.
- Izin untuk membuat tabel yang disinkronkan. Anda memerlukan USE_SCHEMA dan CREATE_TABLE pada skema apa pun yang Anda gunakan. Opsi katalog dan skema di alur pembuatan tabel sinkronisasi hanya menampilkan skema di mana identitas Anda memiliki hak istimewa tersebut.
Untuk perencanaan kapasitas dan kompatibilitas jenis data, lihat Jenis data dan kompatibilitas dan Perencanaan kapasitas.
Langkah 1: Pilih tabel sumber Anda
Buka Katalog di bilah samping ruang kerja dan pilih tabel Katalog Unity yang ingin Anda sinkronkan.
Langkah 2: Aktifkan Ubah Umpan Data (jika diperlukan)
Jika Anda berencana menggunakan mode Sinkronisasi terpicu atau Berkelanjutan , tabel sumber Anda memerlukan Umpan Data Perubahan diaktifkan. Periksa apakah tabel Anda sudah mengaktifkan CDF, atau jalankan perintah ini di editor atau buku catatan SQL:
ALTER TABLE your_catalog.your_schema.your_table
SET TBLPROPERTIES (delta.enableChangeDataFeed = true)
Ganti your_catalog.your_schema.your_table dengan nama tabel Anda yang sebenarnya.
Langkah 3: Membuat tabel yang disinkronkan
Klik Buat>tabel Yang Disinkronkan dari tampilan detail tabel.
Langkah 4: Mengonfigurasi
Dalam dialog Buat tabel yang disinkronkan :
Daftar katalog dan skema hanya menyertakan skema Katalog Unity di mana pengguna saat ini memiliki hak istimewa USE_SCHEMA dan CREATE_TABLE . Jika Anda tidak melihat skema yang Anda harapkan, konfirmasikan izin Anda dengan admin katalog Anda.
- Nama tabel: Masukkan nama untuk tabel yang disinkronkan (dibuat dalam katalog dan skema yang sama dengan tabel sumber Anda). Ini membuat tabel yang disinkronkan dengan Katalog Unity dan tabel Postgres yang dapat Anda kueri.
- Jenis database: Pilih Lakebase Serverless (Autoscaling).
- Mode sinkronisasi: Pilih Rekam Jepret, Dipicu, atau Berkelanjutan berdasarkan kebutuhan Anda (lihat mode sinkronisasi di atas).
- Konfigurasikan pilihan proyek, cabang, dan database Anda.
- Verifikasi kunci Primer sudah benar (biasanya terdeteksi otomatis).
Jika Anda memilih mode Terpicu atau Berkelanjutan dan belum mengaktifkan Ubah Umpan Data, Anda akan melihat peringatan dengan perintah yang tepat untuk dijalankan. Untuk pertanyaan kompatibilitas jenis data, lihat Jenis dan kompatibilitas data.
Klik Buat untuk membuat tabel yang disinkronkan.
Langkah 5: Memantau
Setelah pembuatan, pantau tabel yang disinkronkan di Katalog. Tab Gambaran Umum memperlihatkan status sinkronisasi, konfigurasi, status alur, dan tanda waktu sinkronisasi terakhir. Gunakan Sinkronkan sekarang untuk refresh manual.
Menjadwalkan atau memicu sinkronisasi berikutnya
Cuplikan awal akan berjalan secara otomatis saat dibuat. Untuk mode Rekam Jepret dan Terpicu , sinkronisasi berikutnya harus dipicu secara eksplisit. Mode berkelanjutan adalah pengelolaan mandiri.
Tugas alur proses Sinkronisasi Tabel Basis Data
Tugas alur Sinkronisasi Tabel Database di Pekerjaan Lakeflow menjalankan alur tabel yang disinkronkan sebagai langkah alur kerja. Konfigurasikan pekerjaan dengan pemicu pembaruan tabel atau jadwal.
Pemicu pada pembaruan tabel sumber
Mengaktifkan pekerjaan saat tabel Unity Catalog sumber diperbarui. Dengan mode Dipicu, perubahan baru hanya diterapkan secara bertahap, memberikan kesegaran yang hampir real-time tanpa biaya mode Berkelanjutan yang selalu aktif.
- Di bilah samping, klik Alur Kerja.
- Klik Buat pekerjaan atau buka pekerjaan yang sudah ada.
- Pada tab Tugas , klik + Tambahkan tipe tugas lain.
- Di bawah Penyerapan dan Transformasi, pilih alur Sinkronisasi Tabel Database.
- Di bidang Alur , pilih alur yang terkait dengan tabel yang disinkronkan.
- Di bawah Jadwal & Pemicu, klik Tambahkan pemicu.
- Pilih Pembaruan tabel sebagai tipe pemicu.
- Di bawah Tabel, pilih tabel sumber dari Katalog Unity untuk diawasi.
- Kliklah Simpan.
Pemicu otomatis berdasarkan jadwal
Menjalankan sinkronisasi pada irama tetap. Cocok untuk mode Rekam Jepret , di mana refresh penuh malam atau mingguan biasanya merupakan pola yang paling efisien.
- Ikuti langkah 1–5 di atas untuk menambahkan tugas alur Sinkronisasi Tabel Database ke pekerjaan.
- Di bawah Jadwal & Pemicu, klik Tambahkan pemicu.
- Pilih Terjadwal sebagai jenis pemicu.
- Atur jadwal dan zona waktu cron Anda, lalu klik Simpan.
Menggunakan SDK
Picu sinkronisasi berjalan secara terprogram, misalnya di akhir buku catatan upstram atau alur:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Get the pipeline ID from the synced table
table = w.database.get_synced_database_table(name="catalog.schema.synced_table")
pipeline_id = table.data_synchronization_status.pipeline_id
# Trigger a sync run
w.pipelines.start_update(pipeline_id=pipeline_id)
Jenis dan kompatibilitas data
Jenis data Unity Catalog dipetakan ke jenis Postgres saat membuat tabel yang disinkronkan. Jenis kompleks (ARRAY, MAP, STRUCT) disimpan sebagai JSONB di Postgres.
| Jenis kolom sumber | Jenis kolom Postgres |
|---|---|
| BIGINT | BIGINT |
| BINARY | BYTEA |
| BOOLEAN | BOOLEAN |
| DATE | DATE |
| DECIMAL(p,s) | NUMERIK |
| dobel | PRESISI GANDA |
| FLOAT | WAKTU NYATA |
| INT | INTEGER |
| INTERVAL | INTERVAL |
| SMALLINT | SMALLINT |
| string | TEKS |
| TIMESTAMP | PENANDA WAKTU DENGAN ZONA WAKTU |
| TIMESTAMP_NTZ | TANDA WAKTU TANPA ZONA WAKTU |
| TINYINT | SMALLINT |
| ARRAY<elemenTipe> | JSONB |
| MAP<keyType,valueType> | JSONB |
| STRUCT<fieldName:fieldType[, ...]> | JSONB |
Nota
Jenis GEOGRAFI, GEOMETRI, VARIAN, dan OBJEK tidak didukung.
Menangani karakter yang tidak valid
Karakter tertentu seperti byte null (0x00) diizinkan di kolom STRING, ARRAY, MAP, atau STRUCT pada Unity Catalog tetapi tidak didukung di kolom Postgres TEXT atau JSONB. Ini dapat menyebabkan kegagalan sinkronisasi dengan kesalahan seperti:
ERROR: invalid byte sequence for encoding "UTF8": 0x00
ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text
Solusi:
Membersihkan bidang string: Hapus karakter yang tidak didukung sebelum menyinkronkan. Untuk byte nol dalam kolom STRING:
SELECT REPLACE(column_name, CAST(CHAR(0) AS STRING), '') AS cleaned_column FROM your_tableKonversi ke BINARY: Untuk kolom STRING di mana mempertahankan byte mentah diperlukan, konversi ke jenis BINARY.
Perencanaan kapasitas
Saat merencanakan implementasi tabel yang disinkronkan, pertimbangkan persyaratan sumber daya ini:
- Penggunaan koneksi: Setiap tabel yang disinkronkan menggunakan hingga 16 koneksi ke database Lakebase Anda, yang dihitung terhadap batas koneksi instans.
- Batas ukuran: Total batas ukuran data logis di semua tabel yang disinkronkan adalah 8 TB. Tabel individual tidak memiliki batas, tetapi Databricks merekomendasikan tidak melebihi 1 TB untuk tabel yang memerlukan refresh.
-
Persyaratan penamaan: Nama database, skema, dan tabel hanya boleh berisi karakter alfanumerik dan garis bawah (
[A-Za-z0-9_]+). - Evolusi skema: Hanya perubahan skema aditif (seperti menambahkan kolom) yang didukung untuk mode Dipicu dan Berkelanjutan.
- Laju pembaruan:: Untuk penskalaan otomatis Lakebase, alur sinkronisasi mendukung penulisan berkelanjutan dan dipicu pada sekitar 150 baris per detik per Unit Kapasitas (CU) dan penulisan snapshot hingga 2.000 baris per detik per Unit Kapasitas (CU).
Operasi yang diizinkan pada tabel yang disinkronkan di Postgres
Azure Databricks merekomendasikan untuk hanya melakukan operasi berikut di Postgres untuk tabel yang disinkronkan untuk mencegah penimpaan atau inkonsistensi data yang tidak disengaja:
- Kueri baca-saja
- Membuat indeks
- Menjatuhkan tabel (untuk mengosongkan ruang setelah menghapus tabel yang disinkronkan dari Katalog Unity)
Meskipun dimungkinkan untuk memodifikasi tabel yang disinkronkan di Postgres dengan cara lain, tabel tersebut mengganggu alur sinkronisasi.
Menghapus tabel yang disinkronkan
Untuk menghapus tabel yang disinkronkan, Anda harus menghapusnya dari Unity Catalog dan Postgres:
Hapus dari Katalog Unity: Di Katalog, temukan tabel yang disinkronkan, klik
menu, dan pilih Hapus. Ini menghentikan refresh data tetapi meninggalkan tabel di Postgres.
Hapus dari Postgres: Sambungkan ke database Lakebase Anda dan hapus tabel untuk mengosongkan ruang.
DROP TABLE your_database.your_schema.your_table;
Anda dapat menggunakan editor SQL atau alat eksternal untuk menyambungkan ke Postgres.
Pelajari lebih lanjut
| Tugas | Deskripsi |
|---|---|
| Membuat proyek | Menyiapkan proyek Lakebase |
| Menyambungkan ke database Anda | Pelajari opsi koneksi untuk Lakebase |
| Mendaftarkan database di Katalog Unity | Membuat data Lakebase Anda terlihat di Unity Catalog untuk tata kelola terpadu dan kueri lintas sumber |
| Integrasi Katalog Unity | Memahami tata kelola dan izin |
Opsi lainnya
Untuk menyinkronkan data ke dalam sistem non-Databricks, lihat Solusi ETL terbalik Partner Connect seperti Sensus atau Hightouch.