Halaman ini menunjukkan cara mengonfigurasi dan mengelola sumber data eksternal untuk digunakan dengan PolyBase dan instance Cloud SQL untuk SQL Server Anda.
Mengelola akses ke objek eksternal
Cloud SQL hanya mendukung operasi untuk mengaktifkan dan menonaktifkan PolyBase. Pengguna perlu mengelola entitas SQL Server secara manual, menggunakan pernyataan T-SQL.
Sebelum mengelola entity server SQL Anda secara manual, tinjau resource Microsoft berikut:
- Membuat MASTER KEY menggunakan T-SQL
- Mengonfigurasi PolyBase untuk mengakses data eksternal di Oracle
- Mengonfigurasi PolyBase untuk mengakses data eksternal di penyimpanan objek yang kompatibel dengan S3
Membuat sumber data eksternal
Langkah-langkah berikut menunjukkan cara membuat sumber data eksternal ke instance Cloud SQL untuk SQL Server.
SQL Server menentukan sumber data eksternal sebagai resource dengan informasi koneksi seperti nama server, nama database, dan string koneksi.
SQL Server mendefinisikan tabel eksternal sebagai objek metadata dalam SQL Server yang mengarah ke data di sumber data eksternal. File ini menentukan skema data eksternal sebagaimana akan ditampilkan dalam SQL Server.
Prosedur ini mengharuskan pembuatan kredensial cakupan database (DSC) untuk sumber data eksternal Anda.
DSC menyimpan informasi autentikasi yang diperlukan untuk terhubung ke sumber data eksternal. Kredensial ini dienkripsi oleh kunci master database (DMK).
DMK berfungsi sebagai root hierarki enkripsi dalam database, melindungi secret dalam kredensial cakupan database. Kunci simetris ini dienkripsi oleh kunci master layanan (SMK) dan sandi yang diberikan pengguna. DMK tidak dibuat secara otomatis dan memerlukan pengelolaan eksplisit oleh pengguna menggunakan T-SQL.
SMK berfungsi sebagai root hierarki enkripsi untuk instance SQL Server tertentu. Kunci simetris ini dibuat secara otomatis oleh SQL Server itu sendiri, saat pertama kali dimulai, dan digunakan untuk melindungi objek keamanan lainnya seperti DMK dan sandi login.
Oracle
Selesaikan langkah-langkah berikut di SQL Server.
Buat kredensial cakupan database (DSC) untuk Oracle.
Jika belum ada, beralihlah ke database pengguna untuk membuat kunci utama:
USE USER_DB; CREATE MASTER KEY ENCRYPTION BY PASSWORD='MK_PASSWORD';Ganti kode berikut:
- USER_DB: database pengguna yang ingin Anda gunakan untuk membuat kunci utama.
Contoh,
polybasedb. - MK_PASSWORD: sandi untuk kunci utama yang ingin Anda gunakan. Pastikan untuk menyimpan sandi untuk kunci utama untuk digunakan nanti.
- USER_DB: database pengguna yang ingin Anda gunakan untuk membuat kunci utama.
Contoh,
Buat kredensial cakupan database untuk sumber data Oracle.
CREATE DATABASE SCOPED CREDENTIAL DB_CREDENTIAL_NAME WITH IDENTITY = 'EXTERNAL_DATABASE_USERNAME', SECRET = 'EXTERNAL_DATABASE_PASSWORD';Ganti kode berikut:
- DB_CREDENTIAL_NAME: nama kredensial yang ingin Anda gunakan untuk database eksternal.
- EXTERNAL_DATABASE_USERNAME: nama pengguna yang ingin Anda gunakan untuk mengakses database eksternal.
- EXTERNAL_DATABASE_PASSWORD: sandi untuk database eksternal. Kredensial sumber data eksternal perlu diperbarui saat dirotasi dan harus dikelola secara manual oleh Anda.
Buat sumber data eksternal untuk Oracle.
CREATE EXTERNAL DATA SOURCE DATA_SOURCE_NAME WITH ( LOCATION = 'oracle://SERVER_IP:PORT', PUSHDOWN = PUSHDOWN, CREDENTIAL = DB_CREDENTIAL_NAME );Ganti kode berikut:
- DATA_SOURCE_NAME: nama yang ingin Anda gunakan untuk database eksternal.
- SERVER_IP: IP server atau nama host.
- PORT: port yang ingin Anda gunakan.
- PUSHDOWN: Wajib diisi. Pushdown
adalah kemampuan yang ditawarkan di SQL Server dan harus dikonfigurasi. Tetapkan nilai
ke
ONatauOFF, bergantung pada kasus penggunaan Anda. - DB_CREDENTIAL_NAME: kredensial yang baru saja Anda buat.
Buat tabel eksternal.
Tentukan skema dan struktur data eksternal:
- Buat definisi tabel eksternal. Skema harus cocok dengan tabel jarak jauh.
- Tentukan kolom dengan jenis data dan kolasi SQL Server yang sesuai.
- Lokasinya adalah jalur tabel jarak jauh.
CREATE EXTERNAL TABLE EXTERNAL_TABLE_NAME( COLUMN_NAME_1 DATA_TYPE_1 COLLATE COLLATION_1, COLUMN_NAME_2 DATA_TYPE_2 COLLATE COLLATION_2, ... ) WITH( LOCATION = 'REMOTE_DATABASE.REMOTE_USERNAME.REMOTE_TABLE_NAME', DATA_SOURCE = DB_DATA_SOURCE_NAME );Ganti kode berikut:
- EXTERNAL_TABLE_NAME: nama tabel eksternal yang ingin Anda buat.
- COLUMN_NAME_1: nama kolom pertama tabel.
- DATA_TYPE_1: jenis data kolom pertama.
- COLLATION_1: kolasi yang ingin Anda gunakan untuk kolom pertama.
- COLUMN_NAME_2: nama kolom kedua tabel.
- DATA_TYPE_2: jenis data kolom kedua.
- COLLATION_2: kolasi yang ingin Anda gunakan untuk kolom kedua.
- REMOTE_DATABASE: nama database jarak jauh.
- REMOTE_USERNAME: nama pengguna pengguna jarak jauh.
- REMOTE_TABLE_NAME: nama tabel jarak jauh.
- DB_DATA_SOURCE_NAME: nama sumber data eksternal.
Buat kueri tabel Oracle eksternal yang Anda buat.
SELECT TOP 10 * FROM EXTERNAL_TABLE_NAME;Ganti kode berikut:
- EXTERNAL_TABLE_NAME: nama tabel eksternal yang ingin Anda kueri.
Cloud Storage
Selesaikan langkah-langkah berikut di SQL Server.
Buat kredensial cakupan database untuk Cloud Storage.
Jika belum ada, beralihlah ke database pengguna untuk membuat kunci utama:
USE USER_DB; CREATE MASTER KEY ENCRYPTION BY PASSWORD='MK_PASSWORD';Ganti kode berikut:
- USER_DB: database pengguna yang ingin Anda gunakan untuk membuat kunci utama.
Contoh,
polybasedb. - MK_PASSWORD: sandi yang ingin Anda gunakan untuk kunci utama. Pastikan untuk menyimpan sandi untuk kunci utama untuk digunakan nanti.
- USER_DB: database pengguna yang ingin Anda gunakan untuk membuat kunci utama.
Contoh,
Cloud Storage memerlukan ID kunci akses dan ID kunci rahasia:
CREATE DATABASE SCOPED CREDENTIAL STORAGE_CREDENTIAL_NAME WITH IDENTITY = 'S3 Access Key', SECRET = 'ACCESS_KEY_ID:SECRET_KEY_ID';Ganti kode berikut:
- STORAGE_CREDENTIAL_NAME: nama kredensial Cloud Storage yang ingin Anda gunakan.
- ACCESS_KEY_ID: ID kunci akses.
- SECRET_KEY_ID: ID kunci rahasia.
Hanya autentikasi dasar yang didukung.
Buat sumber data eksternal.
CREATE EXTERNAL DATA SOURCE STORAGE_DATA_SOURCE_NAME WITH ( LOCATION = 's3://storage.googleapis.com/', CREDENTIAL = STORAGE_CREDENTIAL_NAME );Ganti kode berikut:
- STORAGE_DATA_SOURCE_NAME: nama sumber data eksternal di Cloud Storage.
- STORAGE_CREDENTIAL_NAME: nama kredensial untuk resource penyimpanan eksternal.
Buat tabel eksternal untuk Cloud Storage.
Tentukan format dan struktur data eksternal:
- Buat file eksternal. Skema harus cocok dengan struktur file.
- Tentukan kolom dengan jenis data dan kolasi SQL Server yang sesuai.
- Lokasi adalah jalur dalam sumber data.
CREATE EXTERNAL FILE FORMAT FILE_FORMAT_NAME WITH ( FORMAT_TYPE = FORMAT_TYPE, FORMAT_OPTIONS ( FIELD_TERMINATOR = 'FIELD_TERMINATOR', STRING_DELIMITER = 'DELIMITER', FIRST_ROW = FIRST_ROW ) ); CREATE EXTERNAL TABLE FILE_EXTERNAL_TABLE_NAME ( COLUMN_NAME_1 DATA_TYPE_1, COLUMN_NAME_2 DATA_TYPE_2, ... ) WITH ( LOCATION = 'PATH_TO_BUCKET/FILENAME', DATA_SOURCE = STORAGE_DATA_SOURCE_NAME, FILE_FORMAT = FILE_FORMAT_NAME );Ganti kode berikut:
- FILE_FORMAT_NAME: nama format file eksternal yang ingin Anda buat.
- FORMAT_TYPE: jenis format yang ingin Anda gunakan, seperti
DELIMITEDTEXT. Untuk mengetahui daftar nilai yang didukung, lihat Format file yang didukung. - FIELD_TERMINATOR: pembatas kolom yang ingin Anda gunakan.
- DELIMITER: pembatas string yang ingin Anda gunakan.
- FIRST_ROW: baris tempat Anda ingin mulai membaca.
- FILE_EXTERNAL_TABLE_NAME: nama tabel eksternal yang ingin Anda buat.
- COLUMN_NAME_1: nama kolom pertama tabel.
- DATA_TYPE_1: jenis data kolom pertama.
- COLUMN_NAME_2: nama kolom kedua tabel.
- DATA_TYPE_2: jenis data kolom kedua.
- PATH_TO_BUCKET: jalur lengkap ke bucket Cloud Storage.
- FILENAME: nama file yang ada dalam bucket Cloud Storage.
- STORAGE_DATA_SOURCE_NAME: nama sumber data eksternal di Cloud Storage.
- FILE_FORMAT_NAME: nama format file eksternal.
Buat kueri tabel Cloud Storage eksternal yang Anda buat.
SELECT * FROM FILE_EXTERNAL_TABLE_NAME;Ganti kode berikut:
- FILE_EXTERNAL_TABLE_NAME: nama tabel eksternal yang ingin Anda kueri.
Mengelola kunci utama database setelah operasi pemulihan database
Kredensial cakupan database yang digunakan untuk mengakses sumber data eksternal dienkripsi menggunakan kunci master database (DMK).
DMK dienkripsi dengan kunci master layanan (SMK) instance sumber dan sandi DMK yang diberikan pengguna. Pada instance sumber, SQL Server membuka DMK secara diam-diam menggunakan SMK.
Jika Anda memulihkan instance Cloud SQL untuk SQL Server, DMK tidak akan terbuka secara otomatis di instance baru karena perubahan pada SMK.
Oleh karena itu, Anda harus mendekripsi DMK terlebih dahulu menggunakan sandi pengguna yang dibuat selama pembuatannya dan mengenkripsinya kembali dengan SMK instance target.
Untuk mengetahui informasi selengkapnya, lihat referensi Microsoft berikut:
Log
Log PolyBase berikut tersedia di Logs Explorer:
Polybase_Dms_errors.logPolybase_Dms_movement.logPolybase_DWEngine_errors.logPolybase_DWEngine_movement.logPolybase_DWEngine_server.log
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Microsoft tentang pemecahan masalah PolyBase.