Menjalankan kueri federasi di MySQL
Penting
Fitur ini ada di Pratinjau Publik.
Artikel 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 menyambungkan ke database MySQL Anda menggunakan Federasi Lakehouse, Anda harus membuat yang berikut ini di metastore Azure Databricks Unity Catalog Anda:
- Koneksi ke database 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 diaktifkan untuk Katalog Unity.
Persyaratan komputasi:
- Konektivitas jaringan dari kluster Databricks Runtime atau gudang SQL Anda ke sistem database target. Lihat Rekomendasi jaringan untuk Federasi Lakehouse.
- Kluster 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.
Izin yang diperlukan:
- Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan
CREATE CONNECTION
hak istimewa pada metastore Katalog Unity yang dilampirkan ke ruang kerja. - Untuk membuat katalog asing, Anda harus memiliki
CREATE CATALOG
izin di metastore dan menjadi pemilik koneksi atau memilikiCREATE FOREIGN CATALOG
hak istimewa pada koneksi.
Persyaratan izin tambahan ditentukan di setiap bagian berbasis tugas yang mengikuti.
Buat sambungan
Koneksi menentukan jalur dan kredensial untuk mengakses sistem database eksternal. Untuk membuat koneksi, Anda bisa menggunakan Catalog Explorer atau CREATE CONNECTION
perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.
Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION
hak istimewa.
Penjelajah katalog
- Di ruang kerja Azure Databricks Anda, klik Katalog.
- Di panel kiri, perluas menu Data Eksternal dan pilih Koneksi.
- Klik Buat koneksi.
- Masukkan nama Koneksi yang mudah digunakan.
- Pilih Jenis koneksi MySQL.
- 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) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
- (Opsional) Tambahkan komentar.
- Klik Buat.
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 rahasia Azure Databricks 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
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 CREATE FOREIGN CATALOG
perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.
Izin 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.
- Klik tombol Buat Katalog .
- Pada dialog Buat katalog baru, masukkan nama untuk katalog dan pilih JenisAsing.
- Pilih Koneksi yang menyediakan akses ke database yang ingin Anda cerminkan sebagai katalog Katalog Unity.
- Klik Buat.
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.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;
Pushdown yang didukung
Pushdown berikut didukung pada semua komputasi:
- Filter
- Proyeksi
- Batas
- Fungsi: parsial, hanya untuk ekspresi filter. (Fungsi string, fungsi Matematika, fungsi Tanggal, Waktu dan Tanda Waktu, dan fungsi lain-lain, seperti Alias, Cast, SortOrder)
Pushdown berikut didukung pada Databricks Runtime 13.3 LTS ke atas, dan di gudang SQL:
- Agregat
- Operator Boolean
- Fungsi matematika berikut (tidak didukung jika ANSI dinonaktifkan): +, -, *, %, /
- Pengurutan, saat digunakan dengan batas
Pushdown berikut ini tidak didukung:
- Gabungan
- Fungsi Windows
Pemetaan jenis data
Saat Anda membaca dari MySQL ke Spark, jenis data memetakan sebagai berikut:
Jenis MySQL | Jenis Spark |
---|---|
bigint (jika tidak ditandatangani), desimal | DecimalType |
tinyint*, int, integer, mediumint, smallint | IntegerType |
bigint (jika ditandatangani) | LongType |
float | FloatType |
ganda | DoubleType |
char, enum, set | CharType |
varchar | VarcharType |
json, longtext, mediumtext, text, tinytext | StringType |
biner, blob, varbinary, varchar biner | BinaryType |
bit, boolean | BooleanType |
tanggal, tahun | DateType |
datetime, time, timestamp** | TimestampType/TimestampNTZType |
tinyint(1) signed
diperlakukan sebagai boolean dan dikonversi menjadi BooleanType
. Lihat Referensi
* Konektor/J Saat Anda membaca dari MySQL, MySQL Timestamp
dipetakan ke Spark TimestampType
jika preferTimestampNTZ = false
(default). MySQL Timestamp
dipetakan ke TimestampNTZType
jika preferTimestampNTZ = true
.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk