Mengonfigurasi PolyBase untuk mengakses data eksternal di SQL Server

Berlaku untuk:SQL Server

Artikel ini menjelaskan cara menggunakan PolyBase pada instans SQL Server untuk mengkueri data eksternal di instans SQL Server lain.

Prasyarat

Jika Anda belum menginstal PolyBase, lihat penginstalan PolyBase. Artikel penginstalan menjelaskan prasyarat. Setelah diinstal, pastikan juga untuk mengaktifkan PolyBase.

Sumber data eksternal SQL Server menggunakan Autentikasi SQL.

Sebelum membuat kredensial cakupan database, Kunci Master harus dibuat.

Mengonfigurasi sumber data eksternal SQL Server

Untuk mengkueri data dari sumber data SQL Server, Anda harus membuat tabel eksternal untuk mereferensikan data eksternal. Bagian ini menyediakan kode sampel untuk membuat tabel eksternal ini.

Untuk performa kueri yang optimal, buat statistik pada kolom tabel eksternal, terutama untuk yang digunakan untuk gabungan, filter, dan agregat.

Perintah Transact-SQL berikut digunakan di bagian ini:

  1. Buat kredensial lingkup database untuk mengakses sumber SQL Server. Contoh berikut membuat kredensial ke sumber data eksternal dengan IDENTITY = 'username' dan SECRET = 'password'.

    CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials
    WITH IDENTITY = 'username', SECRET = 'password';
    

    Penting

    Konektor ODBC SQL untuk PolyBase hanya mendukung autentikasi dasar, bukan autentikasi Kerberos.

  2. Buat sumber data eksternal dengan CREATE EXTERNAL DATA SOURCE. Lihat contoh berikut:

    • Membuat sumber data eksternal bernama SQLServerInstance.
    • Mengidentifikasi sumber data eksternal (LOCATION = '<vendor>://<server>[:<port>]'). Dalam contoh ini menunjuk ke instans default SQL Server.
    • Mengidentifikasi apakah komputasi harus didorong ke sumber (PUSHDOWN). PUSHDOWN adalah ON secara default.

    Terakhir, contoh menggunakan kredensial yang dibuat sebelumnya.

    CREATE EXTERNAL DATA SOURCE SQLServerInstance
        WITH ( LOCATION = 'sqlserver://SqlServer',
        PUSHDOWN = ON,
        CREDENTIAL = SQLServerCredentials);
    
  3. Buat tabel eksternal dengan CREATE EXTERNAL TABLE Pernyataan memerlukan kolater dan lokasi memerlukan notasi tiga bagian (<database>.<schema>.<table>).

    CREATE EXTERNAL TABLE DatabasesExternal (
        name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS)
      WITH (LOCATION = 'master.sys.databases',
      DATA_SOURCE = SQLServerInstance);
    
  4. Secara opsional, buat statistik pada tabel eksternal.

Untuk performa kueri yang optimal, buat statistik pada kolom tabel eksternal, terutama yang digunakan untuk menggabungkan filter dan agregat.

  CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
  WITH FULLSCAN;

Penting

Setelah Anda membuat sumber data eksternal, Anda bisa menggunakan perintah CREATE EXTERNAL TABLE untuk membuat tabel yang dapat dikueri di atas sumber tersebut.

Jenis konektor SQL Server yang kompatibel

Anda juga dapat menggunakan konektor SQL Server (sqlserver://) untuk mengakses Azure SQL Database. Untuk menyelesaikan tugas ini, ikuti langkah-langkah yang sama yang tercantum sebelumnya. Pastikan kredensial cakupan database, alamat server, port, dan string lokasi berkorelasi dengan sumber data Azure SQL Database yang ingin Anda sambungkan.

Langkah berikutnya

Untuk tutorial selengkapnya tentang membuat sumber data eksternal dan tabel eksternal ke berbagai sumber data, lihat referensi PolyBase Transact-SQL.

Untuk mempelajari selengkapnya tentang PolyBase, lihat Gambaran Umum SQL Server PolyBase.