データベース移行や連携を進める上で、負担になりがちな作業の一つにターゲットテーブルの用意が挙げられます。
連携元と連携先が同じデータベース種であればテーブル定義のエクスポート/インポートも容易となりますが、これが異種データベースの場合は単純なエクスポート/インポートは基本的に利用できず、連携先データベースのルールに応じてカラム型やサイズ、クエリ本文の修正が必要となります。
さらには、連携先テーブルでカラムを増やし更新日時や削除等のフラグを入力したい、連携不要なカラムは予めテーブルから除外しておきたいなど、要件によってはより複雑性が増していきます。
このような声を受けて、Gluesyncでは2.1.6よりターゲットテーブル作成機能を追加しました。
同機能によって、Gluesync UI上でエンティティ(レプリケーションジョブ)を作成する過程で連携先のターゲットテーブルも作成できるようになります。

今回は実施兄ソースをIBM i (AS/400)、ターゲットをMicrosoft SQL Serverとして構成してみました。
前提条件
パイプラインで指定されたターゲットデータベース接続に利用するユーザにはDDL操作権限が付与されており、テーブル作成が許可されている必要があります。
テーブル作成操作
まず、ソース側のIBM i (AS/400)のIIOライブラリには4つのテーブルが存在し、この内EMPLOYEE2をレプリケーション対象とします。

ターゲット側のMicrosoft SQL Serverを確認すると、EMPLOYEE2というテーブルは存在していないことがわかります。

ソーステーブルにチェックを入れることで、どのスキーマに含まれるテーブルへレプリケーションするか指定します。

Table項目をクリックすることで、スキーマ内に含まれるテーブルが自動的に出力されますが、存在しないためリストには出力されません。

Table項目で、ターゲットスキーマ内には存在しない、作成したいテーブル名を入力すると、Table テーブル名 not found. Create テーブル名と出力され、クリックすることで追加のポップアップが出力されます。

フィールドエディタ画面左がソーステーブル、右がターゲットテーブルを示しています。
この時、カラム型や主キー、インデックス制約といったソーステーブル構造をGluesyncが読み取り、ターゲット側のデータベース種に合わせて自動変換しています。

この画面より、必要に応じてカラム名やデータ型変更、カラムのチェックを外しテーブル作成に含めないなどUI上で更新も可能です。
今回は、3つのカラムのみチェックを入れて作成していきます。

保存ボタンをクリックすると発行されるCREATE SQLクエリのレビューが可能であり、同画面では手動入力も可能なため必要に応じてより細かく調整が可能です。
コード・スニペットをコピーするをクリックすると、生成したCREATE SQLクエリ文のコピーも可能です。
テーブルの作成をクリックすると、実際にターゲット側でCREATE SQLクエリが発行されます。

ターゲット側のMicrosoft SQL Serverを改めて確認すると、先ほどは存在しなかったEMPLOYEE2が生成されており、カラム数もGluesync UI上で選択した3つのみとなっていることがわかります。

あとはGluesync UI上で画面を進めることで、テーブル作成と合わせてエンティティ(レプリケーションジョブ)作成も完了します。
制限事項・考慮事項
Gluesync公式ドキュメントに記載されておりますように、Gluesyncではソーステーブル定義を読み取り自動変換を実施しますが、ユーザ独自で定義されたデータ型等は変換ができず手動での調整が必要になる場合があります。
また、外部キー制約も自動読み取り、変換がサポートされないため、このようなテーブルも手動での調整が必要になります。
関連したトピックス
- レプリケーション検証機能(Validate)によるトランザクション情報取得チェック
- GlueSyncでNoSQL活用を加速:導入編
- クエリ実行とデータベースパフォーマンスの理解 ,そしてそれらがアプリケーションに与える影響 [DPA]
- DBMotoを使用してデータベース変更用の監査ログの作成方法【リアルタイムレプリケーションツールDBMoto】
- Gluesync for MySQL 8+:リアルタイム同期のための高性能な変更データキャプチャ(CDC)の実装
- Gluesync 2.0: 新しい統合とパフォーマンス向上へ
- SQL Server の Datetime がMySQLの varchar にマップ【リアルタイムレプリケーションツールDBMoto】
- GlueSyncがAWS S3(互換も含む)に対応:分析、データレイク、コールドストレージ向けに、AWS S3 へのリアルタイムデータレプリケーションがシンプルに
- DBMotoレプリケーションに必要なOracleユーザ権限
- Oracle RAC One Node環境を構成してみました 補足 Syniti Replicateを使用して異種DBへ連携

RSSフィードを取得する