Published on InterSystems Developer Community (https://community.intersystems.com)

ホーム > DSTIMEでデータを同期する

記事
Toshihiko Minamoto · 2021年9月28日 3m read
Open Exchange

DSTIMEでデータを同期する

Cachéでのデータ同期については、オブジェクトとテーブルを同期させるさまざまな方法があります。
データベースレベルでは、シャドーイングまたはミラーリングを使用できます。

これは非常によく機能し、データの一部分だけを同期する必要がある場合には、
グローバルマッピングを使用してより小さなピースにデータを分割することができます。
または、クラス/テーブルレベルで双方向の同期が必要な場合には、オブジェクト同期機能を使用することができます。


これらすべての優れた機能には次のような制限があります。
Caché/IRISからCaché/IRISにしか機能しません。

外部のデータベースにデータを同期する必要がある場合には、ほかのソリューションが必要です。

このソリューションは、かなり以前からCaché/IRISに提供されており、非常に良く機能します。
[^OBJ.DSTIME](https://docs.intersystems.com/ens20181j/csp/docbook/DocBook.UI.Page.cls?...)で解決です。

これは、Deep Seeとのデータ同期を可能にするために構築されました。
Modified,New,Deleted
をシグナルすることで、オブジェクト/テーブルの変更に関する非常に単純なジャーナルを維持します。 これはDeep Seeだけでなく、あらゆる種類のデータ同期でも有用です。

グローバル ^OBJ.DSTIMEにはこのほかに2つの機能があります。

  • 永続クラスの%SYSTEM.DSTIMEにラップされているため、通常のSQLテーブルとして変更を選択するために使用することもできます。
  • 同期されたジャンクの制御を可能にするバージョンID(DSTIMEという名前)を維持します。 - 最後のバージョンをフェッチする - バージョンを増加する - フェッチされたバージョンに基づいて、必要な場所に変更をアップロードする

純粋なSQLで同期を行う場合、SQLを理解するあらゆるデータベースをターゲットとすることができます。

クラス %SYSTEM.DSTIME を拡張して、こちらに例を置きました。SAMPLESで試すことができます。

これはCaché 2018.1.3とIRIS 2020.2で機能するコーディングの例です。
新しいバージョンと同期されません。
また、InterSystemsのサポートによるサービスはありません!
#データベース #分散データ管理 #相互運用性 #Caché #Ensemble #InterSystems IRIS #Open Exchange
InterSystems Open Exchangeで関連アプリケーションを確認してください

ソースURL:https://jp.community.intersystems.com/post/dstime%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%90%8C%E6%9C%9F%E3%81%99%E3%82%8B