Apa itu Federasi Lakehouse?
Artikel ini memperkenalkan Lakehouse Federation, platform federasi kueri yang memungkinkan Anda menggunakan Azure Databricks untuk menjalankan kueri terhadap beberapa sumber data eksternal. Ini juga menjelaskan cara
Apa itu Federasi Lakehouse?
Lakehouse Federation adalah platform federasi kueri untuk Azure Databricks. Istilah federasi kueri menjelaskan kumpulan fitur yang memungkinkan pengguna dan sistem menjalankan kueri terhadap beberapa sumber data tanpa perlu memigrasikan semua data ke sistem terpadu.
Azure Databricks menggunakan Unity Catalog untuk mengelola federasi kueri. Anda mengonfigurasi connections baca-saja ke solusi database populer menggunakan driver yang disertakan di gudang pro SQL, gudang SQL tanpa server, dan kluster Databricks Runtime. Alat tata kelola data dan silsilah data Unity Catalogmemastikan bahwa akses data dikelola dan diaudit untuk semua kueri federasi yang dibuat oleh pengguna di ruang kerja Azure Databricks Anda.
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 ad hoc.
- Bukti kerja konsep.
- Fase eksplorasi alur atau laporan ETL baru.
- Mendukung beban kerja selama migrasi inkremental.
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 Lakehouse dimaksudkan untuk kasus penggunaan ketika:
- Anda tidak ingin menyerap data ke Azure Databricks.
- Anda ingin kueri Anda memanfaatkan komputasi dalam sistem database eksternal.
- Anda menginginkan keunggulan antarmuka Unity Catalog dan tata kelola data, termasuk kontrol akses terperinci, lini masa data, dan pencarian.
Gambaran umum penyiapan Federasi Lakehouse
Untuk membuat himpunan data tersedia untuk kueri baca-saja menggunakan Federasi Lakehouse, Anda membuat hal berikut:
- Koneksi , objek yang dapat diamankan di Unity Catalog yang menentukan jalur dan credentials untuk mengakses sistem database eksternal.
- catalog 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 Lakehouse mendukung connections ke jenis database berikut:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (Gudang Data SQL)
- Google BigQuery
- Databricks
- Federasi Metastore Hive
Persyaratan koneksi
Persyaratan ruang kerja:
- Ruang kerja telah diaktifkan untuk Unity Catalog.
Persyaratan komputasi:
- Konektivitas jaringan dari sumber daya komputasi Anda ke sistem database target. Lihat Rekomendasi jaringan untuk Federasi Lakehouse.
- Komputasi Azure Databricks harus menggunakan Databricks Runtime 13.3 LTS atau lebih tinggi dan mode akses bersama atau pengguna tunggal.
- Gudang SQL harus pro atau tanpa server dan harus menggunakan 2023.40 atau lebih tinggi.
Izin yang diperlukan:
- Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan hak istimewa
CREATE CONNECTION
pada metastore Unity Catalog yang dilampirkan ke ruang kerja. - Untuk membuat catalogasing , Anda harus memiliki izin
CREATE CATALOG
di metastore dan menjadi pemilik koneksi atau memiliki hak istimewaCREATE FOREIGN CATALOG
pada koneksi.
Persyaratan izin tambahan ditentukan di setiap bagian berbasis tugas yang mengikuti.
Buat sambungan
Koneksi menentukan jalur dan credentials 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.
Catatan
Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat koneksi. Silakan periksa perintah POST /api/2.1/unity-catalog/connections dan Unity Catalog.
Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION
hak istimewa.
Catalog Explorer
Di ruang kerja Azure Databricks Anda, klik ikon
Catalog.
Di bagian atas panel Catalog, klik ikon Tambahkan atau plus
, lalu pilih Tambahkan ikon dan Tambahkan koneksi selectdari menu.
Atau, dari halaman akses cepat, klik tombol data eksternal >, buka tab Connections, dan klik Buat koneksi.
Masukkan nama Koneksi yang mudah digunakan.
tipe Koneksi (penyedia database, seperti MySQL atau PostgreSQL). (Opsional) Tambahkan komentar.
Klik Berikutnya.
Masukkan properti koneksi (seperti informasi host, jalur, dan akses credentials).
Setiap jenis koneksi memerlukan informasi koneksi yang berbeda. Lihat artikel untuk jenis koneksi Anda yang tercantum di table konten di sebelah kiri.
Klik Buat koneksi.
Masukkan nama untuk objek catalogyang asing.
(Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
Klik Buat catalog.
Select ruang kerja di mana pengguna dapat mengakses catalog yang telah Anda buat. Anda dapat selectSemua ruang kerja memiliki akses, atau klik Tetapkan ke ruang kerja, select ruang kerja, lalu klik Tetapkan.
Ubah Pemilik yang akan dapat mengelola akses ke semua objek di catalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
"Grant Hak Istimewa pada catalog." Klik Grant:
- Tentukan Prinsipal
yang akan memiliki akses ke objek di . Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan. -
Select preset Hak Istimewa untuk grant ke setiap prinsipal. Semua pengguna akun diberikan
BROWSE
secara default.-
Select
Pembaca Data dari menu drop-down ke hak istimewa grant
read
pada objek di catalog. -
Select
Editor Data dari menu drop-down ke hak istimewa grant
read
danmodify
pada objek di catalog. - Secara manual select hak akses ke grant.
-
Select
Pembaca Data dari menu drop-down ke hak istimewa grant
- Klik Grant.
- Klik Berikutnya.
- Pada halaman Metadata, tentukan pasangan kunci-nilai untuk tag. Untuk informasi selengkapnya, lihat Menerapkan tag pada objek Unity Catalog yang dapat diamankan.
- (Opsional) Tambahkan komentar.
- Klik Simpan.
- Tentukan Prinsipal
SQL
Jalankan perintah berikut ini di buku catatan atau editor kueri SQL. Contoh ini untuk connections ke database PostgreSQL. Opsi berbeda menurut jenis koneksi. Lihat artikel untuk jenis koneksi Anda yang tercantum di table konten 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 plaintext string untuk data sensitif values seperti credentials. 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 menyiapkan rahasia, lihat Manajemen rahasia.
Untuk informasi tentang mengelola connectionsyang ada, lihat Mengelola connections untukFederasi Lakehouse .
Membuat catalog asing
Catatan
Jika Anda menggunakan antarmuka pengguna untuk membuat koneksi ke sumber data, pembuatan elemen catalog luar disertakan dan Anda dapat melewati langkah ini.
catalog asing mencerminkan database di dalam sistem data eksternal sehingga Anda dapat melakukan kueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog. Untuk membuat catalogdari luar, Anda menggunakan koneksi ke sumber data yang telah ditentukan.
Untuk membuat catalogsebagai elemen asing, Anda bisa menggunakan Catalog Explorer atau perintah SQL CREATE FOREIGN CATALOG
pada buku catatan Azure Databricks atau editor kueri SQL. Anda juga dapat menggunakan Unity Catalog API. Lihat Dokumentasi referensi Azure Databricks.
Metadata catalog asing disinkronkan ke Unity Catalog pada setiap interaksi dengan catalog. Untuk pemetaan jenis data antara Unity
Izin diperlukan:CREATE CATALOG
izin pada metastore dan kepemilikan koneksi atau CREATE FOREIGN CATALOG
hak istimewa pada koneksi.
Catalog Explorer
Di ruang kerja Azure Databricks Anda, klik ikon
Catalog untuk membuka Catalog Explorer.
Di bagian atas panel Catalog, klik ikon
ikon Tambahkan dan selectTambahkan catalog dari menu.
Atau, dari halaman akses cepat
, klik tombol , lalu klik tombol Buat .Ikuti instruksi untuk membuat catalogs yang asing di Buat catalogs.
SQL
Jalankan perintah SQL berikut ini di buku catatan atau editor kueri SQL. Item dalam tanda kurung bersifat opsional. Ganti placeholder values:
-
<catalog-name>
: Nama untuk catalog di Azure Databricks. -
<connection-name>
: Objek koneksi yang menentukan sumber data, jalur, dan akses credentials. -
<database-name>
: Nama database yang ingin Anda cerminkan sebagai catalog di Azure Databricks. Tidak diperlukan untuk MySQL, yang menggunakan namespace dua lapisan. -
<external-catalog-name>
: hanya Databricks-to-Databricks: Nama catalog di ruang kerja Databricks eksternal yang Anda cerminkan. Lihat Membuat catalogasing .
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Untuk informasi tentang mengelola dan bekerja dengan catalogsasing, lihat Mengelola dan bekerja dengan catalogsasing.
Federasi Lakehouse dan views terwujud
Databricks merekomendasikan pemuatan data eksternal menggunakan Federasi Lakehouse saat Anda membuat viewsyang termaterialisasi. Lihat Menggunakan views materialisasi di Databricks SQL.
Saat Anda menggunakan Federasi Lakehouse, pengguna dapat mereferensikan data federasi sebagai berikut:
CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;
Melihat kueri federasi yang dihasilkan sistem
Federasi Lakehouse menerjemahkan pernyataan Databricks SQL ke dalam pernyataan yang dapat didorong ke sumber data federasi. 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.
Batasan
- Kueri bersifat baca-saja.
- Pembatasan connections ditentukan menggunakan kueri bersamaan Databricks SQL limit. Tidak ada limit di seluruh gudang per koneksi. Lihat Antrean dan penskalaan otomatis untuk gudang SQL pro dan klasik.
- Tables dan skema dengan nama yang tidak valid di Unity Catalog tidak didukung dan dilewatkan oleh Unity Catalog setelah pembuatan entitas asing catalog. Lihat list aturan penamaan dan batasan dalam Batasan.
- nama Table dan nama schema dikonversi menjadi huruf kecil di Unity Catalog. Pencarian juga harus menggunakan nama huruf kecil. Jika ada tables atau skema dengan nama huruf kecil duplikat, hanya salah satu tables atau skema yang diimpor ke catalogasing.
- Untuk setiap table asing yang direferensikan, Azure Databricks menjadwalkan subkueri dalam sistem jarak jauh untuk mengambil subset data dari table tersebut dan kemudian mengembalikan hasilnya ke satu tugas pelaksana Azure Databricks melalui satu saluran. Jika hasilnya set terlalu besar, pelaksana mungkin kehabisan memori.
- Mode akses pengguna tunggal hanya tersedia untuk pengguna yang memiliki koneksi.
- Federasi Lakehouse tidak dapat memfederasi tables asing dengan pengidentifikasi pembeda huruf besar/kecil untuk Azure Synapse connections atau Redshift connections.
Kuota sumber daya
Azure Databricks menerapkan kuota sumber daya pada semua objek Unity Catalog yang dapat diamankan. Kuota ini tercantum dalam batas Sumber Daya. Elemen asing catalogs dan semua objek yang dikandungnya disertakan dalam keseluruhan 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. Lihat Pantau penggunaan kuota sumber daya Unity Catalog Anda.
Sumber Daya Tambahan:
- Kueri gabungan (Federasi Lakehouse) dalam referensi bahasa SQL