Menjalankan kueri federasi di Oracle
Penting
Fitur ini ada di Pratinjau Umum.
Artikel ini menjelaskan cara menyiapkan Federasi Lakehouse untuk menjalankan kueri federasi pada data Oracle yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?.
Untuk menyambungkan ke database Oracle Anda menggunakan Federasi Lakehouse, Anda harus membuat yang berikut ini di metastore Azure Databricks Unity Catalog Anda:
- Koneksi ke database Oracle Anda.
- Katalog asing yang mencerminkan database Oracle 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
Sebelum memulai, pastikan Anda memenuhi persyaratan di bagian ini.
Persyaratan Databricks
Persyaratan ruang kerja:
- Ruang kerja diaktifkan untuk Katalog Unity.
Persyaratan komputasi:
- Konektivitas jaringan dari sumber daya komputasi Anda ke sistem database target. Lihat rekomendasi jaringan untukFederasi Lakehouse .
- Komputasi Azure Databricks harus menggunakan Databricks Runtime 16.1 atau lebih tinggi dan mode akses berbagi atau mode akses pengguna tunggal.
- Gudang SQL harus pro atau tanpa server dan harus menggunakan 2024.50 atau lebih tinggi.
Izin diperlukan:
- Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan privilege
CREATE CONNECTION
pada metastore Katalog Unity yang terhubung ke ruang kerja. - Untuk membuat katalog asing, 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 berikut.
Persyaratan Oracle
- Enkripsi jaringan bawaan sisi server diaktifkan dengan tingkat minimal
ACCEPTED
. Lihat Mengonfigurasi Enkripsi Data Jaringan dalam dokumentasi Oracle.
Membuat koneksi Azure Databricks
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.
Nota
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 metastore atau pengguna dengan hak istimewa CREATE CONNECTION
.
Penjelajah Katalog
- Di ruang kerja Azure Databricks, klik ikon Katalog
Katalog.
- Di panel kiri, perluas menu Data Eksternal
dan pilih Koneksi . - Klik Buat koneksi.
- Pada halaman Dasar-dasar Koneksi dari wizard Menyiapkan Koneksi, masukkan nama Koneksi yang ramah pengguna.
- Pilih jenis koneksi dari Oracle.
- (Opsional) Tambahkan komentar.
- Klik Berikutnya.
- Pada halaman Autentikasi
, masukkan yang berikut ini untuk instans Oracle: -
host: Misalnya,
oracle-demo.123456.rds.amazonaws.com
-
Port: Misalnya,
1521
-
Pengguna : Misalnya,
oracle_user
- Kata Sandi
: Misalnya,
-
host: Misalnya,
- Klik Buat koneksi.
- Pada halaman dasar-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 Pemberian:
- Tentukan Pengguna Utama yang akan memiliki akses ke 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
BROWSE
secara default.- Pilih Pembaca Data dari menu drop-down untuk memberikan hak istimewa
read
pada 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 hak istimewa
- Klik Berikan.
- Klik Berikutnya.
- Pada halaman Metadata, tentukan pasangan kunci-nilai tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan Katalog Unity.
- (Opsional) Tambahkan komentar.
- Klik Simpan.
SQL
Jalankan perintah berikut ini di buku catatan atau editor kueri Databricks SQL:
CREATE CONNECTION <connection-name> TYPE oracle
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Databricks merekomendasikan agar Anda menggunakan Azure Databricks rahasia alih-alih string teks biasa untuk nilai sensitif seperti kredensial. Misalnya:
CREATE CONNECTION <connection-name> TYPE oracle
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
Nota
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 Databricks REST API atau Databricks CLI untuk membuat katalog. Lihat perintah POST /api/2.1/unity-catalog/catalogs dan perintah Unity Catalog.
Izin yang diperlukan: izinCREATE CATALOG
pada metastore dan kepemilikan koneksi atau hak istimewa CREATE FOREIGN CATALOG
pada koneksi.
Penjelajah Katalog
Di ruang kerja Azure Databricks, klik ikon Katalog
Katalog untuk membuka Catalog Explorer. Di bagian atas panel Katalog
, klik ikon Tambahkan atau ikon tambah 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.
SQL
Jalankan perintah SQL berikut ini di buku catatan atau editor kueri SQL. Item dalam tanda kurung bersifat opsional. Ganti nilai placeholder:
-
<catalog-name>
: Nama untuk katalog di Azure Databricks. -
<connection-name>
: Objek koneksi yang menentukan sumber data, jalur, dan kredensial akses. -
<service-name>
: Nama layanan yang ingin Anda cerminkan sebagai katalog di Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (service_name '<service-name>');
Pushdown yang didukung
Fitur pushdown berikut didukung:
- Filter
- Proyeksi
- Batas
- Bahan Agregat
- Offset
- Pemeran
- Berisi, Mulai dengan, Berakhir dengan
Pemetaan jenis data
Saat Anda membaca dari Oracle ke Spark, jenis data dipetakan sebagai berikut:
Jenis Oracle | Jenis Spark |
---|---|
TANDA WAKTU DENGAN TIMEZONE, TANDA WAKTU DENGAN TIMEZONE LOKAL | Tipe Penanda Waktu |
TANGGAL, TANDA WAKTU | TimestampType/TimestampNTZType* |
ANGKA, bilangan desimal/koma mengambang | DecimalType |
FLOAT BINER | FloatType |
BINER DOUBLE | DoubleType |
CHAR, NCHAR, VARCHAR2, NVARCHAR2 | StringType |
- DATE dan TIMESTAMP dipetakan ke Spark TimestampType jika
spark.sql.timestampType = TIMESTAMP_LTZ
(default). Mereka akan dipetakan ke TimestampNTZType jikaspark.sql.timestampType = TIMESTAMP_NTZ
.