Configurare PolyBase per l'accesso a dati esterni in SQL Server
Si applica a: SQL Server
Questo articolo illustra come usare PolyBase in un'istanza di SQL Server per eseguire query sui dati esterni in un'altra istanza di SQL Server.
Prerequisiti
Se PolyBase non è stato installato, vedere Installazione di PolyBase. Nell'articolo sull'installazione vengono illustrati i prerequisiti. Dopo l'installazione, assicurarsi anche di abilitare PolyBase.
L'origine dati esterna di SQL Server usa l'autenticazione SQL.
Prima di creare credenziali con ambito database, è necessario creare una chiave master.
Configurare un'origine dati esterna di SQL Server
Per eseguire query sui dati da un'origine dati SQL Server, è necessario creare tabelle esterne per fare riferimento ai dati esterni. In questa sezione è disponibile codice di esempio per creare queste tabelle esterne.
Per prestazioni ottimali delle query, creare le statistiche sulle colonne delle tabelle esterne, in particolare quelle usate per join, filtri e aggregazioni.
In questa sezione vengono usati i comandi Transact-SQL seguenti:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Creare le credenziali con ambito database per l'accesso all'origine SQL Server. Nell'esempio seguente vengono create le credenziali per l'origine dati esterna con
IDENTITY = 'username'
eSECRET = 'password'
.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
Importante
Il connettore ODBC SQL per PolyBase supporta solo l'autenticazione di base e non l'autenticazione Kerberos.
Creare un'origine dati esterna con CREATE EXTERNAL DATA SOURCE. L'esempio seguente:
- Crea un'origine dati esterna denominata
SQLServerInstance
. - Identifica l'origine dati esterna (
LOCATION = '<vendor>://<server>[:<port>]'
). Nell'esempio punta a un'istanza predefinita di SQL Server. - Indica se eseguire il push del calcolo nell'origine (
PUSHDOWN
).PUSHDOWN
èON
per impostazione predefinita.
Infine, l'esempio usa le credenziali create in precedenza.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- Crea un'origine dati esterna denominata
Creare la tabella esterna con CREATE EXTERNAL TABLE L'istruzione richiede regole di confronto e il percorso richiede la notazione in tre parti (
<database>.<schema>.<table>
).CREATE EXTERNAL TABLE DatabasesExternal ( name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS) WITH (LOCATION = 'master.sys.databases', DATA_SOURCE = SQLServerInstance);
Facoltativamente, creare statistiche per una tabella esterna.
Per prestazioni ottimali delle query, creare le statistiche sulle colonne delle tabelle esterne, in particolare quelle usate per filtri di join e aggregazioni.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Importante
Dopo aver creato un'origine dati esterna, è possibile usare il comando CREATE EXTERNAL TABLE per creare una tabella disponibile per query su tale origine.
Tipi compatibili con il connettore SQL Server
È anche possibile usare il connettore SQL Server (sqlserver://) per accedere alle database SQL di Azure. A questo scopo, seguire gli stessi passaggi elencati in precedenza. Assicurarsi che le credenziali dell'ambito database, l'indirizzo del server, la porta e la stringa del percorso siano correlati a quelli dell'origine dati di Azure SQL Database a cui si desidera connettersi.
Passaggi successivi
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 per PolyBase.
Per altre informazioni su PolyBase, vedere Che cos'è PolyBase?.