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 Snowflake yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?
Untuk menyambungkan ke database Snowflake Anda menggunakan Federasi Lakehouse, Anda harus membuat yang berikut ini di metastore Azure Databricks Unity Catalog Anda (ruang kerja yang dibuat setelah 9 November 2023 sudah memiliki metastore Katalog Unity yang disediakan secara otomatis):
- Sebuah koneksi ke database Snowflake Anda.
- Katalog asing yang mencerminkan database Snowflake 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.
Halaman ini membahas cara menjalankan kueri federasi pada data Snowflake menggunakan integrasi OAuth bawaan Snowflake. Untuk metode autentikasi lainnya, lihat halaman berikut ini:
- OAuth dengan ID Microsoft Entra
- OAuth dengan Okta
- Token akses OAuth
- Kunci privat PEM
- Autentikasi dasar (nama pengguna/kata sandi)
Anda dapat menjalankan kueri federasi di Snowflake menggunakan federasi kueri atau federasi katalog.
Dalam federasi kueri, JDBC mengarahkan kueri Katalog Unity ke basis data eksternal. Ini sangat ideal untuk pelaporan sesuai permintaan atau pekerjaan bukti konsep pada alur ETL Anda.
Di federasi katalog, kueri Katalog Unity dieksekusi langsung pada penyimpanan berkas. Pendekatan ini berguna untuk migrasi inkremental tanpa adaptasi kode atau sebagai model hibrid jangka panjang untuk organisasi yang harus mempertahankan beberapa data di Snowflake bersama data mereka yang terdaftar di Unity Catalog. Lihat Mengaktifkan integrasi katalog Snowflake.
Federasi kueri
Sebelum Anda memulai
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 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. 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 dijelaskan berikutnya.
Membuat integrasi keamanan
Di konsol Snowflake, jalankan CREATE SECURITY INTEGRATION. Ganti nilai berikut:
<integration-name>: Nama unik untuk integrasi OAuth Anda.<workspace-url>: URL ruang kerja Azure Databricks. Anda harus mengaturOAUTH_REDIRECT_URIkehttps://<workspace-url>/login/oauth/snowflake.html, di mana<workspace-url>adalah URL unik ruang kerja Azure Databricks tempat Anda akan membuat koneksi Snowflake.<duration-in-seconds>: Durasi untuk token penyegaran.Important
OAUTH_REFRESH_TOKEN_VALIDITYadalah bidang kustom yang diatur ke 90 hari secara default. Setelah token refresh kedaluwarsa, Anda harus mengautentikasi ulang koneksi. Atur kolom ke durasi waktu yang wajar.
Contohnya:
CREATE SECURITY INTEGRATION <integration-name>
TYPE = oauth
ENABLED = true
OAUTH_CLIENT = custom
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
OAUTH_REDIRECT_URI = 'https://<workspace-url>/login/oauth/snowflake.html'
OAUTH_ISSUE_REFRESH_TOKENS = TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = <duration-in-seconds>
OAUTH_ENFORCE_PKCE = TRUE;
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.
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 dari wizard Menyiapkan Koneksi, masukkan nama Koneksi yang ramah pengguna.
Pilih Tipe Koneksi dari Snowflake.
Untuk Jenis autentikasi, pilih
OAuthdari menu drop-down.(Opsional) Tambahkan komentar.
Klik Berikutnya.
Masukkan detail autentikasi dan koneksi berikut untuk gudang Snowflake Anda.
Host: Misalnya,
snowflake-demo.east-us-2.azure.snowflakecomputing.comPort: Misalnya,
443Pengguna: Misalnya,
snowflake-userID Klien: Di konsol Snowflake, jalankan
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security-integration-name>')untuk mengambil ID klien untuk integrasi keamanan.Rahasia klien: Di konsol Snowflake, jalankan
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security-integration-name>')untuk mengambil rahasia klien untuk integrasi keamanan.Cakupan OAuth:
refresh_token session:role:<role-name>. Tentukan peran Snowflake yang akan digunakan di<role-name>.Masuk dengan Snowflake: Klik dan masuk ke Snowflake menggunakan info masuk OAuth Anda.
Setelah berhasil masuk, Anda diarahkan kembali ke wizard Menyiapkan koneksi.
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 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 tag. Untuk informasi selengkapnya, lihat Menerapkan tag pada objek terproteksi di Katalog Unity.
(Opsional) Tambahkan komentar.
Kliklah Simpan.
Pengidentifikasi database peka pada penggunaan huruf besar dan kecil
Bidang database dari katalog asing dipetakan ke pengidentifikasi database Snowflake. Jika pengidentifikasi basis data Snowflake tidak sensitif terhadap huruf besar atau kecil, penggunaan huruf dalam katalog asing <database-name> akan tetap dipertahankan. Namun, jika identitas database Snowflake peka terhadap huruf besar atau kecil, Anda harus membungkus katalog eksternal <database-name> dalam tanda kutip ganda untuk mempertahankan bentuk tersebut.
Contohnya:
databasedikonversi keDATABASE"database"dikonversi kedatabase"database"""dikonversi kedatabase"Untuk lolos dari kutipan ganda, gunakan tanda kutip ganda lainnya.
"database""menghasilkan kesalahan karena tanda kutip ganda tidak di-escape dengan benar.
Untuk informasi selengkapnya, lihat persyaratan Pengidentifikasi dalam dokumentasi Snowflake.
Fitur pushdown yang didukung
Fitur pushdown berikut didukung:
- Filters
- Projections
- Limit
- Joins
- Agregat (Rata-rata, Korelasi, Kovarian Populasi, Kovarian Sampel, Hitung, Maksimum, Minimum, Deviasi Standar Populasi, Deviasi Standar Sampel, Jumlah, Varians Populasi, Varians Sampel)
- Fungsi (Fungsi string, fungsi Matematika, fungsi Data, Waktu dan Tanda Waktu, dan fungsi lain-lain, seperti Alias, Cast, SortOrder)
- Fungsi Windows (DenseRank, Rank, RowNumber)
- Sorting
Pemetaan jenis data
Saat Anda membaca data dari Snowflake ke Spark, jenis data dipetakan sebagai berikut:
| Jenis Serpihan Salju | Jenis Spark |
|---|---|
| desimal, angka, numerik | DecimalType |
| bigint, byteint, int, integer, smallint, tinyint | IntegerType |
| float (bilangan titik mengambang), float4 (bilangan vektor 4 titik mengambang), float8 (bilangan vektor 8 titik mengambang) | FloatType |
| double, presisi ganda, nyata | DoubleType |
| char, karakter, untai, teks, waktu, varchar | StringType |
| biner | BinaryType |
| boolean | BooleanType |
| date | DateType |
| tanggal waktu, timestamp, timestamp_ltz, timestamp_ntz, timestamp_tz | TimestampType |
Batasan federasi kueri
- Titik akhir Snowflake OAuth harus dapat diakses dari IP sarana kontrol Azure Databricks. Lihat Alamat IP Keluar dari Control Plane Azure Databricks. Snowflake mendukung konfigurasi kebijakan jaringan pada tingkat integrasi keamanan, yang memungkinkan kebijakan jaringan terpisah yang memungkinkan konektivitas langsung dari sarana kontrol Azure Databricks ke titik akhir OAuth untuk otorisasi.
- Gunakan Proksi, Host Proksi, Port Proksi, dan opsi konfigurasi peran Snowflake tidak didukung. Tentukan peran Snowflake sebagai bagian dari cakupan OAuth.
Sumber daya tambahan
Lihat artikel berikut dalam dokumentasi Snowflake: