Dela via


Funktioner och begränsningar i PolyBase

gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)

Den här artikeln är en sammanfattning av PolyBase-funktioner som är tillgängliga för SQL Server-produkter och -tjänster.

Funktionssammanfattning för produktversioner

Den här tabellen visar de viktigaste funktionerna för PolyBase och de produkter där de är tillgängliga.

funktion SQL Server (från och med 2016) Azure SQL Database Azure Synapse Analytics Parallell informationslager
Fråga Hadoop-data med Transact-SQL Ja Nej Nej Ja
Importera data från Hadoop Ja Nej Nej Ja
Exportera data till Hadoop Ja Nej Nej Ja
Fråga, importera från, exportera till Azure HDInsight Nej Nej Nej Nej
Skicka frågeberäkningar till Hadoop Ja Nej Nej Ja
Importera data från Azure Blob Storage Ja Ja 1 Ja Ja
Exportera data till Azure Blob Storage Ja Nej Ja Ja
Importera data från Azure Data Lake Store Nej Nej Ja Nej
Exportera data till Azure Data Lake Store Nej Nej Ja Nej
Köra PolyBase-frågor från Microsoft BI-verktyg Ja Nej Ja Ja

1 Introducerades i SQL Server 2017 (14.x), se Exempel på bulkåtkomst till data i Azure Blob Storage.

Kända begränsningar

PolyBase har följande begränsningar:

  • Före SQL Server 2019 (15.x) får den maximala möjliga radstorleken, som innehåller hela längden på kolumner med variabel längd, inte överstiga 32 KB i SQL Server eller 1 MB i Azure Synapse Analytics. I SQL Server 2019 (15.x) och senare versioner hävs den här begränsningen. Gränsen förblir 1 MB för Hadoop-datakällor, men begränsas endast av den maximala SQL Server-gränsen för andra datakällor.

  • När data exporteras till ett ORC-filformat från SQL Server eller Azure Synapse Analytics kan texttunga kolumner vara begränsade. De kan begränsas till så få som 50 kolumner på grund av felmeddelanden om att Java har slut på minne. Du kan undvika det här problemet genom att exportera endast en delmängd av kolumnerna.

  • PolyBase kan inte ansluta till någon Hadoop-instans om Knox är aktiverat.

  • Om du använder Hive-tabeller med transactional = true kan PolyBase inte komma åt data i Hive-tabellens katalog.

  • PolyBase-tjänster kräver att SQL Server-tjänsten har TCP/IP-nätverksprotokoll aktiverat för att fungera korrekt. Om konfigurationsinställningen TCP/IP Protocol Lyssna alla är inställd på Ingenkrävs följande TCP/IP-konfigurationer:

    • En post för rätt lyssnarport i antingen dynamiska TCP-portar eller TCP-portar under IPAll. Detta krävs på grund av hur PolyBase-tjänster löser lyssnarporten för SQL Server Engine.
    • Aktivera önskade IP-adresser i TCP/IP-egenskaper > IP-adresser; Annars accepterar INTE SQL Server Engine några TCP/IP-anslutningar och PolyBase-tjänster kommer fortfarande inte att kunna ansluta till SQL Server Engine.
  • PolyBase på SQL Server i Linux fungerar inte om IPv6 är inaktiverat i kerneln. Mer information finns i SQL Server på Linux: Kända problem.

  • PolyBase-tjänster kräver att protokollet för delat minne är aktiverat för att fungera korrekt.

  • Om du har en SQL Server-standardinstans som är konfigurerad för att lyssna på en annan TCP-port än 1433 kan du inte använda den som huvudnod i en PolyBase-utskalningsgrupp. När du kör sp_polybase_join_group, om du skickar "MSSQLSERVER" som instansnamn, förutsätter SQL Server att port 1433 är lyssnarporten, så dataflytttjänsten kan inte ansluta till huvudnoden när du startar.

  • Oracle-synonymer stöds inte för användning med PolyBase.

  • UTF-8-sortering stöds inte för hadoop-externa datakällor.

  • Hadoop stöds inte längre i SQL Server 2022 (16.x) och senare versioner.

  • PolyBase-utskalningsgrupper stöds inte med AlwaysOn-tillgänglighetsgrupper.

  • Servernamnslängden är bunden av en längd på 15 tecken för NetBIOS-namn. Om du ändrar servernamnet när du har skapat det till 16 tecken eller längre startar inte PolyBase Data Movement-tjänsten.