PolyBase で外部データソースとしてAzure Data Lake Storage を連携利用

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Azure Data Lake Storage ODBC Driver

Azure Data Lake Storage ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからAzure Data Lake Storage にデータ連携。

Azure Data Lake Storage にデータベースと同感覚でアクセスして、Azure Data Lake Storage データに使い慣れたODBC インターフェースで双方向連携。



CData ODBC Driver for Azure Data Lake Storage とSQL Server 2019 のPolyBase を使って、リアルタイムAzure Data Lake Storage に外部データソースとしてアクセス。

SQL Server のPolyBase は、データベーステーブルをクエリするTransact-SQL 構文を使って、外部データにクエリする仕組みです。 CData ODBC Drivers for Azure Data Lake Storage を組み合わせて使うことで、SQL Server データと同じようにAzure Data Lake Storage へのアクセスが可能です。 本記事では、外部データソースと外部テーブルの作成から、T-SQL クエリを使ってライブAzure Data Lake Storage データへ接続を認可するところまで説明します。

CData ODBC ドライバーは、ドライバーに組み込まれた最適化されたデータ処理により、PolyBase でライブAzure Data Lake Storage データを送受信するための圧倒的なパフォーマンスを提供します。SQL Server からAzure Data Lake Storage に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をAzure Data Lake Storage に直接プッシュダウンし、組み込みSQL エンジンを利用して、サポートされていない操作(一般的にはSQL 関数とJOIN 操作) をクライアント側で処理します。また、PolyBase を使用することで、単一のクエリを使用して分散ソースからデータをプルし、SQL Server データをAzure Data Lake Storage と結合することもできます。

Azure Data Lake Storage への接続

未指定の場合は、初めにODBC DSN(data source name)で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。PolyBase を使用してSQL Server に外部データソースを作成するには、System DSN を構成します。(CData Azure Data Lake Storage Sys は自動的に作成されます。)

Authenticating to a Gen 1 DataLakeStore Account

Gen 1 uses OAuth 2.0 in Azure AD for authentication.

For this, an Active Directory web application is required. You can create one as follows:

  1. Sign in to your Azure Account through the .
  2. Select "Azure Active Directory".
  3. Select "App registrations".
  4. Select "New application registration".
  5. Provide a name and URL for the application. Select Web app for the type of application you want to create.
  6. Select "Required permissions" and change the required permissions for this app. At a minimum, "Azure Data Lake" and "Windows Azure Service Management API" are required.
  7. Select "Key" and generate a new key. Add a description, a duration, and take note of the generated key. You won't be able to see it again.

To authenticate against a Gen 1 DataLakeStore account, the following properties are required:

  • Schema: Set this to ADLSGen1.
  • Account: Set this to the name of the account.
  • OAuthClientId: Set this to the application Id of the app you created.
  • OAuthClientSecret: Set this to the key generated for the app you created.
  • TenantId: Set this to the tenant Id. See the property for more information on how to acquire this.
  • Directory: Set this to the path which will be used to store the replicated file. If not specified, the root directory will be used.

Authenticating to a Gen 2 DataLakeStore Account

To authenticate against a Gen 2 DataLakeStore account, the following properties are required:

  • Schema: Set this to ADLSGen2.
  • Account: Set this to the name of the account.
  • FileSystem: Set this to the file system which will be used for this account.
  • AccessKey: Set this to the access key which will be used to authenticate the calls to the API. See the property for more information on how to acquire this.
  • Directory: Set this to the path which will be used to store the replicated file. If not specified, the root directory will be used.

[接続のテスト]をクリックして、DSN がAzure Data Lake Storage に正しく接続できているかを確認します。[テーブル]タブに移動し、Azure Data Lake Storage のテーブル定義を確認します。

Azure Data Lake Storage データの外部データソースを作成

接続を構成したのち、外部データソースのマスター暗号化キーと資格情報データベースを作成する必要があります。

マスター暗号化キーの作成

以下のSQL コマンドを実行して新しいマスターキー[ENCRYPTION]を作成し、外部データソースの資格情報を暗号化します。

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';

資格情報データベースの作成

以下のSQL コマンドを実行してAzure Data Lake Storage に接続されている外部データソースの資格情報を作成します。

Note:Azure Data Lake Storage は認証にUser やPassword を必要としないため、IDENTITY とSECRET に任意の値を使用できます。

CREATE DATABASE SCOPED CREDENTIAL adls_creds
WITH IDENTITY = 'username', SECRET = 'password';

Azure Data Lake Storage の外部データソースを作成

以下のSQL コマンドを実行し、以前作成したDSN と資格情報を使用して、PolyBase でAzure Data Lake Storage の外部データソースを作成します。

Azure Data Lake Storage の場合、SERVERNAME を[localhost]または[127.0.0.1]に設定し、PORT を空のままにします。PUSHDOWN は、デフォルトでON に設定されているため、ODBC Driver は、サーバー側の処理を利用して複雑なクエリを実行できます。

CREATE EXTERNAL DATA SOURCE cdata_adls_source
WITH ( 
  LOCATION = 'odbc://SERVERNAME[:PORT]',
  CONNECTION_OPTIONS = 'DSN=CData Azure Data Lake Storage Sys',
  -- PUSHDOWN = ON | OFF,
  CREDENTIAL = adls_creds
);

Azure Data Lake Storage の外部テーブルを作成

外部データソースを作成したら、CREATE EXTERNAL TABLE ステートメントを使用してSQL Server インスタンスからAzure Data Lake Storage にリンクします。テーブルカラムの定義は、CData ODBC Driver for Azure Data Lake Storage によって公開されているものと一致しなければなりません。DSN Configuration Wizard の[テーブル]タブを参照し、テーブルの定義を確認できます。

CREATE TABLE ステートメントのサンプル

以下は、Azure Data Lake Storage Resources に基づいて外部テーブルを作成するステートメントの一例です。

CREATE EXTERNAL TABLE Resources(
  FullPath [nvarchar](255) NULL,
  Permission [nvarchar](255) NULL,
  ...
) WITH ( 
  LOCATION='Resources',
  DATA_SOURCE=cdata_adls_source
);

SQL Server インスタンスでAzure Data Lake Storage の外部テーブルを作成すると、ローカルデータとリモートデータを同時にクエリできるようになります。CData ODBC Driver に組み込まれているクエリ処理により、可能な限り多くのクエリ処理がAzure Data Lake Storage にプッシュされることで、ローカルのリソースと計算リソースが解放されます。ODBC Driver for Azure Data Lake Storage の30日間無料トライアルをダウンロードし、SQL Server データでライブAzure Data Lake Storage データを使い始めましょう。