PolyBase で外部データソースとしてIBM Cloud Object Storage を連携利用

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

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

IBM Cloud Object Storage ODBC Driver

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

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



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

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

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

IBM Cloud Object Storage への接続

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

Register a New Instance of Cloud Object Storage

If you do not already have Cloud Object Storage in your IBM Cloud account, follow the procedure below to install an instance of SQL Query in your account:

  1. Log in to your IBM Cloud account.
  2. Navigate to the page, choose a name for your instance and click Create. You will be redirected to the instance of Cloud Object Storage you just created.

Connecting using OAuth Authentication

There are certain connection properties you need to set before you can connect. You can obtain these as follows:

API Key

To connect with IBM Cloud Object Storage, you need an API Key. You can obtain this as follows:

  1. Log in to your IBM Cloud account.
  2. Navigate to the Platform API Keys page.
  3. On the middle-right corner click "Create an IBM Cloud API Key" to create a new API Key.
  4. In the pop-up window, specify the API Key name and click "Create". Note the API Key as you can never access it again from the dashboard.

Cloud Object Storage CRN

If you have multiple accounts, you will need to specify the CloudObjectStorageCRN explicitly. To find the appropriate value, you can:

  • Query the Services view. This will list your IBM Cloud Object Storage instances along with the CRN for each.
  • Locate the CRN directly in IBM Cloud. To do so, navigate to your IBM Cloud Dashboard. In the Resource List, Under Storage, select your Cloud Object Storage resource to get its CRN.

Connecting to Data

You can now set the following to connect to data:

  • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to avoid repeating the OAuth exchange and manually setting the OAuthAccessToken.
  • ApiKey: Set this to your API key which was noted during setup.
  • CloudObjectStorageCRN (Optional): Set this to the cloud object storage CRN you want to work with. While the connector attempts to retrieve this automatically, specifying this explicitly is recommended if you have more than Cloud Object Storage account.

When you connect, the connector completes the OAuth process.

  1. Extracts the access token and authenticates requests.
  2. Saves OAuth values in OAuthSettingsLocation to be persisted across connections.

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

IBM Cloud Object Storage データの外部データソースを作成

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

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

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

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';

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

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

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

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

IBM Cloud Object Storage の外部データソースを作成

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

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

CREATE EXTERNAL DATA SOURCE cdata_ibmcloudobjectstorage_source
WITH ( 
  LOCATION = 'odbc://SERVERNAME[:PORT]',
  CONNECTION_OPTIONS = 'DSN=CData IBM Cloud Object Storage Sys',
  -- PUSHDOWN = ON | OFF,
  CREDENTIAL = ibmcloudobjectstorage_creds
);

IBM Cloud Object Storage の外部テーブルを作成

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

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

以下は、IBM Cloud Object Storage Objects に基づいて外部テーブルを作成するステートメントの一例です。

CREATE EXTERNAL TABLE Objects(
  Key [nvarchar](255) NULL,
  Etag [nvarchar](255) NULL,
  ...
) WITH ( 
  LOCATION='Objects',
  DATA_SOURCE=cdata_ibmcloudobjectstorage_source
);

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