設定 PolyBase 存取 SQL Server 中的外部資料
適用於:SQL Server
本文說明如何在 SQL Server 執行個體上使用 PolyBase 查詢位於另一個 SQL Server 執行個體中的外部資料。
必要條件
如果您尚未安裝 PolyBase,請參閱 PolyBase 安裝。 安裝文章說明必要條件。 安裝後,也請務必啟用 PolyBase。
SQL Server 的外部資料源使用 SQL 驗證。
在建立資料庫範圍認證之前,必須建立主要金鑰。
設定 SQL Server 外部資料來源
若要查詢來自 SQL Server 資料來源的資料,您必須建立外部表格參考外部資料。 本節提供建立這些外部表格的範例程式碼。
如需最佳查詢效能,請在外部表格資料行上建立統計資料 (尤其是用於聯結、篩選和彙總的資料行)。
本節中使用下列 Transact-SQL 命令:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
建立資料庫範圍認證以存取 SQL Server 來源。 下列範例使用
IDENTITY = 'username'
和SECRET = 'password'
來建立外部資料來源認證。CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
重要
適用於 PolyBase 的 SQL ODBC 連接器僅支援基本驗證,不支援 Kerberos 驗證。
使用 CREATE EXTERNAL DATA SOURCE 建立外部資料來源。 下列範例將:
- 建立名為
SQLServerInstance
的外部資料來源。 - 指定外部資料來源 (
LOCATION = '<vendor>://<server>[:<port>]'
)。 在範例中,它會指向 SQL Server 的預設執行個體。 - 識別是否應將計算推送至來源 (
PUSHDOWN
)。PUSHDOWN
預設為ON
。
最後,範例會使用先前建立的認證。
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- 建立名為
使用 CREATE EXTERNAL TABLE 建立外部表格。這個陳述式需要定序,而且位置須使用三部分標記法 (
<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);
(選擇性) 在外部表格上建立統計資料。
如需最佳查詢效能,請在外部表格資料行上建立統計資料 (尤其是用於聯結、篩選和彙總的資料行)。
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
重要
當您建立外部資料來源之後,可以使用 CREATE EXTERNAL TABLE 命令透過該來源建立可查詢的資料表。
SQL Server 連接器相容類型
您也可以利用 SQL Server (sqlserver://) 連接器存取 Azure SQL Database。 若要完成此工作,請遵循上述相同步驟進行。 請確定資料庫範圍認證、伺服器位址、連接埠及位置字串皆與您想要連線的 Azure SQL Database 資料來源相互關聯。
下一步
如需將外部資料來源和外部表格建立到各種資料來源的其他教學課程,請參閱 PolyBase Transact-SQL 參考。
若要深入了解 PolyBase,請參閱 SQL Server PolyBase 概觀。