Menjalankan kueri federasi di Teradata

Halaman ini menjelaskan cara menyiapkan Federasi Lakehouse untuk menjalankan kueri federasi pada data Teradata yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?

Untuk menghubungkan ke database Teradata Anda menggunakan Lakehouse Federation, Anda harus membuat item berikut di metastore Unity Catalog Azure Databricks Anda (ruang kerja yang dibuat setelah 9 November 2023 sudah memiliki metastore Unity Catalog yang disediakan secara otomatis):

  • Koneksi ke database Teradata Anda.
  • Katalog foreign yang mencerminkan database Teradata Anda di Katalog Unity sehingga Anda dapat menggunakan sintaks kueri Dan alat tata kelola data Katalog Unity 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. 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 untuk jaringan Federasi Lakehouse.
  • Komputasi Azure Databricks harus menggunakan Databricks Runtime 16.1 atau lebih tinggi dan Standard atau Dedicated akses mode.
  • 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 hak akses CREATE CONNECTION pada metastore Katalog Unity yang terhubung ke ruang kerja. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memiliki CREATE CONNECTION hak istimewa secara default.
  • Untuk membuat katalog asing, Anda harus memiliki izin CREATE CATALOG di metastore dan menjadi pemilik koneksi atau memiliki hak istimewa CREATE FOREIGN CATALOG pada koneksi. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memiliki CREATE CATALOG hak istimewa secara default.

Persyaratan izin tambahan ditentukan di setiap bagian berbasis tugas yang mengikuti.

Autentikasi Teradata

Koneksi teradata di Azure Databricks Federasi Lakehouse hanya mendukung mekanisme autentikasi TD2 (autentikasi Teradata default). TD2 mengautentikasi pengguna dengan nama pengguna dan kata sandi yang dikelola oleh database Teradata.

Mekanisme autentikasi Teradata lainnya, seperti LDAP, Kerberos, dan TDNEGO, tidak didukung.

Teradata TLS

  • Anda dapat memilih antara require, prefer, verify-ca, verify-full, disable untuk mode SSL. prefer Mode bergantung pada server untuk mengaktifkan enkripsi (nomor port dapat dikonfigurasi). Jika Anda menggunakan TLS, opsi apa pun akan cukup (port akan menjadi 443) (verify-ca dan verify-full mengeraskan keamanan koneksi, tetapi memerlukan lebih banyak penyiapan di sisi server). Databricks merekomendasikan untuk menerima SSL. Jika server Anda tidak menerima SSL, gunakan mode disable; gunakan mode require untuk mencoba SSL saat tidak didukung dapat menambah beban kinerja. Untuk informasi selengkapnya, lihat Cara Mengamankan Koneksi menggunakan TLS dalam dokumentasi Teradata.

Buat koneksi Azure Databricks

Koneksi menentukan jalur dan kredensial untuk mengakses sistem database eksternal. Untuk membuat koneksi, Anda bisa menggunakan Penjelajah Katalog 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 POST /api/2.1/unity-catalog/connections dan perintah Unity Catalog.

Izin diperlukan: Admin Metastore atau Pengguna dengan privilege CREATE CONNECTION.

Eksplorer Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon Data.Catalog.
  2. Di bagian atas panel Katalog , klik ikon Tambahkan atau plusTambahkan ikon dan pilih Buat koneksi dari menu.
  3. Pada halaman Dasar-dasar Koneksi dari wizard Menyiapkan Koneksi, masukkan nama Koneksi yang ramah pengguna.
  4. Pilih jenis Koneksi Teradata .
  5. (Opsional) Tambahkan komentar.
  6. Klik Berikutnya.
  7. Pada halaman Autentikasi , masukkan properti koneksi berikut untuk instans Teradata:
    • host: Misalnya, teradata-demo.teradata.com
    • Port: Misalnya, 1025
    • Pengguna : Misalnya, teradata_user
    • Kata Sandi : Misalnya,
    • Mode Ssl: require, prefer, verify-ca, verify-full, disable
  8. Klik Buat koneksi.
  9. Pada halaman dasar-dasar Catalog, masukkan nama untuk katalog asing. Katalog asing mencerminkan database dalam sistem data eksternal sehingga Anda bisa mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Katalog Unity.
  10. (Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
  11. Klik Buat katalog.
  12. 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.
  13. 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.
  14. Berikan Hak Istimewa pada katalog. Klik Izinkan:
    1. Tentukan Pemangku Kepentingan yang akan memiliki akses ke objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
    2. Pilih prasetel Hak Istimewa yang akan diberikan kepada setiap prinsipal. Semua pengguna akun diberikan BROWSE secara default.
      • Pilih Pembaca Data dari menu drop-down untuk memberikan hak akses 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.
    3. Klik pada Berikan.
  15. Klik Berikutnya.
  16. Pada halaman Metadata, tentukan pasangan kunci-nilai tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan Katalog Unity.
  17. (Opsional) Tambahkan komentar.
  18. Kliklah Simpan.

SQL

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

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

Databricks merekomendasikan agar Anda menggunakan Azure Databricks secrets alih-alih string teks biasa untuk nilai sensitif seperti kredensial. Contohnya:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  ssl_mode '<ssl_mode>' -- optional
)

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

Note

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 bisa mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Katalog Unity. 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 Unity Catalog.

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

Eksplorer Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Tampilan data.Catalog untuk membuka Catalog Explorer.

  2. Di bagian atas panel Katalog, klik ikon Tambah atau ikon plusTambah dan pilih Tambahkan katalog dari menu.

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

  3. 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 tempat penampung:

  • <catalog-name>: Nama untuk katalog di Azure Databricks.
  • <connection-name>: Objek koneksi yang menentukan sumber data, jalur, dan kredensial akses.
  • <database-name>: Nama database yang ingin Anda cerminkan sebagai katalog di Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Kepatuhan ANSI

Konektor Teradata menggunakan TMODE=ANSI secara default untuk semua sesi yang dimulai di Databricks Runtime 17.1. Pengaturan ini menyelaraskan perbandingan string dan perilaku operasi numerik dengan dialek ANSI SQL yang Azure Databricks gunakan secara default. Dalam modus ANSI, perbandingan string peka terhadap huruf besar/kecil, sedangkan dalam modus warisan TERA Teradata mereka tidak peka terhadap huruf besar/kecil (misalnya, 'ABC' = 'abc' akan bernilai benar). Perilaku warisan mungkin menghasilkan hasil yang tidak terduga saat Anda mengkueri Teradata dari komputasi Azure Databricks yang didukung ANSI.

Penting

Jika Anda beralih ke Databricks Runtime 17.1 atau yang lebih baru, Databricks SQL, atau komputasi Tanpa Server, mode sesi default berubah dari TERA ke ANSI. Ini mungkin memengaruhi hasil kueri, terutama pada view Teradata yang mengandalkan pencocokan string yang tidak peka terhadap perbedaan huruf besar dan kecil. Misalnya, tampilan dengan filter seperti WHERE status = 'Active' mungkin mengembalikan hasil yang berbeda jika data yang mendasar berisi 'ACTIVE' atau 'active' karena ANSI mode memperlakukannya sebagai nilai yang berbeda.

Fitur pushdown yang didukung

Tabel berikut mencantumkan operasi pushdown yang didukung untuk Teradata, bersama dengan komputasi yang diperlukan untuk masing-masing operasi.

Pushdown Komputasi yang didukung
Aggregates Didukung Semua komputasi
Cast Didukung Semua komputasi
Berisi, Dimulai dengan, Berakhir dengan, Seperti Didukung Semua komputasi
Filters Didukung Semua komputasi
Limit Didukung Semua komputasi
Projections Didukung Semua komputasi
Joins Didukung Databricks Runtime 17.2 ke atas dan gudang SQL 2025.30 ke atas

Pemetaan jenis data

Ketika Anda membaca data dari Teradata ke Spark, jenis-jenis datanya berhubungan sebagai berikut:

Jenis teradata Jenis Spark
Byte, Blob (kumpulan data biner) BinaryType
Byteint, Smallint, Bilangan bulat IntegerType
BigInt LongType
Float, Double, Presisi Ganda DoubleType
Angka(n, m) DecimalType
Angka(*, m), Angka(*), Angka Unsupported
Varchar(N) StringType
Waktu, Tanda Waktu TimestampType

Sumber daya tambahan