Baca dalam bahasa Inggris

Bagikan melalui


Menjalankan kueri federasi di Microsoft Azure Synapse

Artikel ini menjelaskan cara set federasi Lakehouse untuk menjalankan kueri federasi pada data Azure Synapse (Gudang Data SQL) yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?.

Untuk menyambungkan ke database Azure Synapse (Gudang Data SQL) menggunakan Federasi Lakehouse, Anda harus membuat yang berikut ini di metastore Catalog Azure Databricks Unity Anda:

  • Koneksi ke database Azure Synapse (Gudang Data SQL) Anda.
  • catalog asing yang mencerminkan database Azure Synapse (SQL Data Warehouse) Anda di Unity Catalog, sehingga Anda dapat menggunakan sintaks kueri Unity Catalog dan alat pengelolaan data untuk mengatur akses pengguna Azure Databricks ke database.

Sebelum Anda mulai

Persyaratan ruang kerja:

  • Workspace 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 menjalankan mode akses bersama atau mode akses 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 istimewa CREATE 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. Lihat perintah POST /api/2.1/unity-catalog/connections dan Unity Catalog.

Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION hak istimewa.

Catalog Explorer

  1. Di ruang kerja Azure Databricks Anda, klik ikon CatalogCatalog.

  2. Di bagian atas panel Catalog, klik ikon Tambahkan atau plusikon Tambahkan dan selectTambahkan koneksi dari menu.

    Atau, dari halaman akses cepat, klik tombol data eksternal >, buka tab Connections, dan klik Buat koneksi.

  3. Pada halaman dasar-dasar Koneksi wizard koneksi up, masukkan nama Koneksi yang mudah digunakan.

  4. Select jenis koneksi SQLDW.

  5. (Opsional) Tambahkan komentar.

  6. Klik Berikutnya.

  7. Pada halaman Autentikasi , masukkan properti koneksi berikut untuk instans Azure Synapse Anda:

    • Host: Misalnya, sqldws-demo.database.windows.net.
    • Port: Misalnya, 1433
    • Pengguna
    • Password
    • Sertifikat Kepercayaan server: Ini tidak dipilih secara default. Saat dipilih, lapisan transportasi menggunakan SSL untuk mengenkripsi saluran dan melewati rantai sertifikat untuk memvalidasi kepercayaan. Biarkan set ini dalam pengaturan default kecuali Anda memiliki kebutuhan khusus untuk melewati pengecekan validasi kepercayaan.
  8. Klik Buat koneksi.

  9. Pada halaman dasar-dasar , masukkan nama untuk asing . catalog asing mencerminkan database dalam sistem data eksternal sehingga Anda dapat melakukan kueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog.

  10. (Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.

  11. Klik Buat catalog.

  12. Pada halaman Akses, select ruang kerja tempat pengguna dapat mengakses catalog yang Anda buat. Anda dapat selectSemua ruang kerja memiliki akses, atau klik Tetapkan ke ruang kerja, select ruang kerja, lalu klik Tetapkan.

  13. 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.

  14. Grant Hak Istimewa pada catalog. Klik Grant:

    1. Tentukan Prinsipal yang akan memiliki akses ke objek di catalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
    2. 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 grantread pada objek di catalog.
      • Select Editor Data dari menu drop-down ke hak istimewa grantread dan modify pada objek di catalog.
      • Secara manual select hak istimewa untuk grant.
    3. Klik Grant.
  15. Klik Berikutnya.

  16. Pada halaman Metadata, tentukan pasangan kunci-nilai untuk tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan di Unity Catalog.

  17. (Opsional) Tambahkan komentar.

  18. Klik Simpan.

SQL

Jalankan perintah berikut ini di buku catatan atau editor kueri Databricks SQL.

CREATE CONNECTION <connection-name> TYPE sqldw
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Kami menyarankan agar Anda menggunakan azure Databricks rahasia alih-alih string teks biasa untuk values sensitif seperti credentials. Contohnya:

CREATE CONNECTION <connection-name> TYPE sqldw
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.

Membuat elemen catalog yang asing

Catatan

Jika Anda menggunakan UI untuk membuat koneksi ke sumber data, pembuatan elemen catalog asing disertakan dan Anda dapat melewati langkah ini.

catalog asing mencerminkan database 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 catalogeksternal, Anda menggunakan koneksi ke sumber data yang telah ditentukan.

Untuk membuat kunci asing catalog, Anda bisa menggunakan Catalog Explorer atau perintah SQL CREATE FOREIGN CATALOG di buku catatan Azure Databricks atau editor kueri SQL.

Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat catalog. Lihat perintah POST /api/2.1/unity-catalog/catalogs dan Unity Catalog.

Izin diperlukan:CREATE CATALOG izin pada metastore dan kepemilikan koneksi atau CREATE FOREIGN CATALOG hak istimewa pada koneksi.

Catalog Explorer

  1. Di ruang kerja Azure Databricks Anda, klik ikon CatalogCatalog untuk membuka Catalog Explorer.

  2. Di bagian atas panel Catalog, klik ikon Tambahkan atau plusikon Tambahkan dan selectTambahkan catalog dari menu.

    Atau, dari halaman akses cepat , klik tombol , lalu klik tombol Buat .

  3. Ikuti instruksi untuk membuat catalogs asing di Buat catalogs.

SQL

Jalankan perintah SQL berikut ini di buku catatan atau editor kueri SQL. Item dalam tanda kurung bersifat opsional. Ganti tempat penampung 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.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Pushdown yang didukung

Pushdown berikut didukung:

  • Filter
  • Proyeksi
  • Limit
  • Agregat (Rata-rata, Hitungan, Maks, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
  • Fungsi (Aritmatika dan fungsi lain-lain, seperti Alias, Cast, SortOrder)
  • Pengurutan

Pushdown berikut ini tidak didukung:

  • Gabungan
  • Fungsi Windows

Pemetaan jenis data

Saat Anda membaca dari Synapse / SQL Data Warehouse ke Spark, peta jenis data sebagai berikut:

Jenis Synapse Jenis Spark
desimal, uang, numerik, smallmoney DecimalType
smallint ShortType
tinyint ByteType
int IntegerType
bigint LongType
real FloatType
float DoubleType
char, nchar, ntext, nvarchar, text, uniqueidentifier, varchar, xml StringType
biner, geografi, geometri, gambar, tanda waktu, udt, varbinary BinaryType
bit BooleanType
date DateType
datetime, datetime, smalldatetime, time TimestampType/TimestampNTZType*

*Ketika Anda membaca dari Synapse / SQL Data Warehouse (SQLDW), SQLDW datetimes dipetakan ke Spark TimestampType jika preferTimestampNTZ = false (default). SQLDW datetimes dipetakan ke TimestampNTZType jika preferTimestampNTZ = true.