設定 PolyBase 存取 Oracle 中的外部資料
適用於:SQL Server
本文說明如何在 SQL Server 執行個體上使用 PolyBase 查詢位於 Oracle 中的外部資料。
Prerequisites
如果您尚未安裝 PolyBase,請參閱 PolyBase 安裝。
在建立資料庫範圍認證之前,必須建立主要金鑰。
設定 Oracle 外部資料來源
若要查詢來自 Oracle 資料來源的資料,您必須建立外部表格參考外部資料。 本節提供建立這些外部資料表的範例程式碼。
本節中使用下列 Transact-SQL 命令:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
建立資料庫範圍認證以存取 Oracle 來源。
/* specify credentials to external data source * IDENTITY: user name for external source. * SECRET: password for external source. */ CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'password';
重要
適用於 PolyBase 的 Oracle ODBC 連接器僅支援基本驗證,不支援 Kerberos 驗證。
使用 CREATE EXTERNAL DATA SOURCE 建立外部資料來源。
/* * LOCATION: Location string should be of format '<vendor>://<server>[:<port>]'. * PUSHDOWN: specify whether computation should be pushed down to the source. ON by default. * CONNECTION_OPTIONS: Specify driver location * CREDENTIAL: the database scoped credential, created above. */ CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'oracle://<server address>[:<port>]', -- PUSHDOWN = ON | OFF, CREDENTIAL = credential_name)
使用 CREATE EXTERNAL TABLE 來建立外部資料表。
/* * LOCATION: Three-part identifier indicating database & domain or only database, schema, and table name. * DATA_SOURCE: The data source created above. */ CREATE EXTERNAL TABLE [T1] ( [KEY] DECIMAL(38) NOT NULL, [RANDOM_INT] DECIMAL(38), [RANDOM_FLOAT] FLOAT(53)) WITH ( LOCATION = '[ORCLCDB.localdomain].SYS.T1', DATA_SOURCE = external_data_source_name)
選擇性: 在外部資料表上建立統計資料。
我們建議在外部表格資料行上建立統計資料 (尤其是用於聯結、篩選和彙總的資料行),以取得最佳查詢效能。
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN;
重要
當您建立外部資料來源之後,可以使用 CREATE EXTERNAL TABLE 命令透過該來源建立可查詢的資料表。
後續步驟
如需將外部資料來源與外部資料表建立到各種資料來源的其他教學課程,請參閱 PolyBase Transact-SQL 參考。
如需詳細資訊和範例,請參閱下列文章: