CData Software Blog

クラウド連携のCData Software の技術ブログです。

既存テーブルへのマッピング:CData Sync

CData Sync V19 の最新ビルドでは、既存テーブルへのマッピングができるようになりましたので、その機能概要と使い方をご紹介します。

既存テーブルへのマッピングとは?

これまでは初回のレプリケートで DB へテーブルが作成される仕様でしたが、今回の機能追加により既に存在しているテーブルを選択することができます。加えて、CData Sync の画面上で、データソース側の項目とレプリケート先テーブルのカラムを紐づけることができます。

以下のように並び順など意識することなく、カラム同士を紐づけることができます。
f:id:sennanvolar44:20200306113110p:plain

別パターンとしては、複数データソースから共通したある項目だけを1つのテーブルへ連携することも可能です。例えば、サイロ化された顧客情報を1つのテーブルに連携したいケースなどが該当しますでしょうか。
以下は「名前」と「Email」だけを各データソースから連携するイメージです。
f:id:sennanvolar44:20200306153629p:plain

既存テーブルへのレプリケート手順

では、実際に既存テーブルを使ったレプリケート手順をご紹介します。シナリオは複数データソース(Salesforce、kintone)から既存テーブルへ名前とEmail を連携し、単一テーブルにレコードを溜めていく内容となります。

最初は連携したいデータソース側のテーブルなどを選んでクエリを作成します。作成したら、クエリが書いてある当たりをクリックします。
f:id:sennanvolar44:20200303175849p:plain

テーブル名のプルダウンから、「既存テーブルにマップ」をクリックします。
f:id:sennanvolar44:20200303180706p:plain

ちなみに、今回既存テーブルとして使うのは、以下の簡単なテーブルです。このテーブルに連携していくようにします。

CREATE TABLE [dbo].[UserList_CData](
    [Email] [nvarchar](200) NOT NULL PRIMARY KEY,
    [YYYYMM] [nvarchar](10) NULL,
    [DataSource] [nvarchar](200)  NULL,
    [Name] [nvarchar](200)  NULL,
    [Phone] [nvarchar](40) NULL)
;

上記テーブル(UserList_CData)を選択します。
f:id:sennanvolar44:20200306155451p:plain

カラムマッピングタブをクリックすると以下の画面が表示されます。ちょうど赤枠の矢印やバツ印のところにマウスホバーすると反転するようになっています。
連携させたい場合は矢印を、しない場合はバツを選択します。
f:id:sennanvolar44:20200303181416p:plain

また、何か文字列を設定したいときは、赤枠のアイコンをクリックします。
f:id:sennanvolar44:20200303182309p:plain

Salesforce という文字列を、「DataSource」という同期先テーブルのカラムに設定します。
f:id:sennanvolar44:20200303182518p:plain

同じように年月もセットした内容がこちらになります。この内容で実行してみましょう。
f:id:sennanvolar44:20200303182725p:plain

ジョブを実行しましたが、16件の同期で処理が完了しました。
f:id:sennanvolar44:20200306161010p:plain

同期先テーブルにも指定通りデータが入っているのが確認できます。
f:id:sennanvolar44:20200306161217p:plain

ちなみに、同期先テーブルでは主キーに Email を設定しているので、再度実行した場合でも単純な追加ではなく、MERGE でレコードが更新されるようになっています。

では、同様の手順でkintone からも Email と Name だけを「UserList_CData」テーブルにもっていきます。
f:id:sennanvolar44:20200306163201p:plain

実行結果は 26件です。 f:id:sennanvolar44:20200306162653p:plain

では先ほどと同じように「UserList_CData」テーブルのレコードを確認すると、合計が 42件になっており、また kintone から連携したレコードも入っていることから正しくレプリケートされていることがわかりました。
f:id:sennanvolar44:20200306171038p:plain

注意点

kintone など動的にスキーマ情報を取得するものは、カラムサイズがデフォルトで 2000 に設定されます。主キーなどの制約が設定されているカラムの場合で、”データソースカラムサイズ > DBテーブルカラムサイズ” となると、カラムサイズ変更が行われてエラーになってしまいます。
f:id:sennanvolar44:20200306173820p:plain

その場合は、あらかじめ既存テーブルのカラムサイズを大きくしておくか、データソースのデフォルトカラムサイズを変更することで調整が可能です。

デフォルトカラムサイズの変更方法

接続情報のAdvanced タブを表示させ、Other 項目にカラムサイズを指定します。
defaultcolumnsize=任意のサイズ; f:id:sennanvolar44:20200306180050p:plain

入力後、接続情報を保存することで、動的にスキーマ情報を取得したものもカラムサイズが指定したサイズになります。

さいごに

CData Sync は 30日間の無料評価版がございます。データソースも数多く対応しておりますので、この進化した CData Sync を是非お試しください。

www.cdata.com