Configurare PolyBase per l'accesso a dati esterni con i tipi generici ODBC
Si applica a: SQL Server
PolyBase a partire da SQL Server 2019 consente di connettersi alle origini dati compatibili con ODBC tramite il connettore ODBC.
Questo articolo illustra come creare la connettività per la configurazione usando un'origine dati ODBC. Le indicazioni fornite usano un driver ODBC specifico come esempio. Per esempi specifici, rivolgersi al provider ODBC. Per determinare le opzioni appropriate per la stringa di connessione, vedere la documentazione del driver ODBC per l'origine dati. Gli esempi in questo articolo potrebbero non essere applicabili a un driver ODBC specifico.
Prerequisiti
Nota
Questa funzionalità richiede SQL Server in Windows.
È necessario installare e abilitare PolyBase per l'istanza installazione di PolyBase di SQL Server.
Prima di creare credenziali con ambito database, è necessario creare una chiave master.
Installare il driver ODBC
Scaricare e installare il driver ODBC dell'origine dati a cui ci si vuole connettere in ogni nodo PolyBase. Una volta installato correttamente il driver, è possibile visualizzare e testare il driver da Amministratore origine dati ODBC.
Nell'esempio precedente il nome del driver è racchiuso in un cerchio rosso. Usare questo nome quando si crea l'origine dati esterna.
Importante
Per migliorare le prestazioni delle query, abilitare il pool di connessioni. Questa operazione può essere eseguita da Amministratore origine dati ODBC.
Creare oggetti dipendenti in SQL Server
Per usare l'origine dati ODBC, è prima di tutto necessario creare alcuni oggetti per completare la configurazione.
In questa sezione vengono usati i comandi Transact-SQL seguenti:
Creare le credenziali con ambito database per l'accesso all'origine ODBC.
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
L'esempio seguente crea una credenziale denominata
credential_name
, con l'identitàusername
e una password complessa.CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
Creare un'origine dati esterna con CREATE EXTERNAL DATA SOURCE.
CREATE EXTERNAL DATA SOURCE [<external_data_source_name>] WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]', CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>}; ServerNode = <name of server address>:<Port>', -- PUSHDOWN = [ON] | OFF, CREDENTIAL = [<credential_name>] );
L'esempio seguente crea un'origine dati esterna:
- Denominata
external_data_source_name
- Contenuta in
SERVERNAME
e sulla porta4444
ODBC - Connessa con
CData ODBC Driver For SAP 2015
, ovvero il driver creato in Installare il driver ODBC - Sulla porta
5555
diServerNode
sap_server_node
- Configurata per l'elaborazione propagata al server (
PUSHDOWN = ON
) - Che usa la credenziale
credential_name
CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'odbc://SERVERNAME:4444', CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015}; ServerNode = sap_server_node:5555', PUSHDOWN = ON, CREDENTIAL = credential_name );
- Denominata
Creare una tabella esterna
Dopo avere creato gli oggetti dipendenti, è possibile creare tabelle esterne con T-SQL.
In questa sezione vengono usati i comandi Transact-SQL seguenti:
Creare una o più tabelle esterne.
Creare una tabella esterna. Sarà necessario fare riferimento all'origine dati esterna creata in precedenza usando l'argomento
DATA_SOURCE
e specificare la tabella di origine comeLOCATION
. Non è necessario fare riferimento a tutte le colonne, ma sarà necessario assicurare che i tipi siano mappati correttamente.CREATE EXTERNAL TABLE [<your_table_name>] ( [<col1_name>] DECIMAL(38) NOT NULL, [<col2_name>] DECIMAL(38) NOT NULL, [<col3_name>] CHAR COLLATE Latin1_General_BIN NOT NULL ) WITH ( LOCATION='<sap_table_name>', DATA_SOURCE= [<external_data_source_name>] ) ;
Nota
Si noti che è possibile riutilizzare gli oggetti dipendenti per tutte le tabelle esterne usando questa origine dati esterna.
Facoltativo: Creare statistiche per una tabella esterna.
Per garantire prestazioni ottimali delle query, è consigliabile creare le statistiche sulle colonne delle tabelle esterne, in particolare quelle usate per join, filtri e aggregazioni.
CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN;
Passaggi successivi
Per altre informazioni su PolyBase, vedere Che cos'è PolyBase?.
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.