Funzionalità e limitazioni di PolyBase

Si applica a:: SQL Server 2016 (13.x) e versioni successive database SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW).

Questo articolo rappresenta un riepilogo delle funzionalità di PolyBase disponibili per i prodotti e servizi di SQL Server.

Riepilogo delle funzionalità per le versioni dei prodotti

Questa tabella elenca le funzionalità principali per PolyBase e i prodotti in cui sono disponibili.

Funzionalità SQL Server (a partire dalla versione 2016) Database SQL di Azure Azure Synapse Analytics Parallel Data Warehouse
Esecuzione di query sui dati Hadoop con Transact-SQL No No
Importare dati da Hadoop No No
Esportare dati in Hadoop No No
Eseguire query, importare da Azure HDInsight No No No No
Eseguire il push down dei calcoli delle query in Hadoop No No
Importare dati dall'archivio BLOB di Azure 1
Esportare dati nell'archivio BLOB di Azure No
Importare dati da Azure Data Lake Store No No No
Esportare dati in Azure Data Lake Store No No No
Eseguire query PolyBase da strumenti BI di Microsoft No

1 Introdotta in SQL Server 2017 (14.x). Vedere Esempi di accesso in blocco ai dati nell'archiviazione BLOB di Azure.

Limitazioni note

PolyBase include le limitazioni seguenti:

  • Prima di SQL Server 2019 (15.x), le dimensioni massime consentite per la riga, inclusa la lunghezza totale delle colonne di lunghezza variabile, non possono superare 32 KB in SQL Server o 1 MB in Azure Synapse Analytics. In SQL Server 2019 (15.x) e versioni successive questa limitazione viene eliminata. Il limite rimane 1 MB per le origini dati Hadoop, ma è limitato solo dal limite massimo di SQL Server per altre origini dati.

  • Quando si esportano dati in un formato file ORC da SQL Server o Azure Synapse Analytics, le colonne con grandi quantità di testo potrebbero essere limitate. Possono essere limitate a 50 colonne a causa di messaggi di errore di memoria insufficiente di Java. Per risolvere questo problema, esportare solo un subset delle colonne.

  • PolyBase non può connettersi a un'istanza di Hadoop se Knox è abilitata.

  • Se si usano tabelle Hive con transactional=true, PolyBase non può accedere ai dati nella directory della tabella Hive.

  • I servizi PolyBase richiedono l’abilitazione del protocollo di rete TCP/IP per il corretto funzionamento del servizio SQL Server. Inoltre, se l'impostazione di configurazione del protocollo TCP/IP Listen All è impostata su No, è comunque necessario disporre di una voce per la porta del listener corretta in Porte dinamiche TCP o porte TCP in IPAll in Proprietà TCP/IP. Questa operazione è obbligatoria a causa del modo in cui i servizi PolyBase risolvono la porta del listener del motore di SQL Server.

  • PolyBase in SQL Server in Linux non funziona se IPv6 è disabilitato nel kernel. Per altre informazioni, vedere SQL Server in Linux: problemi noti.

  • I servizi PolyBase richiedono l'abilitazione del protocollo di memoria condivisa per il corretto funzionamento.

  • Se si dispone di un'istanza di SQL Server predefinita configurata per l'ascolto sulla porta TCP diversa da 1433, non è possibile usarla come nodo head in un gruppo con scalabilità orizzontale PolyBase. Quando si esegue sp_polybase_join_group, se si passa "MSSQLSERVER" come nome dell'istanza, SQL Server presuppone che la porta 1433 sia la porta del listener, quindi il servizio spostamento dati non è in grado di connettersi al nodo head all'avvio.

  • I sinonimi di Oracle non possono essere usati con PolyBase.

  • Le regole di confronto UTF-8 non sono supportate per le origini dati esterne Hadoop.

  • Hadoop non è più supportata in SQL Server 2022 (16.x) e versioni successive.

  • I gruppi con scalabilità orizzontale polyBase non sono supportati con i gruppi di disponibilità sempre attivi.