機能


機能


差分更新

CData Sync は差分更新をサポートしているので、毎回すべてのデータをクエリすることなく、最後のジョブ実行時から追加、変更されたデータだけをクエリしてデータウェアハウスに追加することで、データウェアハウスの差分のみを更新します。これによって通信量を抑え、スピーディな同期を実現します。

CData Sync は主に2つの差分更新の手法を使用してデータを取得します。

差分チェックカラム

更新のたびにすべてのデータを取得するのは無意味です。更新を最後に実行したとき以降に作成、または変更されたレコードだけを取得したい、という場合がほとんどです。差分チェックカラムはほとんどのデータソースで使用でき、テーブルのLast Modified カラムを使って、最後の更新時以降に変更されたレコードのみを選択して更新できます。

差分チェックカラムによる更新は、2種類の異なるデータ型を使用して実行できます。

  • DateTime 差分チェックカラム:DateTime 差分チェックカラムはほとんどのソースで事前に設定されており、他のソースでは使用するカラムを選択できます。
  • 整数ベース差分チェックカラム:Sync は整数ベース差分チェックカラム(例えば、自動で1が加算されるId)をサポートしています。

変更の追跡

場合によっては、データベースがLast Modified カラムを含まず、他のソリューションが必要になるかもしれません。変更の追跡は、削除をキャプチャしたり他のオプションを提供できることから、SQL Server とOracle データベース向けのすぐれたソリューションとなっています。変更の追跡では、追跡中のテーブルの行がDML ステートメントで変更されるたびに情報を記録します。Sync は変更があったレコード用に、内部の変更の追跡テーブルをクエリして、同期先テーブルをその変更に従って更新します。

  • SQL Server の新しいバージョンでは、SQL 変更の追跡機能を使用してレコードを取得します。
  • Oracle はOracle Flashback Query を使用して、SCN 値を更新したレコードを取得します。

削除のキャプチャ

CData Sync は自動で削除をキャプチャして、同期先データの精度を保ちます。Sync はAPI 呼び出しや変更の追跡機能を使用して、削除されたレコードのリストをソースから取得します。

ソースがCData Sync に対して削除されたデータの検出を許可している場合は、高度なジョブオプションセクションの[削除の挙動]オプションを使用して、CData Sync が削除を処理する方法を制御できます。

  • [Hard Delete]デフォルト)- ソースで削除が検出されると、Sync は同期先のテーブルからそのレコードを削除します。
  • [Soft Delete]- Sync は同期先テーブルに”_cdata_deleted” カラムを追加します。ソースで削除が検出されると、Sync は同期先の値を”true” に設定します。
  • [Skip Delete]- Sync はソースで削除されたレコードを無視します。

ソーステーブルの情報に記載されているとおり、API によっては、削除されたレコードの検出をSync に許可しない場合もあります。このようなケースでは、[削除の挙動]は無視されます。

データ型

CData Sync は多くのデータ型を認識し、データ型が厳密に定義できない場合には、データに基づいてデータ型を推論します。Sync は次のデータ型を認識します。

  • Boolean
  • Date
  • Time
  • TimeStamp
  • Decimal
  • Float
  • Double
  • SmallInt
  • Integer
  • Long
  • Binary
  • Varchar
  • GUID

既知のデータ型

多くのソースについて、そのほとんどがリレーショナルデータベースで、いくつかはAPI ですが、Sync は自動的にスキーマ用のデータ型を検出できます。例としては、SQL Server、Oracle、およびSalesforce です。ソースカラムのデータ型が既知の場合、Sync は自動で一致するデータ型を同期先に作成します。

推論されたデータ型

データ型が指定されていない場合、CData Sync はカラムのデータ型を決定するためにデータの最初の数行を解析して、データ型を推論できます。

Sync が不明なカラムサイズの文字列型を検出した場合、カラムのデフォルトサイズは2000となります。SQL Server のようなリレーショナルデータベースでは、Sync はこの型用にvarchar(2000) フィールドを作成します。

Sync は、厳密に定義されていないフィールドにデータ型を割り当てる際に、最小の型を選択します。Sync は最初の行を読み取り、各カラムに最小のデータ型を選択します。その後次の行を読み取り、データが選択したデータ型で格納できるかを確認します。格納できない場合、データ型のサイズを増やします。Sync はこの操作をRowScanDepth(50または100行)まで実行し、最後にはデータ型を指定します。

例えば、CSV のようなソースでは、Sync は”RowScan” を使用してファイルの最初の数行を読み取り、動的に各カラムのデータ型を決定します。

変換

データパイプラインにおいて変換は、レポーティングやデータ分析を容易にするためにデータを加工、整形、集計する方法の1つです。CData Sync はデータパイプラインを作成する際のデータ変換のアプローチとして、一般的な2つの手法をサポートしています。

ETL:ETL(Extract(抽出)、Transform(変換)、Load(ロード))は数十年にわたってアナリティクスの伝統的な手法となっています。この手法は、歴史的に市場を席巻してきたリレーショナルデータベースでの使用を想定して考案されました。ETL では、ロード処理の前に変換の実行が必要となります。データはデータソースから抽出され、ステージングエリアに格納されます。データは整形、修飾、変換されて最後にデータウェアハウスにロードされます。ETL の詳細は、ETL ドキュメントを参照してください。

ELT:ELT(Extract(抽出)、Load(ロード)、Transform(変換))はデータ抽出の方法の1つで、変換などのデータの変更がロード処理のあとに実行されます。現代のクラウドデータウェアハウスは膨大なストレージとスケーラビリティをそなえているため、データすべてを移動して、その後変更を加えることができます。ETL とELT の主な違いは、手順を実行する順序です。

ELT 変換はデータの同期先で実行されるSQL スクリプトです。変換はデータウェアハウスの処理能力を使って、アナリティクスとレポーティング面でのニーズに基づき素早くデータを集計、結合、整形します。データを変換とマッピングで整理することで、パイプラインの移動に合わせてデータをもっとも役立つ形式で取得できます。ジョブと同様に変換は、’,’ で区切られた複数のクエリ、スケジュールに従った実行、完了後のE メールによる通知をサポートしています。ELT の詳細は、ELT ドキュメントを参照してください。

API アクセス

CData Sync のビルトインREST API はアプリケーションの柔軟な管理を実現します。管理コンソールUI 内で実行可能なことは、RESTful API 呼び出しでも実行できます。

ジョブ管理API ではジョブの作成、更新、実行ができます。

アクション

  • ジョブの編集
  • ジョブの開始
  • ジョブステータスの取得
  • 接続の管理

API 接続について詳しくは、REST-APIドキュメントを参照してください。

ファイアウォールトラバーサル

CData Sync はどこでも実行できます。これは、いくつかのシステムがクラウドにあり、他のシステムは内部ネットワークにあるお客様に最適です。こうしたケースでは、お客様はSync をインストールしてご自身のネットワーク内で実行できるため、インターネット上にポートを公開したりファイアウォールを開いたり、VPN 接続を作成するなどの必要がなくなります。

CData Sync をソースや同期先に近い場所で実行することができるので、どこでも実行できるというSync の機能によって、遅延も大幅に減らすことができ、ETL またはELT ジョブのパフォーマンスも改善できます。

スキーマの変更

データは常に変化するものであり、Sync はこうした変化が常に正確に反映されるようにします。毎実行時、Sync はソースのスキーマと同期先のスキーマを比較して差分を探します。2つのスキーマ間で構造の違いが検出された場合、Sync は同期先のスキーマを変更し、カラムを追加したりカラムサイズを増やすことで、ソースのデータを格納できるようにします。

Sync はさまざまな変更を実行できます。次を含みます:

  • 同期先テーブルに存在しないカラムがソーステーブルに検出された場合、Sync はカラムを追加することで同期先テーブルを変更します。
  • ソースのデータ型のサイズが増える場合、Sync はカラムを更新することで同期先テーブルを変更します。これには、文字列カラムのカラムサイズを増やしたり(varchar(255) -> varchar(2000))、非文字列カラムのバイトサイズを増やす(smallint -> integer)、といった変更が含まれます。

Note:

  • Sync は、カラムがソーステーブルから削除されている場合でも、同期先テーブルからはカラムを削除しません。
  • Sync は、ソースでデータ型が更新されている場合でも、同期先カラムのサイズは小さくしません(varchar(2000) -> varchar(255))。

お問い合わせ

ご意見ご質問がございましたら、ぜひお聞かせください。E メールはこちらに送信をお願いします。