Virtualizzazione dei dati con PolyBase in SQL Server

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 risorse di archiviazione di oggetti compatibile con S3 senza installare separatamente il software di connessione client. È anche possibile usare il connettore ODBC generico per connettersi a provider aggiuntivi tramite driver ODBC di terzi. 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 nella posizione e nel formato originali. È 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 sensibilmente la necessità di ricorrere a processi ETL per lo spostamento dati. Questo scenario di virtualizzazione dati è possibile grazie all'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)
  • Piattaforma di strumenti analitici (PDW) di SQL Server
  • Azure Synapse Analytics (per pool SQL dedicati)

Nota

La virtualizzazione dei dati è disponibile anche per Istanza gestita di SQL di Azure, con ambito per l'esecuzione di query su dati esterni archiviati in file in Azure Data Lake Storage (ADLS) Gen2 e Archiviazione BLOB di Azure. Per altre informazioni, visitare Virtualizzazione dei dati con Istanza gestita di SQL di Azure.

Miglioramenti di PolyBase in SQL Server 2022

Novità di 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 di oggetti compatibile con S3, usando l'API REST S3. È possibile usare sia OPENROWSET che CREATE EXTERNAL TABLE per eseguire query sui file di dati nell'archiviazione oggetti compatibile con S3.
Alcuni connettori si separano dai servizi PolyBase Il connettore di archiviazione di oggetti compatibile con S3, nonché ADSL Gen2, e Archiviazione BLOB di Azure, 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 ancora 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 un file Parquet in una risorsa di archiviazione di oggetti compatibile con S3 con PolyBase.
Formato della tabella Delta PolyBase è ora in grado di eseguire query sui dati (di sola lettura) dal formato tabella Delta archiviato nelle risorse di archiviazione oggetti compatibile con S3, account di Archiviazione di Azure V2 e Azure Data Lake Storage Gen2. Per altre informazioni, vedere Virtualizzare il formato tabella Delta
Create External Table as Select (CETAS) PolyBase può ora usare CETAS per creare una tabella esterna e quindi esportare, in parallelo, il risultato di un'istruzione SELECT Transact-SQL in Azure Data Lake Storage Gen2, account di Archiviazione di Azure V2 e archiviazione di oggetti compatibili 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.

Suggerimento

Per un'esercitazione sulle funzionalità e sulle capacità di PolyBase in SQL Server 2022 (16.x), vedere Introduzione a PolyBase in SQL Server 2022.

Connettori PolyBase

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

Origini dati esterne SQL Server 2016-2019 con PolyBase SQL Server 2022 (16.x) con PolyBase Piattaforma di strumenti analitici PDW Azure Synapse Analytics
Oracle, MongoDB, Teradata Lettura Lettura No No
ODBC generico Lettura (solo Windows) Lettura (solo Windows) No No
Archiviazione di Azure Leggi/Scrivi Leggi/Scrivi Leggi/Scrivi Leggi/Scrivi
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 supporto per le connessioni a Hadoop e all'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.
  • L'aggiornamento cumulativo 19 di SQL Server 2019 (15.x) ha introdotto il supporto per Oracle TNS.
  • L'aggiornamento cumulativo 2 di SQL Server 2022 (16.x) ha introdotto il supporto per Oracle TNS.

Esempi di connettori esterni sono i seguenti:

* PolyBase supporta due provider di Hadoop, Hortonworks Data Platform (HDP) e Cloudera Distributed Hadoop (CDH) tramite SQL Server 2019. Il supporto di SQL Server per le origini dati esterne HDFS Cloudera (CDP) e Hortonworks (HDP) sarà ritirato e non sarà disponibile 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 su Windows o installare PolyBase su 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. Nell'Archiviazione BLOB di Azure è possibile salvare i dati da usare con i 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 la business intelligence e lo stack di analisi di Microsoft o usare strumenti di terzi compatibili con SQL Server.

Prestazioni

Non esiste un limite rigido al numero di file o alla quantità di dati su cui è possibile eseguire query. Le prestazioni delle query dipendono dalla quantità di dati, dal formato dei dati, dalla modalità di organizzazione dei dati e dalla complessità delle query e dei join.

Per altre informazioni sulle indicazioni sulle prestazioni e per consigli su PolyBase, vedere Considerazioni sulle prestazioni in PolyBase per SQL Server.

Aggiornare 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 le 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 database associati, ad esempio le credenziali con ambito database e le tabelle esterne.

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

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

Operazioni preliminari

Prima di usare PolyBase, è necessario installare PolyBase in Windows o installare PolyBase in Linux e abilitare PolyBase in sp_configure, se necessario.

Per un'esercitazione sulle funzionalità e sulle capacità di PolyBase, vedere Introduzione a PolyBase in SQL Server 2022.

Per altre esercitazioni su varie origini dati esterne, vedere:

Virtualizzazione dei dati in altre piattaforme

Le funzionalità di virtualizzazione dei dati sono disponibili anche su altre piattaforme: