Oracle 上の外部データにアクセスするための PolyBase の構成
適用対象: SQL Server
この記事では、SQL Server インスタンス上で PolyBase を使用して、Oracle 上の外部データに対してクエリを実行する方法について説明します。
前提条件
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 リファレンス」を参照してください。
詳細と例については、次の記事を参照してください。