Remote Oracle Database としてSalesforce Data Cloud のデータにアクセス
CData ODBC Driver for SalesforceDataCloud を使って、ODBC 標準をサポートするあらゆるアプリケーションからデータに連携できます。Oracle Database Gateway for ODBC は、ODBC データソースにリモートOracle データベースとして連携接続できるようにするHeterogeneous Services agent (異種サービスエージェント)です。この記事では、CData ODBC Driver for SalesforceDataCloud を使ってSalesforce Data Cloud からOracle にデータベースリンクを作成する方法、およびSQL*Plus ツールを介してSalesforce Data Cloud に連携してクエリする方法について説明します。SQL Developer からも、データベースリンクの作成およびクエリの実行ができます。
CData ODBC ドライバとは?
CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。
- Salesforce Data Cloud をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
- 多様なアプリケーション、ツールにSalesforce Data Cloud のデータを連携
- ノーコードでの手軽な接続設定
- 標準 SQL での柔軟なデータ読み込み・書き込み
CData ODBC ドライバでは、1.データソースとしてSalesforce Data Cloud の接続を設定、2.Oracle Database 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
CData ODBC ドライバのインストールとSalesforce Data Cloud への接続設定
まずは、本記事右側のサイドバーからSalesforceDataCloud ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
Oracle ODBC Gateway 互換性のための接続プロパティ
ドライバーには複数の接続プロパティがあり、Oracle データベースと同じようにSalesforce Data Cloud にアクセスできます。SQL*Plus およびSQL Developer のSalesforce Data Cloud を扱う場合は、以下のプロパティを設定します。Oracle ODBC Gateway との互換性のため、認証およびその他の必要な接続プロパティに加えて、以下の接続プロパティを設定する必要があります。
MapToWVarchar=False
このプロパティをSQL_WVARCHAR の代わりにSQL_VARCHAR に設定して文字列データ型をマップします。さまざまなインターナショナルキャラクタセットに対応するため、ドライバーはデフォルトでSQL_WVARCHAR を使います。unicode タイプが返されたときに、このプロパティを使ってORA-28528 Heterogeneous Services データタイプ変換エラーを防ぐことができます。
MaximumColumnSize=4000
このプロパティを設定して、カラムの最大サイズを4000文字に制限します。Oracle Database Gateway では、文字列型はカラムの最大サイズが4000である必要があります。
UpperCaseIdentifiers=True
このプロパティで、識別子を引用しないようにし設定します。このプロパティを使って、大文字の識別子をOracle にレポートします。Oracle はデフォルトで識別子を大文字で格納するため、大文字の識別子を引用から避ける必要はありません。
IncludeDualTable=True
このプロパティを設定して、Oracle DUAL 表をモックします。SQL Developer はこのテーブルを使って接続をテストします。
Heterogeneous Service Agent の初期化
下記の手順に従ってODBC Gateway をSalesforce Data Cloud のデータ に作成すると、リアルタイムSalesforce Data Cloud にOracle データベースとしてクエリすることが可能になります。
- 接続プロパティの指定がまだの場合は、DSN (データソース名)で行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。
それでは、Salesforce Data Cloud への認証方法を設定していきましょう。Salesforce Data Cloud では、OAuth 標準による認証をサポートしています。
OAuth 認証
AuthScheme をOAuth に設定してください。
デスクトップアプリケーション
CData 製品では、デスクトップでの認証を簡略化する埋め込みOAuth アプリケーションを提供しています。
また、Salesforce Data Cloud コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することも可能です。詳しくは、ヘルプドキュメントのカスタムOAuth アプリの作成をご確認ください。
接続する前に、以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH。InitiateOAuth を使用すれば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要がなくなります
- OAuthClientId(カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントID
- OAuthClientSecret(カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット
接続すると、CData 製品がデフォルトブラウザでSalesforce Data Cloud のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えてください。
以下のようにドライバーがOAuth プロセスを完了します。
- コールバックURL からアクセストークンを取得します
- 古いトークンの期限が切れた際は、新しいアクセストークンを取得します
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化します
Web アプリケーションやヘッドレスマシンを含むその他のOAuth 認証方法については、ヘルプドキュメントをご確認ください。
Microsoft ODBC データソースアドミニストレーターで必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。
-
oracle-home-directory\hs\admin フォルダにinitmysalesforcedcdb.ora ファイルを作成し、以下の設定を追加します:
HS_FDS_CONNECT_INFO = "Your-SalesforceDataCloud-DSN"
-
oracle-home-directory\NETWORK\admin にあるlistener.ora ファイルに、次のアドレスを追加します:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = mysalesforcedcdb) (ORACLE_HOME = your-oracle-home) (PROGRAM = dg4odbc) ) ) -
oracle-home-directory\NETWORK\admin にあるtnsnames.ora ファイルに、次の接続ディスクリプタを追加します:
mysalesforcedcdb = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) (CONNECT_DATA=(SID=mysalesforcedcdb)) (HS=OK) ) 次のコマンドを使って設定をテストします:
tnsping mysalesforcedcdb
-
SQL*Plus を起動し、次のコマンドでデータベースリンクを作成します:
CREATE DATABASE LINK MYSALESFORCEDCDB CONNECT TO "user" IDENTIFIED BY "password" USING 'mysalesforcedcdb';
これで、SQL*Plus で次のようなクエリを実行できます:
SELECT * from Account@mysalesforcedcdb;
Salesforce Data Cloud からOracle Database へのデータ連携には、ぜひCData ODBC ドライバをご利用ください
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。