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.
Halaman ini menjelaskan cara menyiapkan Federasi Lakehouse untuk menjalankan kueri federasi pada data MySQL yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?
Untuk menghubungkan dengan basis data MySQL Anda menggunakan Lakehouse Federation, Anda harus membuat yang berikut ini di metastore Azure Databricks Unity Catalog Anda (ruang kerja yang dibuat setelah 9 November 2023 sudah secara otomatis disediakan metastore Katalog Unity).
- Koneksi ke basis data MySQL Anda.
- Katalog asing yang mencerminkan database MySQL Anda di Unity Catalog sehingga Anda dapat menggunakan sintaks kueri Unity Catalog dan alat tata kelola data untuk mengelola akses pengguna Azure Databricks ke database.
Sebelum Anda mulai
Persyaratan ruang kerja:
- Ruang kerja telah diaktifkan untuk Unity Catalog. Ruang kerja yang dibuat setelah 9 November 2023 aktif untuk Katalog Unity secara otomatis, termasuk penyediaan metastore otomatis. Anda tidak perlu membuat metastore secara manual, kecuali jika ruang kerja Anda dibuat sebelum pengaktifan otomatis dan belum diaktifkan untuk Katalog Unity. Lihat Pengaktifan otomatis 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 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 yang diperlukan:
- Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan hak istimewa
CREATE CONNECTIONpada metastore Katalog Unity yang dilampirkan ke ruang kerja. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memilikiCREATE CONNECTIONhak istimewa secara default. - Untuk membuat katalog asing, Anda harus memiliki izin
CREATE CATALOGdi metastore dan menjadi pemilik koneksi atau memiliki hak istimewaCREATE FOREIGN CATALOGpada koneksi. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memilikiCREATE CATALOGhak istimewa secara default.
Persyaratan izin tambahan ditentukan di setiap bagian berbasis tugas yang berikut.
SSL diperlukan untuk membuat koneksi.
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.
Catatan
Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat koneksi. Lihat POST /api/2.1/unity-catalog/connections dan perintah Unity Catalog.
Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION hak istimewa.
Penjelajah Katalog
- Di ruang kerja Azure Databricks Anda, klik
Katalog.
- Di bagian atas panel Katalog , klik
Tambahkan ikon dan pilih Buat koneksi dari menu. - Pada halaman Dasar-dasar Koneksi di wizard Menyiapkan koneksi, masukkan nama Koneksi yang mudah diingat.
- Pilih jenis Koneksi MySQL.
- (Opsional) Tambahkan komentar.
- Klik Berikutnya.
- Pada halaman Autentikasi , masukkan properti koneksi berikut untuk instans MySQL Anda:
-
Host: Misalnya,
mysql-demo.lb123.us-west-2.rds.amazonaws.com -
Port: Misalnya,
3306 -
Pengguna: Misalnya,
mysql_user -
Kata sandi: Misalnya,
password123
-
Host: Misalnya,
- (Opsional): Pilih Percayai sertifikat server. Ini tidak dipilih secara default. Saat dipilih, lapisan transportasi menggunakan SSL untuk mengenkripsi saluran dan melewati rantai sertifikat untuk memvalidasi kepercayaan. Biarkan ini diatur ke default kecuali Anda memiliki kebutuhan khusus untuk melewati validasi kepercayaan.
- Klik Buat koneksi.
- Pada halaman dasar Katalog , masukkan nama untuk katalog asing. 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.
- (Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
- Klik Buat katalog.
- Pada halaman Access, 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 Istimewa pada katalog. Klik Izinkan:
- Tentukan Pihak yang akan memiliki akses ke objek-objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
- Pilih preset Privilege untuk diberikan kepada setiap prinsipal. Semua pengguna akun diberikan
BROWSEsecara default.- Pilih Pembaca Data dari menu tarik-turun untuk memberikan hak istimewa
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 tarik-turun untuk memberikan hak istimewa
- Klik Berikan.
- Klik Berikutnya.
- Pada halaman Metadata, tentukan pasangan kunci-nilai tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek Katalog Unity yang dapat diamankan.
- (Opsional) Tambahkan komentar.
- Klik Simpan.
SQL
Jalankan perintah berikut ini di buku catatan atau editor kueri Databricks SQL.
CREATE CONNECTION <connection-name> TYPE mysql
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 mysql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Jika Anda harus menggunakan string teks biasa dalam perintah SQL notebook, hindari memotong string dengan melarikan diri dari karakter khusus seperti $ dengan \. Misalnya: \$.
Untuk informasi tentang menyiapkan rahasia, lihat Manajemen rahasia.
Membuat katalog asing
Catatan
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 SQL CREATE FOREIGN CATALOG di buku catatan Azure Databricks atau editor kueri Databricks SQL. Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat katalog. Lihat perintah POST /api/2.1/unity-catalog/catalogs dan Unity Catalog.
Izin yang diperlukan:CREATE CATALOG izin pada metastore dan kepemilikan koneksi atau CREATE FOREIGN CATALOG hak istimewa pada koneksi.
Penjelajah Katalog
Di ruang kerja Azure Databricks Anda, klik
Katalog untuk membuka Catalog Explorer.
Di bagian atas panel Katalog , klik ikon Tambahkan atau plus
dan pilih Tambahkan 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.
Anda juga dapat menentukan opsi katalog berikut:
-
TINYINT(1) is bit: Opsi katalog opsional yang menentukan bagaimana kolom MySQLtinyint(1)dipetakan ke jenis data Spark. Lihat Pemetaan jenis data untuk informasi selengkapnya.
-
SQL
Jalankan perintah SQL berikut ini di notebook atau editor Databricks SQL. Item dalam tanda kurung bersifat opsional. Ganti nilai tempat penampung:
-
<catalog-name>: Nama untuk katalog di Azure Databricks. -
<connection-name>: Objek koneksi yang menentukan sumber data, jalur, dan kredensial akses. -
tinyInt1isBit: Opsi katalog opsional yang menentukan bagaimana kolom MySQLtinyint(1)dipetakan ke jenis data Spark. Lihat Pemetaan jenis data untuk informasi selengkapnya.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
[OPTIONS (tinyInt1isBit {'true'|'false'})];
Pushdown yang didukung
Tabel berikut mencantumkan operasi pushdown yang didukung untuk MySQL, bersama dengan komputasi yang diperlukan untuk masing-masing operasi.
| Pushdown | Komputasi yang didukung |
|---|---|
| Fungsi Tanggal, Waktu, dan Tanda Waktu hanya ekspresi filter parsial |
|
| Filter |
|
| Batas |
|
| Fungsi Matematika hanya ekspresi filter parsial |
|
| Fungsi lain (seperti Alias, Cast, SortOrder; parsial, ekspresi filter saja) |
|
| Proyeksi |
|
| Fungsi String hanya ekspresi filter parsial |
|
| Agregat |
|
| Operasi Aritmatika (seperti +, -, *, %, /; tidak didukung jika ANSI dinonaktifkan) |
|
| Operator Boolean (seperti =, <, <, =>, >=, =, <=>) |
|
| Pengurutan, ketika digunakan dengan batasan |
|
| Gabungan |
|
| Fungsi Windows |
|
Pemetaan jenis data
Saat Anda membaca dari MySQL ke Spark, jenis data dipetakan sebagai berikut:
| Jenis MySQL | Tipe Spark |
|---|---|
| bigint (tanpa tanda), desimal | TipeDesimal |
| int, bilangan bulat, mediumint, smallint | Tipe Integer |
| tinyint(1) | BooleanType/ByteType* |
| tinyint(>1) | ByteType |
| bigint (jika ditandatangani) | Tipe Panjang |
| float | FloatType |
| ganda | DoubleType |
| char, enum, set | JenisKarakter |
| varchar | Tipe Varchar (VarcharType) |
| "json", "longtext", "mediumtext", "text", "tinytext" | StringType |
| biner, blob, varbinary, varchar biner | BinaryType |
| bit (unit terkecil data dalam komputasi), boolean (tipe data dengan dua nilai: benar atau salah) | BooleanType |
| tanggal, tahun | Jenis Tanggal |
| datetime, time, timestamp** | TimestampType/TimestampNTZType |
* MySQL tinyint(1) signed/unsigned dipetakan ke Spark BooleanType jika opsi katalog tinyInt1isBit = true ditetapkan ke default. Jika opsi tinyInt1isBit = false katalog dipetakan ke ByteType.
** Saat Anda membaca dari MySQL, MySQL Timestamp dipetakan ke Spark TimestampType jika preferTimestampNTZ = false (default). MySQL Timestamp dipetakan ke TimestampNTZType jika preferTimestampNTZ = true.