製品をチェック

製品の詳細・30日間の無償トライアルはこちら

CData Sync

MySQL HeatWave にHCL Domino のデータを統合する方法

HCL Domino データをMySQL HeatWave にCDC を使って統合する方法を解説。CData Sync を使えば、データ分析基盤への各種業務システムのデータ収集を簡単に実現できます。

加藤龍彦
デジタルマーケティング

最終更新日:2024-06-07
domino ロゴ

CData

sync ロゴ画像
MySQL ロゴ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData Sync は、数百のSaaS / DB のデータをMySQL HeatWave をはじめとする各種DB / データウェアハウスにノーコードで統合・レプリケーション(複製)が可能なETL / ELT ツールです。本記事では、HCL Domino データをCData Sync を使ってOracle Cloud Infrastructure(OCI)上のMySQL HeatWave に統合するデータパイプラインを作っていきます。

CData Sync とは?

CData Sync は、レポーティング、アナリティクス、機械学習、AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。

  1. HCL Domino をはじめとする400種類以上のSaaS / DB データに対応
  2. MySQL HeatWave など多くのレイクハウス、RDB、データレイク、データウェアハウスに同期可能
  3. 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
  4. 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
  5. フレキシブルなSQL / dbt 連携での取得データの変換

CData Sync では、1. データソースとしてHCL Domino の接続を設定、2. 同期先としてMySQL HeatWave の接続を設定、3. HCL Domino からMySQL HeatWave へのレプリケーションジョブの作成、という3つのステップだけでレプリケーション処理を作成可能です。以下に具体的な設定手順を説明します。

CData Sync をHeatWave に連携する二つの方法

CData Sync を使ってHCL Domino をHeatWave に連携するには、以下の二つの方法があります。

  1. OCI 上のLinux インスタンスにCData Sync をインストールして、その環境からSync を操作する
  2. OCI 上のLinux インスタンスをSSH 踏み台サーバーとして活用して、OCI 以外の環境にインストールしたCData Sync を操作する

今回はより簡単にセットアップ可能な①の方法をご紹介しますが、自社の環境に応じて①と②、どちらの方法を採用するかご検討ください。②の方法でHeatWave と連携する場合は、こちらの記事を参考にしていただけます。

CData Sync は無償トライアルを提供していますので、以下からダウンロードしてお試しください。

無償トライアルへ

事前準備

本手順では、Oracle Cloud Infrastructure(以下、OCI)上にMySQL HeatWave、およびCData Sync を用いたデータパイプラインを構築します。構成は以下のとおりです。

今回構築するパイプライン

MySQL HeatWave のインスタンスについては、事前に作成しているものとして進めていきます。未作成の場合は、OCI の記事を参考に作成してみてください。

それでは、OCI に接続に使用するLinux インスタンスを作ってみましょう。

作成したOCI インスタンスの画面

外部からのアクセスポートはssh 接続のみ許容していて、予めssh キーのキー・ペアを生成しておき、秘密キーをダウンロードしています。

ssh キーペアの作成画面

また、Linux 上のCData Sync へのアクセスにはOCI 上の仮想ファイアウォール、およびOS 上のファイアウォールの設定が必要になります。設定には、スマートスタイル社のこちらの記事を参考にしていただけます。

次に、MySQL HeatWave に今回使用するテーブルを作成して、Linux インスタンスにCData Sync をインストールしていきます。

HeatWave インスタンスに今回使用するデータベースを作る

MySQL 上にHCL Domino のデータを同期するテーブルを作る

まずは、MySQL 上に今回HCL Domino のデータを同期するテーブルを作っていきます。

最初に作成したLinux インスタンスに接続しましょう。各環境でのインスタンスへの接続方法はOCI の記事が参考になります。

yum install mysql などのコマンドでMySQL をインストールしたら、MySQL にHeatWave のプライベートIP アドレスを指定して接続します。

mysql -u root -p -h <プライベートIPアドレス>

接続出来たら、以下のコマンドでテーブルを作成しましょう(例としてsync を使用)。

mysql> CREATE DATABASE sync;

以下のコマンドを実行して、作成したテーブルが含まれていればOKです。

mysql> SHOW DATABASES;

Linux インスタンスにCData Sync をインストール

Linux インスタンスにCData Sync をインストール

次に、クロスプラットフォーム版CData Sync をダウンロードして、Linux インスタンスにscp コマンドなどでコピーしておきましょう。

Sync はこちらのページから30日間無償トライアルがダウンロードできますので、お気軽にお試しください。

インスタンスにssh 接続してCData Sync をインストールしていきます。

コピーしておいたCDataSync.tar.gz ファイルをtar コマンドで任意のディレクトリに展開します。

tar -xvzf CDataSync.tar.gz -C CDataSync

それでは、CData Sync を起動してみましょう!

CData Sync をインストールしたディレクトリに移動したら以下のコマンドを実行して、Sync を起動します。

java -jar sync.jar

以下のメッセージが表示されていれば、起動は成功です。

INFO: Sync is now running. Please visit http://localhost:8181 to login.

それでは、以下のアドレスにクライアントからアクセスして、Sync にアクセスしてみましょう。

http://<インスタンスのパブリックIP アドレス>:8181

以下のようなユーザー作成画面が表示されたら準備完了です!ユーザーを作成して、Sync にログインしてみましょう。

Syncのユーザー作成画面

CData Sync のデータソースとしてHCL Domino の接続を設定

クライアント側からSync にアクセスして設定

ユーザーを作成してCData Sync にログインしたら、データソースとしてHCL Domino を設定していきましょう。左の[接続]タブをクリックします。

  1. [+接続の追加]ボタンをクリックします。 コネクションの追加。
  2. [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、HCL Domino を見つけます。
  3. HCL Domino の右側の[→]をクリックして、HCL Domino アカウントへの接続画面を開きます。もし、HCL Domino のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。 データソースの追加。
  4. 接続プロパティにHCL Domino に接続するアカウント情報を入力をします。

    Domino 接続プロパティの取得・設定方法

    接続の前に

    CData 製品を経由してDomino に接続するには、「Proton コンポーネント」のインストールが必要です。通常、 Proton はAppDev パックの一部として配布されています。Proton またはAppDev パックの入手およびインストール方法については、HCL のドキュメントを参照してください。

    CData 製品は匿名アクセス、またはクライアント証明書の提供によりProton を認証できます。 これらのオプションは両方ともDomino で特定の設定が必要です。

    次の2セクションでは、接続に必要な事前設定について説明します。使用したい認証方法に対応するセクションを参照してください。

    クライアント証明書による認証の設定

    クライアント証明書による認証では、CData 製品は専用のユーザーアカウントとして接続します。このユーザーには、接続するすべてのデータベースに対するdesigner またはそれ以上のアクセス権が付与する必要があります。

    また、CData 製品を使用するためにはユーザーがインターネット証明書を取得する必要があります。サーバーコンソールで以下のコマンドを実行することで、Proton にこの証明書を作成させることができます。 APPUSER はCData 製品でアクセス設定するユーザーアカウント名、ADMINISTRATOR は証明書を受け取るユーザー名です。

    load proton --setupclient "APPUSER" --sendto "ADMINISTRATOR"

    新しい証明書は、Notes のADMINISTRATOR メールボックスから利用できます。証明書は、クライアント証明書(clientcert)およびキー(clientkey)の2ファイルに分けて送信される場合があります。 キーファイルのテキストを証明書ファイルの末尾にコピーアンドペーストして、2つのファイルを結合する必要があります。

    匿名認証の設定

    匿名アクセスでは、CData 製品はAnonymous という一般的なユーザーアカウントで接続します。 接続するすべてのデータベースには、次の2つの権限が設定される必要があります。

    • Anonymous ユーザーには、designer またはそれ以上のデータベースへのアクセス権が付与される必要があります。
    • データベースは、Maximum Internet name and password オプションがdesigner またはそれ以上のアクセスに設定される必要があります。 この設定は、データベースのAccess Control List オプションのAdvanced タブにあります。

    Domino への接続

    接続するには以下を設定します。

    • Server:Proton サービスを使ってDomino を実行中のサーバーのIP アドレス。
    • Port:Proton サービスがリッスンしているポート番号。
    • Database:.nsf 拡張子を含むデータベースファイル名。
    • SSLServerCert:サーバーが受け入れ可能なTLS/SSL 証明書に設定。コンピュータによって信頼されていない他の証明書はすべて拒否されます。または、"*" を設定するとすべての証明書を受け入れます。

    Domino への認証

    CData 製品は、クライアント証明書を使用してProton に認証することも、匿名アクセスで認証することも可能です。

    クライアント証明書による認証

    クライアント証明書で認証するには以下を設定します。

    • AuthSchemeSSLCertificate に設定。
    • SSLClientCertType:これは、証明書ファイルの形式と一致する必要があります。 通常、.pem 証明書の場合はPEMKEY_FILE、.pfx 証明書の場合はPFXFILE のいずれかになります。
    • SSLClientCert:証明書ファイルへのパス。

    匿名認証

    匿名認証を使用するには、AuthSchemeAnonymous に設定します。

    データソースの追加。
  5. [作成およびテスト]をクリックして、正しくHCL Domino に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてHCL Domino への接続が設定されました。

同期先としてMySQL HeatWave の接続を設定

次に、HCL Domino データを書き込む先(=同期先)として、MySQL HeatWave を設定します。同じく[接続]タブを開きましょう。

  1. [+接続の追加]ボタンをクリックします。
  2. [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、「MySQL」を見つけます。今回接続するのはMySQL HeatWave ですが、Sync での接続ではMySQL を使用してOKです。
  3. MySQL の右側の[→]をクリックして、MySQL HeatWave データベースへの接続画面を開きます。 MySQL HeatWave を同期先に設定。
  4. 必要な接続プロパティを入力します。MySQL HeatWave との接続には、以下のプロパティが必要です:
    • Server: HeatWave のプライベートIP アドレス。
    • Port: サーバーのポート。デフォルトは3306
    • User: HeatWave 構成時に設定したユーザー名。
    • Password: HeatWave 構成時に設定したパスワード。
    • Database: 同期先のデータベース名(本記事ではsync を使用)。

    プライベートIPアドレスとポートについてはMySQL Heatwaveの接続タブから確認できます。

    HeatWave のプライベートIP アドレスとポート。
  5. [作成およびテスト]をクリックして、正しく接続できているかをテストします。
  6. これで同期先としてMySQL HeatWave を設定できました。CData Sync では、MySQL HeatWave のデータベース名を指定するだけで、同期するHCL Domino に併せたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。

HCL Domino からMySQL HeatWave へのレプリケーションジョブの作成

CData Sync では、レプリケーションをジョブ単位で設定します。ジョブは、HCL Domino からMySQL という単位で設定し、複数のテーブルを含むことができます。レプリケーションジョブ設定には、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。 ジョブの追加Salesforce の例)。

[ジョブを追加]画面が開き、以下を入力します。

  1. 名前:ジョブの名前
  2. データソース:ドロップダウンリストから先に設定したHCL Domino を選択
  3. 同期先:先に設定したMySQL を選択
データソースの設定Salesforce の例)。

すべてのオブジェクトをレプリケーションする場合

HCL Domino のすべてのオブジェクト / テーブルをレプリケーションするには、[種類]セクションで[すべて同期]を選択して、[ジョブを追加]ボタンで確定します。

作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全HCL Domino テーブルのMySQL HeatWave への同期を行うことができます。

オブジェクトを選択してレプリケーションする場合

HCL Domino から特定のオブジェクト / テーブルを選択してレプリケーションを行うことが可能です。[種類]セクションでは、[標準(個別設定)]を選んでください。

次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。 ジョブへのタスク追加Salesforce の例)。

するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、レプリケーションを行うオブジェクトにチェックを付けます(複数選択可)。[ジョブを追加]ボタンで確定します。

タスク選択(Salesforce の例)。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、レプリケーションジョブを実行します。 作成したジョブの実行(Salesforce の例)。

それでは、実際にHeatWave にHCL Domino データが同期されているかどうか、OCI インスタンス上のMySQL Shell で確認してみましょう。

mysql> USE sync; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_sync | +----------------+ | ByName | +----------------+ 1 rows in set (0.00 sec)

ByName が同期されていますね!このように、とても簡単にHCL Domino からMySQL HeatWave への同期を行うことができました。

CData Sync の主要な機能を試してみる:スケジューリング・差分更新・ETL

ジョブのスケジュール起動設定

CData Sync では、同期ジョブを1日に1回や15分に1回などのスケジュール起動をすることができます。ジョブ画面の[概要]タブから[スケジュール]パネルを選び、[⚙設定]ボタンをクリックします。[間隔]と同期時間の[毎時何分]を設定し、[保存]を押して設定を完了します。これでCData Sync が同期ジョブをスケジュール実行してくれます。ユーザーはダッシュボードで同期ジョブの状態をチェックするだけです。 スケジュール実行設定。

差分更新

CData Sync では、主要なデータソースでは、差分更新が可能です。差分更新では、最後のジョブ実行時からデータソース側でデータの追加・変更があったデータだけを同期するので、レプリケーションのクエリ・通信のコストを圧倒的に抑えることが可能です。

差分更新を有効化するには、ジョブの[概要]タブから「差分更新」パネルを選び、[⚙設定]ボタンをクリックします。[開始日]と[レプリケーション間隔]を設定して、[保存]します。

SQL での取得データのカスタマイズ

CData Sync は、デフォルトではHCL Domino のオブジェクト / テーブルをそのままMySQL HeatWave に複製しますが、ここにSQL、またはdbt 連携でのETL 処理を組み込むことができます。テーブルカラムが多すぎる場合や、データ管理の観点から一部のカラムだけをレプリケーションしたり、さらにデータの絞り込み(フィルタリング)をしたデータだけをレプリケーションすることが可能です。

ジョブの[概要]タブ、[タスク]タブへと進みます。選択されたタスク(テーブル)の[▶]の左側のメニューをクリックし、[編集]を選びます。タスクの編集画面が開きます。

UI からカラムを選択する場合には、[カラム]タブから[マッピング編集]をクリックします。レプリケーションで使用しないカラムからチェックを外します。

SQL を記述して、フィルタリングなどのカスタマイズを行うには、[クエリ]タブをクリックし、REPLICATE [テーブル名]の後に標準SQL でフィルタリングを行います。 レプリケーションのカスタマイズ設定。

HCL Domino からMySQL HeatWave へのデータ同期には、ぜひCData Sync をご利用ください

このようにノーコードで簡単にHCL Domino データをMySQL HeatWave にレプリケーションできます。データ分析、AI やノーコードツールからのデータ利用などさまざまな用途でCData Sync をご利用いただけます。30日の無償トライアルで、シンプルでパワフルなデータパイプラインを体感してください。

日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

CData Sync の 導入事例を併せてご覧ください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。