主要RDBMSとNoSQL間でリアルタイムな
クラウドネイティブ データレプリケーションを実現
データのオフロード、キャッシュ、分析、データ レイクの移行、新しいデータ集約型アプリで必要なNoSQLへの安全かつスムーズなパスを提供します。
GlueSyncを使用して、主要なRDBMS(Microsoft SQL Server、Oracle、DB2、PostgreSQLなど)とAerospike、Couchbase、MongoDBの間でリアルタイムにデータをレプリケートできます。GlueSyncは、データセット全体(スナップショット)または変更されたデータのみ(CDC)を複製して、最適なパフォーマンスを実現します。
現在のアプリケーションに、ダウンタイムなしでGlueSyncをインストールし実行できるため、双方向レプリケーションを使用して、既存のRDBMS上にある重要なデータシステムを最新の状態に保つことも可能です。
特長
様々な構成に柔軟に対応
- 既存のオンプレミスまたはクラウドRDBMSプラットフォームからNoSQLにデータをレプリケートすることで、リアルタイムのデータ可用性を実現し、重要なレガシーシステムへのストレスを軽減します。また、必要に応じて、NoSQLデータベースの変更をRDBMSに書き戻すことで、RDBMSソースとNoSQLターゲットの間でデータを同期できます。
これによりオンプレミスRDBMSを使用しつつ、サイト間VPN経由での接続、NATまたはWAN経由で接続したクラウド上のNoSQLソリューションを活用できます。 - 既存の制限されたNoSQLプラットフォームから、スケーラブルなデータ可用性をサポートするNoSQLソリューションにデータをレプリケートできます。現在のデータ量に対して、より高いパフォーマンスと高い柔軟性を提供する新しいNoSQLプラットフォームにデータを移行するための選択肢を提供します。
無料のコミュニティエディションからエンタープライズレベルのプラットフォームにデータを移行する場合に特に便利です。 - 既存のRDBMSまたはNoSQLデータベースからAmazon S3などのビッグデータプラットフォーム、またはCSV、JSON、Kafkaなどの柔軟な出力形式にデータをレプリケートし、レプリケートされたデータの管理方法を制御するための最適なオプションを提供します。
主要RDBMSとNoSQL
GlueSyncがレプリケーションのソース/ターゲットとしてサポートする、リレーショナルデータベースおよび非リレーショナルデータベースの例です。
IBM Db2、IBM i (AS/400)、Microsoft SQL Server、 Oracle Database、 MariaDB、 MySQL、PostgreSQL、 Sybase ASE / SAP SQL Anywhere、Couchbase、 Amazon DynamoDB、Apache HBase、MongoDB
また下記のNoSQL、ビッグデータプラットフォームは、ターゲットとしてのみサポートしています。
Aerospike、Apache Kafka、 Amazon S3 、 Google Cloud Storage、RavenDB、 Solace PubSub+
クラウドネイティブ(コンテナ)
GlueSyncはコンテナとして提供されます。これにより、軽量なスタンドアロンの実行可能パッケージとして迅速に構成・展開ができ、クラウド/オンプレ環境も問いません。ノードあたりのリソースを増加しスケールアップ、GlueSyncコンテナ化コンポーネントを追加しスケールアウトと、柔軟にご利用いただけます。
また、GlueSync自体はステートレスで動作し、初期同期の実施有無やどこまで処理したかといった情報はソース/ターゲットで保持するので、障害等があっても簡単に復旧できます。
- コンテナとして提供(Docker/Kubernetes)
- ステートレスなJavaアプリケーション
- OS問わず利用可能(Windows/Linux/Mac)
- config.jsonで設定
{
"sourceHost": "RDBMSサーバのアドレス",
"sourcePort": "1433",
"sourceName": "db-name",
"sourceUsername": "db-user",
"sourcePassword": "db-pwd",
"sourceEntities": {
"DocumentType": {
"table": "CUSTOMERS",
"schema": "MYSCHEMA",
"type": "customers",
"scope": "myscope"
}
},
"sourceChangeRetention": 5,
"targetHost": "NOSQLサーバのアドレス",
"targetPort": "8091",
"targetName": "データベースまたはバケット名",
"targetUsername": "user",
"targetPassword": "pwd",
"copySourceEntitiesAtStartup": true,
"maxTransactionCountPerIteration": 100,
"maxItemsCountPerTransaction": 100,
"maxMigrationItemsCountPerIteration": 1000
}
データモデリング
RAM上にてオンザフライで実施されるデータモデリングにより、レプリケーションされるデータをカスタマイズ可能です。以下のような機能を提供しています。
フィールド(カラム)の除外、フィールド(カラム)名の変更
レプリケーションが不要なフィールドの除外はもちろん、RDBMSでありがちな長い列名をJSONドキュメント上では短い別名に変更するといったモデリングが可能です。
SQLクエリ>JSONモデリング
SQLクエリステートメント文字列をパラメータとして使用し、変換したデータをターゲットにレプリケーションできます。この機能は初期同期、増分レプリケーション両方で機能します。
select
oh.id,
oh.order_number,
oh.order_date,
c.name + ' ' + c.surname as customer,
c.phone,
os.status,
d.first_name,
ad.street + ' ' + cast(ad.street_number as varchar(max)) + ' ' + ad.city + ' ' + ad.postal_code as address,
oh.notes as order_notes
from orders_headers oh
inner join customer c on c.id = oh.customer_id
inner join orders_status os on os.id = oh.status
inner join addresses ad on ad.id = oh.address_id
inner join drivers d on oh.driver_id = d.id
where oh.status = 1;
{
"id": 100,
"order_number": "SO-71828397",
"order_date": "2021-07-29T23:01:55Z",
"customer": "Curtis Streets",
"phone": "+966 443 229 2199",
"status": "Opened",
"first_name": "James",
"address": "Rowland 107 Komsomolsk-on-Amur 681008",
"order_notes": "Networked fault-tolerant solution",
"type": "orders"
}
アドバンスドデータモデリング
データを表現したい深さのレベルを自由に定義することができ、JSONドキュメントによるアプリケーションデータモデルの柔軟性という点で幅広い可能性を提供します。
例えば電子商取引のようなユースケースでは、以下のような構造へレプリケーションできます。
- 関連するすべての顧客と配達担当者が必要とする注文情報の中に注文行をネスト
- 注文のヘッダーと行の情報を異なるJSONドキュメントに分割し、顧客と配送先住所の情報をヘッダーと同じドキュメントに保持
- 注文ヘッダー、行、顧客、住所情報を異なるJSONドキュメントに分割
対応データベース/NoSQL
- SQL > NoSQL
- ソース
- ターゲット
- DB2 LUW
- Aerospike
- IBM i (AS/400)
- AWS S3
- MariaDB
- Couchbase
- Microsoft SQL Server
- DynamoDB
- MySQL
- Google Cloud Storage
- Oracle database
- Kafka
- PostgreSQL
- MongoDB
- Sybase
- RavenDB
- Solace PubSub+
- NoSQL > RDBMS
- ソース
- ターゲット
- Couchbase
- DB2 LUW
- DynamoDB
- MariaDB
- HBase
- Microsoft SQL Server
- MongoDB
- MySQL
- Oracle database
- PostgreSQL
- Sybase
- NoSQL > NoSQL
- ソース
- ターゲット
- Couchbase
- Aerospike
- DynamoDB
- AWS S3
- HBase
- Couchbase
- MongoDB
- DynamoDB
- Google Cloud Storage
- MongoDB
- RavenDB
よくある質問
- GlueSyncはスケーリング可能ですか?
- はい、垂直スケーリングにより、ノードあたりのリソースの量が増加します。水平スケーリングはニーズに応じて異なります。SQL から NoSQL へ、および NoSQL から SQL は、それぞれ Docker コンテナにデプロイされた個別のコンポーネントです。各ノードは複数のテーブルを操作できます。テーブルワークロードはノード間で共有できず、そこからデータを消費する特定のノードにバインドされます。
- GlueSyncの冗長性はどのように管理しますか?
- 各 GlueSync ノードはそのワークロードを管理します。ノードで障害が発生した場合、そのノードはコンテナ オーケストレータによって削除され、新しいノードがジョブを処理します。
- 一貫性や整合性を保証できますか?(ネットワーク障害やInsert失敗など)
- GlueSync はステートレス サービスです。そしてソース、ターゲット両方 (SQL と NoSQL) に最後のチェックポイントが保存されます。障害が発生した場合、GlueSync はプロセスまたはコンテナが再起動された時点から再開します。システム アラートを電子メールで受信するか、コンテナ ログから取得するかを選択できます。
- 大規模なRDBMSデータセットをサポートしていますか?
- はい。データセットはトランザクションごとおよび行チャンクごとにページ分割されます。これは、GlueSync 構成ファイルを使用して微調整できます。ベンチマーク調査では、最適化され調整された構成ファイルにより、4 vCPU と 8GB RAM で 1 分あたり最大 200 万行を処理できることが実証されています。
- 大規模なデータセット全体の複製後、変更されたデータのみレプリケーションすることはできますか?
- 初期化時に、新しいテーブルのすべてのデータがスナップショットとして複製されます。その後は変更されたデータのみがレプリケートされます。初期化後はデフォルトで変更されたデータの継続的なレプリケーションのみが実施されますが、これは構成により変更も可能です。
- KafkaではなくGlueSyncを使用するメリットは何ですか?
- GlueSync は軽量で、NoSQL データベース向けに微調整されており、ネイティブ ベンダー テクノロジーをサポートしています。さらに、GlueSync は RDBMS への書き込みだけでなく、RDBMS からの読み取りも行うことができます。SQL ビューをサポートします。また、すべてのデータの初期スナップショット レプリケーションを実行し、変更されたデータのみを処理できます。Kafka はこれらの機能を提供しません。
- CDATAのようなODBCドライバではなく、GlueSyncを使用するメリットは何ですか?
- NoSQLデータベース用の ODBC ドライバは、データベース エンジンによる JSON ドキュメント データ モデルの変換を支援し、一般的なリレーショナル データベース (RDBMS) をクエリするのと同じように、アプリケーション層がそのデータ構造をクエリできるようにします。ODBC ドライバとは異なり、GlueSync はリアルタイムにSQL とNoSQL間でデータを双方向に複製できます。これは、SQLテーブルまたはビューからデータをキャプチャして転送し、それを NoSQL JSON ドキュメントに移動したり、その逆を行ったりすることを意味します。