【ノーコード】Databricks データレイクハウスにOracle Eloqua Reporting のデータを連携・統合する方法
データ分析基盤へのOracle Eloqua Reporting のデータの取り込みのニーズが高まっています。CData Sync は、数百のSaaS / DB のデータをDatabricks をはじめとする各種DB / データウェアハウスにノーコードで統合・転送(複製)が可能なETL / ELT ツールです。
本記事では、Oracle Eloqua Reporting のデータをCData Sync を使ってDatabricks に統合するデータパイプラインを作っていきます。
CData Sync とは?
CData Sync は、レポーティング、アナリティクス、機械学習、AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL / ELT ツールで、以下の特徴を持っています。
- Oracle Eloqua Reporting をはじめとする数百種類のSaaS / DB データに対応
- Databricks など多くのRDB、データレイク、データストア、データウェアハウスに同期可能
- 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
- 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
- フレキシブルなSQL / dbt 連携での取得データの変換
CData Sync では、1.データソースとしてOracle Eloqua Reporting の接続を設定、2.同期先としてDatabricks の接続を設定、3.Oracle Eloqua Reporting からDatabricks への転送ジョブの作成、という3つのステップだけで転送処理を作成可能です。以下に具体的な設定手順を説明します。
1. データソースとしてOracle Eloqua Reporting の接続を設定
まずはじめに、CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は、本記事の製品リンクから「CData Sync」をクリックしてCData Sync をインストールしてください。30日間の無償トライアルをご利用いただけます。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソース側にOracle Eloqua Reporting を設定していきましょう。左の「接続」タブをクリックします。
- 「+接続の追加」ボタンをクリックします。
- 「データソース」タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Oracle Eloqua Reporting を見つけます。
- Oracle Eloqua Reporting の右側の「→」をクリックして、Oracle Eloqua Reporting アカウントへの接続画面を開きます。もし、Oracle Eloqua Reporting のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、「ダウンロード」をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにOracle Eloqua Reporting に接続するアカウント情報を入力をします。
Oracle Eloqua Reporting では、以下の認証方法に対応しています。
- Basic 認証(ユーザーとパスワード)
- OAuth 2.0 コードグラントフロー
- OAuth 2.0 パスワードグラントフロー
Basic 認証(ユーザーとパスワード)
ユーザーとパスワードで認証するには、以下のプロパティを設定します。
- AuthScheme: Basic を指定します。
- Company: Oracle Eloqua Reporting アカウントに関連付けられた会社名を指定します。
- User: ログインアカウント名を指定します。
- Password: ログインパスワードを指定します。
OAuth 認証(コードグラントフロー)
OAuth コードグラントフローで認証するには、AuthScheme を OAuth に設定し、カスタム OAuth アプリケーションを作成します。カスタム OAuth アプリケーションの作成方法については、ヘルプドキュメントをご参照ください。
続いて、以下のプロパティを設定します。
- InitiateOAuth: GETANDREFRESH を指定します。OAuthAccessToken の自動取得と更新に使用します。
- OAuthClientId: アプリケーション登録時に割り当てられたクライアント ID を指定します。
- OAuthClientSecret: アプリケーション登録時に割り当てられたクライアントシークレットを指定します。
- CallbackURL: アプリケーション登録時に定義したリダイレクト URI を指定します。
接続すると、デフォルトブラウザで Oracle Eloqua Reporting の OAuth エンドポイントが開きます。ログインしてアプリケーションに権限を付与してください。アクセストークンの有効期限が切れると、ドライバーが自動的に更新します。
OAuth 認証(パスワードグラントフロー)
OAuth パスワードグラントフローでは、OAuth アプリケーションの資格情報とユーザー資格情報を組み合わせて認証できます。ブラウザでの手動による権限付与は必要ありません。この認証方法を使用するには、OAuth アプリを作成する必要があります(ヘルプドキュメントを参照)。
以下のプロパティを設定します。
- AuthScheme: OAuthPassword を指定します。
- Company: 会社の一意の識別子を指定します。
- User: ログインアカウント名を指定します。
- Password: ログインパスワードを指定します。
- OAuthClientId: カスタム OAuth アプリケーション登録時に割り当てられたクライアント ID を指定します。
- OAuthClientSecret: カスタム OAuth アプリケーション登録時に割り当てられたクライアントシークレットを指定します。
- 「作成およびテスト」をクリックして、正しくOracle Eloqua Reporting に接続できているかをテストして保存します。これで転送のデータソースとしてOracle Eloqua Reporting への接続が設定されました。
2. 同期先としてDatabricks の接続を設定
次に、Oracle Eloqua Reporting のデータを書き込む先(=同期先)として、Databricks を設定します。同じく「接続」タブを開きます。
- 「+接続の追加」ボタンをクリックします。
- 「同期先」タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Databricks を見つけます。
- Databricks の右側の「→」をクリックして、Databricks データベースへの接続画面を開きます。もし、Databricks のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、「ダウンロード」をクリックすると、CData Sync にコネクタがインストールされます。
- Databricks クラスターに接続するために、必要なプロパティを以下のとおりに設定します。
NOTE:必要なプロパティの値は、Databricks インスタンスでクラスターに移動して目的のクラスターを選択し、Advanced Options の下にあるJDBC/ODBC タブを選択することで見つけることができます。
- Server:Databricks クラスターのサーバーのホスト名に設定します。
- HTTPPath:Databricks クラスターのHTTP パスに設定します。
- Token:パーソナルアクセストークンに設定します。この値は、Databricks インスタンスのユーザー設定ページに移動してPersonal access tokens タブを選択することで取得できます。
- 「作成およびテスト」をクリックして、正しく接続できているかをテストします。
- これで同期先としてDatabricks を設定できました。CData Sync では、Databricks のデータベース名を指定するだけで同期するOracle Eloqua Reporting に併せたテーブルスキーマを自動的に作成(CREATE TABLE)してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
3. Oracle Eloqua Reporting からDatabricks への転送ジョブの作成
CData Sync では、転送をジョブ単位で設定します。ジョブは、Oracle Eloqua Reporting からDatabricks という単位で設定し、複数のテーブルを含むことができます。転送ジョブ設定には、「ジョブ」タブに進み、「+ジョブを追加」ボタンをクリックします。
「ジョブを追加」画面が開き、以下を入力します:
- 名前:ジョブの名前
- データソース:ドロップダウンリストから先に設定したOracle Eloqua Reporting を選択
- 同期先:先に設定したDatabricks を選択
すべてのオブジェクトを転送する場合
Oracle Eloqua Reporting のすべてのオブジェクト / テーブルを転送するには、「種類」セクションで「すべて同期」を選択して、「ジョブを追加」ボタンで確定します。
作成したジョブ画面で、右上の「▷実行」ボタンをクリックするだけで、全Oracle Eloqua Reporting テーブルのDatabricks への同期を行うことができます。
オブジェクトを選択して転送する場合
Oracle Eloqua Reporting から特定のオブジェクト / テーブルを選択して転送を行うことが可能です。「種類」セクションでは、「標準(個別設定)」を選んでください。
次に「ジョブ」画面で、「タスク」タブをクリックし、「タスクを追加」ボタンをクリックします。 
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、転送を行うオブジェクトにチェックを付けます(複数選択可)。「ジョブを追加」ボタンで確定します。
作成したジョブ画面で、「▷実行」ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、転送ジョブを実行します。
このようにとても簡単にOracle Eloqua Reporting からDatabricks への同期を行うことができました。
CData Sync の主要な機能を試してみる:スケジューリング・差分更新・ETL
ジョブのスケジュール起動設定
CData Sync では、同期ジョブを1日に1回や15分に1回などのスケジュール起動をすることができます。ジョブ画面の「概要」タブから「スケジュール」パネルを選び、「⚙設定」ボタンをクリックします。「間隔」と同期時間の「毎時何分」を設定し、「保存」を押して設定を完了します。これでCData Sync が同期ジョブをスケジュール実行してくれます。ユーザーはダッシュボードで同期ジョブの状態をチェックするだけです。
差分更新
CData Sync では、主要なデータソースでは、差分更新が可能です。差分更新では、最後のジョブ実行時からデータソース側でデータの追加・変更があったデータだけを同期するので、転送のクエリ・通信のコストを圧倒的に抑えることが可能です。
差分更新を有効化するには、ジョブの「概要」タブから「差分更新」パネルを選び、「⚙設定」ボタンをクリックします。「開始日」と「転送間隔」を設定して、「保存」します。
SQL での取得データのカスタマイズ
CData Sync は、デフォルトではOracle Eloqua Reporting のオブジェクト / テーブルをそのままDatabricks に複製しますが、ここにSQL、またはdbt 連携でのETL 処理を組み込むことができます。テーブルカラムが多すぎる場合や、データ管理の観点から一部のカラムだけを転送したり、さらにデータの絞り込み(フィルタリング)をしたデータだけを転送することが可能です。
ジョブの「概要」タブ、「タスク」タブへと進みます。選択されたタスク(テーブル)の「▶」の左側のメニューをクリックし、「編集」を選びます。タスクの編集画面が開きます。
UI からカラムを選択する場合には、「カラム」タブから「マッピング編集」をクリックします。転送で使用しないカラムからチェックを外します。
SQL を記述して、フィルタリングなどのカスタマイズを行うには、「クエリ」タブをクリックし、REPLICATE 「テーブル名」の後に標準SQL でフィルタリングを行います。
Oracle Eloqua Reporting からDatabricks へのデータ同期には、ぜひCData Sync をご利用ください
このようにノーコードで簡単にOracle Eloqua Reporting のデータをDatabricks に転送できます。データ分析、AI やノーコードツールからのデータ利用などさまざまな用途でCData Sync をご利用いただけます。30日の無償トライアルで、シンプルでパワフルなデータパイプラインを体感してください。
日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
CData Sync の 導入事例を併せてご覧ください。