Introduzione alla virtualizzazione dei dati con PolyBase

Si applica a: SQL Server Non supportato Database SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

PolyBase è una funzionalità di virtualizzazione dei dati per SQL Server.

Che cos'è PolyBase?

PolyBase consente all'istanza di SQL Server di eseguire query sui dati con T-SQL direttamente da SQL Server, Oracle, Teradata, MongoDB, cluster Hadoop, Cosmos DB e archiviazione oggetti compatibili con S3 senza installare separatamente il software di connessione client. È anche possibile usare il connettore ODBC generico per connettersi a provider aggiuntivi usando driver ODBC di terze parti. PolyBase consente alle query T-SQL di unire i dati di origini esterne a tabelle relazionali in un'istanza di SQL Server.

Un caso d'uso chiave per la virtualizzazione dei dati con la funzionalità PolyBase consiste nel consentire ai dati di rimanere nel percorso e nel formato originale. È possibile virtualizzare i dati esterni tramite un'istanza di SQL Server in modo da potervi eseguire query sul posto come per qualsiasi altra tabella in SQL Server. Questo processo riduce al minimo la necessità di processi ETL per lo spostamento dei dati. Questo scenario di virtualizzazione dei dati è possibile con l'uso di connettori PolyBase.

Prodotti e servizi SQL supportati

PolyBase offre queste stesse funzionalità per i prodotti SQL seguenti di Microsoft:

  • SQL Server 2016 (13.x) e versioni successive (Windows)
  • SQL Server 2019 (15.x) e versioni successive (Windows e Linux)
  • SQL Server Analytics Platform System (PDW)
  • Azure Synapse Analytics (per pool SQL dedicati)

Nota

La virtualizzazione dei dati è disponibile anche per Istanza gestita di SQL di Azure, con ambito per eseguire query sui dati esterni archiviati in file in Azure Data Lake Storage (ADLS) Gen2 e Archiviazione BLOB di Azure. Visitare La virtualizzazione dei dati con Istanza gestita di SQL di Azure per altre informazioni.

miglioramenti di PolyBase SQL Server 2022

Nuovo a SQL Server 2022 (16.x) Dettagli
Risorsa di archiviazione di oggetti compatibile con S3 SQL Server 2022 (16.x) aggiunge un nuovo connettore, l'archiviazione degli oggetti compatibile con S3 usando l'API REST S3. È possibile usare entrambi OPENROWSET e EXTERNAL TABLES per eseguire query sui file di dati nell'archivio oggetti compatibile con S3.
Alcuni connettori separati dai servizi PolyBase Il connettore di archiviazione degli oggetti compatibile con S3, nonché l'Archiviazione BLOB di Azure DSL Gen2, non dipendono più dai servizi PolyBase. I servizi PolyBase devono comunque essere eseguiti per supportare la connettività con Oracle, Teradata, MongoDB e ODBC generico. La funzionalità PolyBase deve comunque essere installata nell'istanza di SQL Server.
Formato di file Parquet PolyBase è ora in grado di eseguire query sui dati dai file Parquet archiviati nell'archivio oggetti compatibile con S3. Per altre informazioni, vedere Virtualizzare il file parquet in un archivio oggetti compatibile con S3 con PolyBase.
Formato tabella delta PolyBase è ora in grado di eseguire query su dati (di sola lettura) dal formato di tabella Delta archiviato in archiviazione oggetti compatibili con S3, account di archiviazione di Azure V2 e Azure Data Lake Storage Gen2. Per altre informazioni, vedere Virtualize Delta Table format
Creare una tabella esterna come seleziona (CETAS) PolyBase può ora usare CETAS per creare una tabella esterna ed esportare, in parallelo, il risultato di un'istruzione Transact-SQL SELECT per Azure Data Lake Storage Gen2, l'account di archiviazione di Azure V2 e l'archiviazione degli oggetti compatibile con S3. Per altre informazioni, vedere CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

Per altre nuove funzionalità di SQL Server 2022 (16.x), vedere Novità di SQL Server 2022?

Per un esempio che usa PolyBase in SQL Server 2022 (16.x) per virtualizzare un file CSV in Archiviazione di Azure, vedere Virtualizzare il file CSV con PolyBase.

Connettori PolyBase

La funzionalità PolyBase offre la connettività alle origini dati esterne seguenti:

Origini dati esterne SQL Server 2016-2019 con PolyBase SQL Server 2022 (16.x) con PolyBase APS PDW Azure Synapse Analytics
Oracle, MongoDB, Teradata Lettura Lettura No No
ODBC generico Lettura (solo Windows) Lettura (solo Windows) No No
Archiviazione di Azure Lettura/Scrittura Lettura/Scrittura Lettura/Scrittura Lettura/Scrittura
Hadoop Lettura/Scrittura No Lettura/Scrittura No
SQL Server Lettura Lettura No No
Risorsa di archiviazione di oggetti compatibile con S3 No Lettura/Scrittura No No
  • SQL Server 2022 (16.x) non supporta Hadoop.
  • SQL Server 2016 (13.x) ha introdotto PolyBase con il supporto per le connessioni a Hadoop e Archiviazione BLOB di Azure.
  • SQL Server 2019 (15.x) ha introdotto connettori aggiuntivi, tra cui SQL Server, Oracle, Teradata e MongoDB.
  • SQL Server 2022 (16.x) ha introdotto il connettore di archiviazione compatibile con S3.
  • SQL Server 2019 (15.x) Aggiornamento cumulativo 19 introdotto il supporto per Oracle TNS.
  • SQL Server 2022 (16.x) Aggiornamento cumulativo 2 introdotto per Oracle TNS.

Esempi di connettori esterni sono i seguenti:

* PolyBase supporta due provider Hadoop, Hortonworks Data Platform (HDP) e Cloudera Distributed Hadoop (CDH), tramite SQL Server 2019. SQL Server supporto per le origini dati esterne HDFS Cloudera (CDP) e Hortonworks (HDP) verranno ritirati e non saranno inclusi in SQL Server 2022 (16.x). Per altre informazioni, vedere Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

Per usare PolyBase in un'istanza di SQL Server:

  1. Installare PolyBase in Windows o installare PolyBase in Linux.
  2. A partire da SQL Server 2019 (15.x), abilitare PolyBase in sp_configure, se necessario.
  3. Creare un'origine dati esterna.
  4. Creare una tabella esterna.

Integrazione con Azure

Con il supporto sottostante di PolyBase, le query T-SQL possono anche importare ed esportare dati da Archiviazione BLOB di Azure. PolyBase consente inoltre ad Azure Synapse Analytics di importare ed esportare dati da Azure Data Lake Store e da Archiviazione BLOB di Azure.

Perché usare PolyBase

PolyBase consente di unire i dati di un'istanza di SQL Server con dati esterni. Prima di PolyBase, per aggiungere i dati alle origini dati esterne era possibile eseguire una delle operazioni seguenti:

  • Trasferire la metà dei dati in modo che tutti i dati fossero in una posizione.
  • Eseguire query su entrambe le origini dati, quindi scrivere logica di query personalizzata per creare i join e integrare i dati a livello di client.

PolyBase consente di usare semplicemente Transact-SQL per unire i dati.

PolyBase non richiede di installare software aggiuntivo nell'ambiente Hadoop. Si possono eseguire query sui dati esterni usando la stessa sintassi T-SQL usata per eseguire query su una tabella di database. Le azioni di supporto implementate da PolyBase vengono tutte eseguite in modo trasparente. L'autore della query non deve conoscere l'origine esterna.

Usi di PolyBase

PolyBase rende possibili gli scenari seguenti in SQL Server:

  • Eseguire query sui dati archiviati in Archiviazione BLOB di Azure. Archiviazione BLOB di Azure è una posizione comoda per archiviare i dati da usare dai servizi di Azure. PolyBase semplifica l'accesso ai dati con T-SQL.

  • Eseguire query sui dati archiviati in Hadoop da un'istanza di SQL Server o PDW. Gli utenti scelgono di archiviare i dati in sistemi distribuiti e scalabili convenienti, come Hadoop. PolyBase semplifica la query dei dati con T-SQL.

  • Importare i dati da Hadoop, Archiviazione BLOB di Azure o Azure Data Lake Store. Sfruttare la velocità della tecnologia columnstore e delle funzionalità di analisi di Microsoft SQL importando i dati da Hadoop, Archiviazione BLOB di Azure o Azure Data Lake Store in tabelle relazionali. Non è necessario uno strumento di importazione o ETL separato.

  • Esportare i dati in Hadoop, nell'archivio BLOB di Azure o in Azure Data Lake Store. Archiviare i dati in Hadoop, nell'archivio BLOB di Azure o in Azure Data Lake Store per un'archiviazione conveniente e mantenerli online per accedervi facilmente.

  • Integrarsi con strumenti BI. Usare PolyBase con lo stack di analisi e business intelligence di Microsoft oppure usare qualsiasi strumento di terze parti compatibile con SQL Server.

Prestazioni

  • Eseguire il push del calcolo in Hadoop. (Si applica a SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server solo 2019 (15.x). PolyBase esegue il push di alcuni calcoli sull'origine esterna per ottimizzare la query complessiva. Query Optimizer prende una decisione basata sui costi per eseguire il push in Hadoop se in questo modo migliorano le prestazioni della query. Per prendere la decisione basata sui costi, Query Optimizer usa le statistiche sulle tabelle esterne. Il push del calcolo crea processi MapReduce e sfrutta le risorse di calcolo distribuite di Hadoop. Per altre informazioni, vedere Calcoli pushdown in PolyBase.

  • Ridimensionare le risorse di calcolo. (Si applica a SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server solo 2019 (15.x). Per migliorare le prestazioni delle query, è possibile usare i gruppi con scalabilità orizzontale di PolyBaseper SQL Server. In questo modo viene abilitato il trasferimento dei dati paralleli tra le istanze di SQL Server e i nodi di Hadoop e vengono aggiunte le risorse di calcolo per operare sui dati esterni.

Importante

I gruppi di scalabilità orizzontale di Microsoft SQL Server PolyBase verranno ritirati. La funzionalità del gruppo di scalabilità orizzontale verrà rimossa dal prodotto in SQL Server 2022 (16.x). La virtualizzazione dei dati PolyBase continuerà a essere completamente supportata come funzionalità di aumento delle prestazioni in SQL Server. Per altre informazioni, vedere Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

Aggiornamento a SQL Server 2022

A partire da SQL Server 2022 (16.x) Hortonworks Data Platform (HDP) e Cloudera Distributed Hadoop (CDH) non sono più supportati. A causa di queste modifiche, è necessario eliminare manualmente origini dati esterne PolyBase create nelle versioni precedenti di SQL Server che usano TYPE = HADOOP o Archiviazione di Azure prima di eseguire la migrazione a SQL Server 2022 (16.x). L'eliminazione di origini dati esterne richiede anche l'eliminazione degli oggetti di database associati, ad esempio le credenziali con ambito database e le tabelle esterne.

I connettori di Archiviazione di Azure devono essere modificati in base alla tabella di riferimento seguente:

Origine dati esterna Da A
Archiviazione BLOB di Azure wasb[s] abs
ADLS Gen 2 abfs[s] adls

Passaggi successivi

Prima di usare PolyBase, è necessario installare PolyBase in Windows o installare PolyBase in Linux e abilitare PolyBase in sp_configure , se necessario. Per altre esercitazioni sulla creazione di origini dati esterne e tabelle esterne in un'ampia gamma di origini dati, vedere Le informazioni di riferimento su Transact-SQL di PolyBase.

Esaminare le informazioni di riferimento transact-SQL di PolyBase con esempi di origini dati esterne e tabelle esterne per un'ampia gamma di origini dati. Per altre esercitazioni, vedere gli articoli seguenti: