PolyBase configureren voor toegang tot externe gegevens in SQL Server
van toepassing op:SQL Server-
In dit artikel wordt uitgelegd hoe u PolyBase op een SQL Server-exemplaar gebruikt om een query uit te voeren op externe gegevens in een ander SQL Server-exemplaar.
Voorwaarden
Als u PolyBase nog niet hebt geïnstalleerd, raadpleegt u PolyBase-installatie. In het installatieartikel worden de vereisten uitgelegd. Zodra de installatie voltooid is, moet u ook PolyBaseinschakelen.
De externe SQL Server-gegevensbron maakt gebruik van SQL-verificatie.
Voordat u een database-gebonden referentie maakt, moet een hoofdsleutel worden gemaakt.
Een externe SQL Server-gegevensbron configureren
Als u een query wilt uitvoeren op de gegevens uit een SQL Server-gegevensbron, moet u externe tabellen maken om te verwijzen naar de externe gegevens. Deze sectie bevat voorbeeldcode voor het maken van deze externe tabellen.
Voor optimale queryprestaties maakt u statistieken voor externe tabelkolommen, met name voor de kolommen die worden gebruikt voor joins, filters en aggregaties.
In deze sectie worden de volgende Transact-SQL opdrachten gebruikt:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- STATISTIEKEN maken (Transact-SQL)
Maak een database-scoped referentie aan voor toegang tot de SQL Server-bron. In het volgende voorbeeld wordt een referentie voor de externe gegevensbron gemaakt met
IDENTITY = 'username'
enSECRET = 'password'
.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
Belangrijk
De SQL ODBC-connector voor PolyBase ondersteunt alleen basisverificatie, niet Kerberos-verificatie.
Maak een externe gegevensbron met CREATE EXTERNAL DATA SOURCE. Het volgende voorbeeld:
- Hiermee maakt u een externe gegevensbron met de naam
SQLServerInstance
. - Identificeert de externe gegevensbron (
LOCATION = '<vendor>://<server>[:<port>]'
). In het voorbeeld verwijst het naar een standaardexemplaar van SQL Server. - Hiermee wordt aangegeven of de berekening naar de bron moet worden gepusht (
PUSHDOWN
).PUSHDOWN
is standaardON
.
Ten slotte gebruikt het voorbeeld de inloggegevens die eerder zijn aangemaakt.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- Hiermee maakt u een externe gegevensbron met de naam
Maak de externe tabel met CREATE EXTERNAL TABLE De instructie vereist sortering en de locatie vereist driedelige notatie (
<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);
Maak desgewenst statistieken voor een externe tabel.
Voor optimale queryprestaties maakt u statistieken voor externe tabelkolommen, met name de kolommen die worden gebruikt voor samenvoegingsfilters en aggregaties.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Belangrijk
Zodra u een externe gegevensbron hebt gemaakt, kunt u de opdracht CREATE EXTERNAL TABLE opdracht gebruiken om een querybare tabel over die bron te maken.
Compatibele typen voor SQL Server-connector
U kunt ook de SQL Server-connector (sqlserver://) gebruiken voor toegang tot Azure SQL Database. Als u deze taak wilt uitvoeren, volgt u dezelfde stappen die eerder zijn vermeld. Zorg ervoor dat de databasereferenties, het serveradres, de poort en de locatietekenreeks overeenkomen met die van de Azure SQL Database-gegevensbron waarmee u verbinding wilt maken.
Volgende stappen
Zie PolyBase Transact-SQL referentievoor meer zelfstudies over het maken van externe gegevensbronnen en externe tabellen voor verschillende gegevensbronnen.
Zie Overzicht van SQL Server PolyBasevoor meer informatie over PolyBase.