Fitur dan batasan PolyBase

Berlaku untuk: SQL Server 2016 (13.x) dan versi berikutnya Azure SQL DatabaseAzure Synapse Analytics

Artikel ini adalah ringkasan fitur PolyBase yang tersedia untuk produk dan layanan SQL Server.

Ringkasan fitur untuk rilis produk

Tabel ini mencantumkan fitur kunci untuk PolyBase serta produk yang mendukungnya.

Fitur SQL Server (Dimulai dengan 2016) Azure SQL Database Azure Synapse Analytics
Mengkueri data Hadoop dengan Transact-SQL Ya Tidak Tidak
Mengimpor data dari Hadoop Ya Tidak Tidak
Mengekspor data ke Hadoop Ya Tidak Tidak
Kueri, impor dari, ekspor ke Azure HDInsight Tidak Tidak Tidak
Mendorong turun komputasi kueri ke Hadoop Ya Tidak Tidak
Mengimpor data dari penyimpanan Azure Blob Ya Ya 1 Ya
Mengekspor data ke penyimpanan Azure Blob Ya Tidak Ya
Mengimpor data dari Azure Data Lake Store Tidak Tidak Ya
Mengekspor data ke Azure Data Lake Store Tidak Tidak Ya
Menjalankan kueri PolyBase dari alat Microsoft BI Ya Tidak Ya

1 Diperkenalkan di SQL Server 2017 (14.x), lihat Contoh akses massal ke data di Azure Blob Storage.

Pembatasan yang diketahui

PolyBase memiliki batasan berikut:

  • Sebelum SQL Server 2019 (15.x), ukuran baris maksimum yang mungkin, yang mencakup panjang lengkap kolom panjang variabel, tidak boleh melebihi 32 KB di SQL Server atau 1 MB di Azure Synapse Analytics. Di SQL Server 2019 (15.x) dan versi yang lebih baru, batasan ini diangkat. Batasnya tetap 1 MB untuk sumber data Hadoop, tetapi hanya dibatasi oleh batas SQL Server maksimum untuk sumber data lainnya.

  • Saat data diekspor ke format file ORC dari SQL Server atau Azure Synapse Analytics, kolom yang berisi banyak teks mungkin terbatas. Kolom tersebut dapat dibatasi hingga hanya 50 kolom karena pesan kesalahan kehabisan memori Java. Untuk mengatasi masalah ini, ekspor hanya sebagian kolom.

  • PolyBase tidak dapat terhubung ke instans Hadoop apa pun jika Knox diaktifkan.

  • Jika Anda menggunakan tabel Apache Hive dengan transactional = true, PolyBase tidak dapat mengakses data di direktori tabel Apache Hive.

  • Layanan PolyBase mengharuskan layanan SQL Server agar protokol jaringan TCP/IP diaktifkan agar berfungsi dengan benar. Selain itu, jika pengaturan konfigurasi Protokol TCP/IP DengarKan Semua diatur ke Tidak, konfigurasi TCP/IP berikut diperlukan:

    • Entri untuk port pendengar yang benar di Port Dinamis TCP atau Port TCP di bawah IPAll. Ini diperlukan karena cara layanan PolyBase menentukan port pendengar dari SQL Server Engine.
    • Aktifkan alamat IP yang diinginkan di >; jika tidak, Mesin SQL Server tidak dapat menerima koneksi TCP/IP dan layanan PolyBase tetap gagal tersambung ke Mesin SQL Server.
  • PolyBase di SQL Server di Linux tidak berfungsi jika IPv6 dinonaktifkan di kernel. Untuk informasi selengkapnya, lihat SQL Server di Linux: Masalah yang diketahui.

  • Layanan PolyBase mengharuskan protokol Memori Bersama diaktifkan agar berfungsi dengan baik.

  • Jika Anda memiliki instans SQL Server default yang dikonfigurasi untuk mendengarkan di port TCP selain 1433, Anda tidak dapat menggunakannya sebagai simpul kepala dalam grup peluasan skala PolyBase. Saat Anda menjalankan sp_polybase_join_group, jika Anda meneruskan 'MSSQLSERVER' sebagai nama instans, SQL Server mengasumsikan port 1433 adalah port pendengar, sehingga layanan Pergerakan Data tidak dapat terhubung ke simpul kepala saat memulai.

  • Sinonim Oracle tidak didukung untuk penggunaan dengan PolyBase.

  • Kolatasi UTF-8 tidak didukung untuk sumber data eksternal Hadoop.

  • Hadoop tidak lagi didukung di SQL Server 2022 (16.x) dan versi yang lebih baru.

  • Panjang nama server terikat oleh batasan panjang nama NetBIOS 15 karakter. Jika Anda mengubah nama server setelah membuatnya menjadi 16 karakter atau lebih, layanan Pergerakan Data PolyBase tidak akan dimulai.

  • Grup peluasan skala PolyBase tidak didukung dengan grup ketersediaan AlwaysOn.

  • Database yang diinstal dengan PolyBase (DWConfiguration, DWDiagnostics, DWQueue) harus dalam mode baca-tulis agar PolyBase berfungsi dan agar penginstalan Pembaruan Kumulatif berhasil. Oleh karena itu, tidak didukung untuk memiliki database ini dalam grup ketersediaan.