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.
Dengan federasi kueri, kueri diteruskan ke basis data asing melalui API JDBC. Kueri dijalankan baik di Databricks maupun menggunakan komputasi jarak jauh. Federasi kueri digunakan untuk sumber seperti MySQL, PostgreSQL, BigQuery, Redshift, Teradata, dan banyak lagi.
Mengapa menggunakan Federasi Lakehouse?
Lakehouse menekankan penyimpanan data pusat untuk mengurangi redundansi dan isolasi data. Organisasi Anda mungkin memiliki banyak sistem data dalam produksi, dan Anda mungkin ingin mengkueri data dalam sistem yang terhubung karena sejumlah alasan:
- Pelaporan sesuai permintaan.
- Pembuktian konsep.
- Fase eksplorasi alur atau laporan ETL baru.
- Mendukung beban kerja selama migrasi bertahap.
Dalam setiap skenario ini, federasi kueri membuat Anda mendapatkan wawasan lebih cepat, karena Anda dapat mengkueri data di tempat dan menghindari pemrosesan ETL yang kompleks dan memakan waktu.
Federasi kueri dimaksudkan untuk skenario penggunaan ketika:
- Anda tidak ingin menyerap data ke Azure Databricks.
- Anda ingin kueri Anda memanfaatkan komputasi dalam sistem database eksternal.
- Anda menginginkan keunggulan dari antarmuka Unity Catalog dan tata kelola data, termasuk kontrol akses yang cermat, linimasa data, dan pencarian.
Federasi kueri vs. Lakeflow Connect
Federasi kueri memungkinkan Anda mengkueri sumber data eksternal tanpa memindahkan data Anda. Databricks menyarankan penyerapan menggunakan konektor terkelola karena dapat disesuaikan skala untuk mengakomodasi volume data yang tinggi, kueri dengan latensi rendah, dan batas penggunaan API pihak ketiga. Namun, Anda mungkin ingin mengkueri data Anda tanpa memindahkannya. Saat Anda memiliki pilihan antara konektor pengambilan terkelola dan federasi kueri, pilih federasi kueri untuk pelaporan ad hoc atau uji coba konsep pada saluran ETL Anda.
Gambaran umum penyiapan federasi kueri
Untuk membuat himpunan data tersedia untuk kueri baca-saja menggunakan Federasi Lakehouse, Anda membuat yang berikut:
- Koneksi, objek yang dapat diamankan di Katalog Unity yang menentukan jalur dan kredensial untuk mengakses sistem database eksternal.
- Katalog asing, objek yang dapat diamankan di Unity Catalog yang mencerminkan database dalam sistem data eksternal, memungkinkan Anda melakukan kueri baca-saja pada sistem data tersebut di ruang kerja Azure Databricks Anda, mengelola akses menggunakan Unity Catalog.
Sumber data yang didukung
Federasi kueri mendukung koneksi ke sumber berikut:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data 360
- Snowflake
- Microsoft SQL Server
- Azure Synapse (Gudang Data SQL)
- Google BigQuery
- Databricks
Persyaratan koneksi
Persyaratan ruang kerja:
- Workspace telah diaktifkan untuk Unity Catalog.
Persyaratan komputasi:
- Konektivitas jaringan dari sumber daya komputasi Anda ke sistem database target. Lihat Rekomendasi jaringan untuk Lakehouse Federation.
- Komputasi Azure Databricks harus menggunakan Databricks Runtime 13.3 LTS atau yang lebih tinggi serta mode akses Standar atau mode akses Dedicated .
- Gudang SQL harus pro atau tanpa server dan harus menggunakan 2023.40 atau lebih tinggi.
Izin diperlukan:
- Untuk membuat koneksi, Anda harus menjadi administrator metastore atau pengguna yang memiliki hak istimewa
CREATE CONNECTIONpada metastore Unity Catalog yang terhubung dengan ruang kerja. - Untuk membuat katalog asing, Anda harus memiliki izin
CREATE CATALOGdi metastore dan menjadi pemilik koneksi atau memiliki hak istimewaCREATE FOREIGN CATALOGpada koneksi.
Persyaratan izin tambahan dinyatakan di setiap bagian berbasis tugas berikut.
Buat sambungan
Koneksi menentukan jalur dan kredensial untuk mengakses sistem database eksternal. Untuk membuat koneksi, Anda bisa menggunakan Catalog Explorer atau perintah SQL CREATE CONNECTION di buku catatan Azure Databricks atau editor kueri Databricks SQL.
Note
Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat koneksi. Lihat perintah POST /api/2.1/unity-catalog/connections dan perintah Unity Catalog.
Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION hak istimewa.
Eksplorer Katalog
Di ruang kerja Azure Databricks Anda, klik
Katalog.
Di bagian atas panel Katalog, klik ikon
atau ikon plus dan pilih Tambahkan koneksi dari menu.Atau, dari halaman akses cepat , klik tombol Data eksternal >, buka tab Koneksi, dan klik Buat koneksi.
Masukkan nama Koneksi yang mudah digunakan.
Pilih Jenis koneksi (penyedia database, seperti MySQL atau PostgreSQL).
(Opsional) Tambahkan komentar.
Klik Berikutnya.
Masukkan properti koneksi (seperti informasi host, jalur, dan kredensial akses).
Setiap jenis koneksi memerlukan informasi koneksi yang berbeda. Lihat artikel untuk jenis koneksi Anda, tercantum dalam daftar isi di sebelah kiri.
Klik Buat koneksi.
Masukkan nama untuk katalog asing.
(Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
Klik Buat katalog.
Pilih ruang kerja tempat pengguna dapat mengakses katalog yang Anda buat. Anda dapat memilih Semua ruang kerja memiliki akses, atau klik Tetapkan ke ruang kerja, pilih ruang kerja, lalu klik Tetapkan.
Ubah Pemilik yang akan dapat mengelola akses ke semua objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
Berikan Hak Akses pada katalog. Klik Berikan:
- Tentukan Prinsipal yang akan memiliki akses ke objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
- Pilih preset Hak Istimewa untuk diberikan kepada setiap prinsipal. Semua pengguna akun diberikan
BROWSEsecara default.- Pilih Pembaca Data dari menu drop-down untuk memberikan izin
readpada objek dalam katalog. - Pilih Editor Data
dari menu drop-down untuk memberikan hak istimewa dan pada objek dalam katalog. - Pilih hak istimewa yang akan diberikan secara manual.
- Pilih Pembaca Data dari menu drop-down untuk memberikan izin
- Klik pada Berikan.
- Klik Berikutnya.
- Pada halaman Metadata, tentukan pasangan kunci-nilai untuk tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan pada Katalog Unity.
- (Opsional) Tambahkan komentar.
- Kliklah Simpan.
SQL
Jalankan perintah berikut ini di buku catatan atau editor kueri SQL. Contoh ini untuk koneksi ke database PostgreSQL. Opsi berbeda menurut jenis koneksi. Lihat artikel untuk jenis koneksi Anda, tercantum dalam daftar isi di sebelah kiri.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Kami menyarankan agar Anda menggunakan Azure Databricks rahasia alih-alih string teks biasa untuk nilai sensitif seperti kredensial. Contohnya:
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Untuk informasi tentang mengatur rahasia, lihat Manajemen Rahasia.
Untuk informasi tentang mengelola koneksi yang ada, lihat Pengelolaan Koneksi untuk Lakehouse Federation.
Membuat katalog asing
Note
Jika Anda menggunakan UI untuk membuat koneksi ke sumber data, pembuatan katalog asing disertakan dan Anda dapat melewati langkah ini.
Katalog asing mencerminkan database dalam sistem data eksternal sehingga Anda dapat mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog. Untuk membuat katalog asing, Anda menggunakan koneksi ke sumber data yang telah ditentukan.
Untuk membuat katalog asing, Anda bisa menggunakan Catalog Explorer atau perintah CREATE FOREIGN CATALOG SQL di buku catatan Azure Databricks atau editor kueri SQL. Anda juga dapat menggunakan Unity Catalog API. Lihat Dokumentasi Referensi Azure Databricks.
Metadata katalog asing disinkronkan ke Dalam Katalog Unity pada setiap interaksi dengan katalog. Untuk pemetaan jenis data antara Katalog Unity dan sumber data, periksa bagian Pemetaan Tipe Data dari dokumentasi setiap sumber data.
Izin diperlukan:CREATE CATALOG hak akses pada metastore dan kepemilikan koneksi atau hak istimewa pada koneksi.
Eksplorer Katalog
Di ruang kerja Azure Databricks Anda, klik
Katalog untuk membuka Catalog Explorer.
Di bagian atas panel Katalog , klik
Tambahkan data dan pilih Buat katalog dari menu.Atau, dari halaman akses cepat, klik tombol Katalog, lalu klik tombol Buat katalog.
Ikuti instruksi untuk membuat katalog asing di Membuat katalog.
SQL
Jalankan perintah SQL berikut ini di buku catatan atau editor kueri SQL. Item dalam tanda kurung bersifat opsional. Ganti nilai placeholder ini:
-
<catalog-name>: Nama untuk katalog di Azure Databricks. -
<connection-name>: Objek koneksi yang menentukan sumber data, jalur, dan kredensial akses. -
<database-name>: Nama database yang ingin Anda cerminkan sebagai katalog di Azure Databricks. Tidak diperlukan untuk MySQL, yang menggunakan namespace dua lapisan. -
<external-catalog-name>: hanya Databricks-to-Databricks: Nama katalog di ruang kerja eksternal Databricks yang sedang Anda sinkronkan. Lihat Membuat katalog asing.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Untuk informasi tentang mengelola dan bekerja dengan katalog asing, lihat Mengelola dan bekerja dengan katalog asing.
Memuat data dari tabel asing dengan tampilan materialisasi
Databricks merekomendasikan pemuatan data eksternal menggunakan federasi kueri saat Anda membuat tampilan materialisasi. Lihat Tampilan termaterialisasi.
Saat Anda menggunakan federasi kueri, pengguna dapat mereferensikan data federasi sebagai berikut:
CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;
Lihat kueri federasi yang dihasilkan sistem
Federasi kueri menerjemahkan pernyataan Databricks SQL ke dalam pernyataan yang dapat didorong ke sumber data terfederasi. Untuk melihat pernyataan SQL yang dihasilkan, klik simpul pemindaian sumber data asing pada tampilan grafik Profil Kueri, atau jalankan pernyataan EXPLAIN FORMATTED SQL. Lihat bagian Pushdown yang Didukung dari dokumentasi setiap sumber data untuk cakupan informasi.
Limitations
Kueri dalam mode baca saja.
Satu-satunya pengecualian adalah ketika Federasi Lakehouse digunakan untuk mengintegrasikan metastore warisan dari Apache Hive pada ruang kerja (federasi katalog). Tabel asing dalam skenario tersebut dapat ditulis. Lihat Apa artinya menulis pada katalog asing dalam metastore Hive terfederasi?.
Pembatasan kecepatan koneksi ditentukan menggunakan batas kueri bersamaan pada Databricks SQL. Tidak ada batasan antar gudang per koneksi. Lihat Logika antrean dan penskalaan otomatis.
Tabel dan skema dengan nama yang tidak valid di Katalog Unity tidak didukung dan diabaikan oleh Katalog Unity setelah pembuatan katalog asing. Lihat daftar aturan penamaan dan batasan dalam Batasan.
Nama tabel dan nama skema dikonversi ke huruf kecil di Katalog Unity. Jika ini menyebabkan tabrakan nama, Databricks tidak dapat menjamin objek mana yang diimpor ke dalam katalog asing.
Untuk setiap tabel asing yang direferensikan, Databricks menjadwalkan subkueri pada sistem jarak jauh untuk mengambil subset data dari tabel tersebut, kemudian mengirimkan hasilnya ke tugas pelaksana Databricks melalui satu aliran tunggal. Jika kumpulan hasil terlalu besar, eksekutor mungkin kehabisan memori.
Mode akses khusus (sebelumnya mode akses pengguna tunggal) hanya tersedia untuk pengguna yang memiliki koneksi.
Federasi Lakehouse tidak dapat mengintegrasikan tabel asing dengan pengidentifikasi peka huruf besar/kecil untuk koneksi Azure Synapse atau koneksi Redshift.
Kuota sumber daya
Azure Databricks memberlakukan kuota sumber daya pada semua objek yang dapat diamankan Unity Catalog. Kuota ini tercantum dalam batas Sumber Daya. Katalog asing dan semua objek yang dikandungnya disertakan dalam total penggunaan kuota Anda.
Jika Anda berharap melebihi batas sumber daya ini, hubungi tim akun Azure Databricks Anda.
Anda dapat memantau penggunaan kuota menggunakan API kuota sumber daya Unity Catalog. Lihatlah cara memantau penggunaan kuota sumber daya Unity Catalog Anda .