Slide 1

Slide 1 text

Gluesync 2

Slide 2

Slide 2 text

Gluesync 2とは • システム間でのデータ同期ツール • RDBMS • NoSQL/ドキュメントストア • ビッグデータ/データレイク/クラウドストレージ • イベントストリーミング/メッセージキュー

Slide 3

Slide 3 text

システム間でのデータ同期

Slide 4

Slide 4 text

ソース(変更追跡)対応一覧

Slide 5

Slide 5 text

ターゲットのみ対応一覧

Slide 6

Slide 6 text

Gluesync 2の特徴 • リアルタイム変更追跡:CDC • • コンテナで動作 • • データ集約/変換/フィルタ オンプレ/クラウド Web UIとAPI Web UIから簡単管理 • 外部モジュールやSDKで機能拡充 •

Slide 7

Slide 7 text

Core Hubと 接続プラグイン Core Hub • プラットフォームごとに カスタマイズ • Web UI/Rest APIで構成 • 接続と変更追跡の最適化 • データ処理 • 冗長化/負荷分散 (coming soon)

Slide 8

Slide 8 text

用語 • • • • • パイプライン:データシステム(スキーマ)の組み合わせ エージェント:各データシステムの接続プラグイン エンティティ:ソース/ターゲットテーブルの組み合わせ スナップショット:全件(初期)同期 CDC:変更追跡により差分同期 エージェ ト パ エ ティティ エ ティティ エージェ ト

Slide 9

Slide 9 text

構成と管理 • 各種コンテナ環境にデプロイ可能 • • • • • • • Docker Podman Kubernetes OpenShift Amazon EKS Google Kubernetes Engine Azure Kubernetes Service

Slide 10

Slide 10 text

Docker+Gluesyncを簡単 • • • ストール Windows/Linux用インストーラを用意 Linux版はPodmanも可 要リポジトリアクセス

Slide 11

Slide 11 text

システム要件 最小 推奨(特にWindows) CPU 4 vCPUまたはコア 8 vCPUまたはコア RAM 8 GB 16 GB ディスク 100 GB 200 GB ネットワーク • • • • .docker.io .docker.com *.maven.org api.backoffice.molo17.com

Slide 12

Slide 12 text

OTAアッ デート • • リポジトリへアクセス可能なら Web UIから簡単アップデート GA以外も選択可能

Slide 13

Slide 13 text

オフ • コンテナランタイムの事前インストール • • • -trial-kit.zip オフラインインストーラースクリプト(MOLO17サイト) • • • gluesync-platform-windows-amd64.tar.gz gluesync-platform-linux-amd64.tar.gz キットファイル(評価案内メールのURLから) • • Docker EngineとDocker Compose 管理者アクセス プラットフォームアーカイブ(MOLO17サイト) • • • ストール docker-installer-windows-offline.ps1 docker-installer-linux-offline.sh 同ディレクトリに配置し、スクリプトを実行

Slide 14

Slide 14 text

オフ • アッ デート アップデートパッケージ(MOLO17サイト) • • update-YYYY-MM-DD-ga-windows.tar.gz update-YYYY-MM-DD-ga-linux-amd64.tar.gz • アップデートスクリプト(インストールディレクトリ) • • C:¥Program Files¥Gluesync¥update.ps1 • /opt/gluesync/update.sh インストールディレクトリに アップデートパッケージを配置しスクリプトを実行

Slide 15

Slide 15 text

構成のバックアッ とリストア:Automator • • • 環境のクローン作製 災害復旧 変更管理 • パイプライン構成の 全体または一部の エクスポートとインポート スキーマ情報の一括変更 •

Slide 16

Slide 16 text

デモ • オフラインインストール(動画) • 構成のバックアップとリストア

Slide 17

Slide 17 text

柔軟な同期構成を実現する豊富な機能 • CDC/スナップショット共通機能 • • • • • • • • • • バルクロード フィルタリング 論理PK テクニカルフィールド フィールド関数 ユーザー定義関数(UDF) チェーン カスタムドキュメントキー Parquetファイルサポート TTL (Time To Live)タグ • スナップショット(全件)タスク • • • • • • Upsert(既存データとのマージ) Truncate+Insert ターゲットテーブルの選択的削除 並列書き込み処理 並列読み込み処理 CDC • • • 再帰保護(双方向同期) ビフォーアフターイメージ 特定操作のみの同期

Slide 18

Slide 18 text

運用や構成を簡単にする補助機能 • パイプライン/エンティティ構成 • • • • • • • • • オブジェクトブラウザ フィールドエディタ スキーマロック ターゲットテーブル作成 グループ 開始と一時停止 メンテナンスモード Chronos(スケジュール実行) Automator+ Bootstrapper (YAMLでの構成 エクスポート/インポート) • 運用補助 • • • • • • • • • • エンティティダッシュボード クエリスタジオ 通知ハブ Email/Webhook通知 スマートアラート Prometheus+Grafana ライセンス管理 Conductor(モジュール管理) RBACとSSO(OIDC認証) その他 • REST API • SDK(Python、Node.js)

Slide 19

Slide 19 text

柔軟な同期構成を実現する豊富な機能 • CDC/スナップショット共通機能 • • • • • • • • • • バルクロード フィルタリング 論理PK テクニカルフィールド フィールド関数 ユーザー定義関数(UDF) チェーン カスタムドキュメントキー Parquetファイルサポート TTL (Time To Live)タグ • スナップショット(全件)タスク • • • • • • Upsert(既存データとのマージ) Truncate+Insert ターゲットテーブルの選択的削除 並列書き込み処理 並列読み込み処理 CDC • • • 再帰保護(双方向同期) ビフォーアフターイメージ 特定操作のみの同期

Slide 20

Slide 20 text

バルクロード • IBM i/PostgreSQL CSVへエクスポートし、ステージングスキーマ内でCOPYステートメントにより取り込み • Oracle アレイバインディング使用、バインディングが不可能な場合は、OracleBulkCopyを使用 • • SQL Server:SqlBulkCopy使用 • Snowflake CSVをアップロードし、COPY INTO … FILE_FORMAT=(NULL_IF=(‘NULL’))でロード • Amazon Redshift CSVをS3へアップロードし、並列取り込みのためにCOPYコマンドを使用 • Google BigQuery ParquetをGCSへアップロードし、アトミックな更新のために WRITE_TRUNCATEでロードジョブをトリガーします。 • 等々 MySQL 一時的なステージングテーブへCSVから生成された複数行INSERT文により取り込み

Slide 21

Slide 21 text

スナッ ショットだけでなくCDCでも ① 収集:CDCイベントをキャプチャ ② 組み合わせ:バッファ上で同一PKに対する変更をマージ ③ ステージ:バルクロードで ステージングテーブルへロード トランザクションログ ④ エンリッチ: ソースログに含まれていない 列をバックフィル ステージングテーブル ⑤ 適用:可能な限り Delete+Insertで適用、 不要になったステージング テーブルなどを切り捨て

Slide 22

Slide 22 text

同期される値のフィルタリ • スナップショット:フィルタに一致する行のみがターゲットへ同期 • CDC:変更後の値がフィルタに一致しなくなった場合、その行をDELETE • オペレータ: • • • • = > < >= • • • • <= != in Not in • • • Is null Not null Regex

Slide 23

Slide 23 text

論理PK • 主キーが存在しない場合に一意となるカラムを手動指定可能

Slide 24

Slide 24 text

テクニカルフィールド • 同期時に使用されるID情報やデータベース固有の情報を同期対象に 対象フィールド名 データ型 説明 値の例 _TRANSACTION_ID VARCHAR / TEXT ソース上のトランザクションID HABrg0sIqzHfVOGdz… _TRANSACTION_TIMESTAMP BIGINT / DATETIME ソース上でトランザクションがコミットされたタイムスタンプ(エポック) 1717604307000 _TRANSACTION_OPERATION CHAR(1) / VARCHAR イベントをトリガーしたCRUD操作の種類: I= 挿入、U= 更新、D= 削除、S= スナップショット / 初期ロード U _TRANSACTION_USER VARCHAR ソース上でトランザクションを実行したユーザー app_sales_prod _RRN_COLUMN BIGINT IBM i (AS400) ソースでの相対レコード番号 1234567 _RECEIVER_LIBRARY VARCHAR IBM i (AS400) ソースでのジャーナルレシーバーを含むライブラリ QGPL _RECEIVER_NAME VARCHAR IBM i (AS400) ソースでのジャーナルレシーバーの名前 RCV0001 _SEQUENCE_NUMBER BIGINT IBM i (AS400) ソースでのジャーナルシーケンス番号 987654321 _ROWID VARCHAR Oracle CDCソースでのOracleデータベース内の一意の物理行識別子 AAAB12AADAAAAwPAAA

Slide 25

Slide 25 text

フィールド関数 • • • • 日付/時刻<>文字列などの各種変換 テキストのトリム ローカルタイムスタンプ 各種固定値 • 各種個人情報のマスクまたはランダム化 • • • • クレジットカード番号 メールアドレス 電話番号 IBAN

Slide 26

Slide 26 text

ユーザー定義関数(UDF) • Javaのスクリプトを定義 • CDCにおける以下 イベントをフック ※スナップショットはInsert • • • • Insert Update Delete 更新前後のデータを受け取り、 ターゲットに反映するデータをスクリプトで指定可能

Slide 27

Slide 27 text

チェー • 特定順序の操作を保証 >外部キー制約を維持 • 親子関係に基づき 自動並べ替え • 手動並べ替えも可能 ※現在はSQL Serverのみ対応

Slide 28

Slide 28 text

柔軟な同期構成を実現する豊富な機能 • CDC/スナップショット共通機能 • • • • • • • • • • バルクロード フィルタリング 論理PK テクニカルフィールド フィールド関数 ユーザー定義関数(UDF) チェーン カスタムドキュメントキー Parquetファイルサポート TTL (Time To Live)タグ • スナップショット(全件)タスク • • • • • • Upsert(既存データとのマージ) Truncate+Insert ターゲットテーブルの選択的削除 並列書き込み処理 並列読み込み処理 CDC • • • 再帰保護(双方向同期) ビフォーアフターイメージ 特定操作のみの同期

Slide 29

Slide 29 text

ターゲットNoSQL用のカスタムドキュメ トキー • 複数フィールドと接頭、接尾辞を組み合わせ

Slide 30

Slide 30 text

Parquetファ ルサポート • ファイル形式保存の以下ターゲットでCSV、JSONに加えて 高パフォーマンスなParquet形式もサポート • AWS S3(およびS3互換ストレージ) • Google Cloud Storage • Azure Data Lake Gen 2 • SMB/NFS/FTP/WebDAV

Slide 31

Slide 31 text

TTL (Time To Live)タグ付け • ターゲットへの同期時にTTLをタグ付け、指定期間後にそのレコードを自動削除 ※Aerospike、Couchbase、RavenDBで対応

Slide 32

Slide 32 text

柔軟な同期構成を実現する豊富な機能 • CDC/スナップショット共通機能 • • • • • • • • • • バルクロード フィルタリング 論理PK テクニカルフィールド フィールド関数 ユーザー定義関数(UDF) チェーン カスタムドキュメントキー Parquetファイルサポート TTL (Time To Live)タグ • スナップショット(全件)タスク • • • • • • Upsert(既存データとのマージ) Truncate+Insert ターゲットテーブルの選択的削除 並列書き込み処理 並列読み込み処理 CDC • • • 再帰保護(双方向同期) ビフォーアフターイメージ 特定操作のみの同期

Slide 33

Slide 33 text

INSERTとUPSERT • INSERT • • ターゲットを自動Truncateまたは空であることが前提 全レコードをInsertで処理するため高速 Insert Insert Insert • UPSERT※バルクロードの有無で動作が少々異なります。 • • ターゲットに既存データが含まれる場合も安全に処理 既存データをチェックし、一致する場合、マージするため低速 Insert Merge Merge

Slide 34

Slide 34 text

ターゲットテーブルの選択的削除 • Truncateではなく一部のみをスナップショット(INSERT)前に自動削除 • フィルタリングと同様のオペレータを利用可能

Slide 35

Slide 35 text

並列での読み取りと書き込み • 読み取りの並列化 • 単一カラムの値を基に分割 • • • • • 分割の仕方を調整可能 1~10分割を指定可能 書き込みの並列化 • • • 数値カラム 日付、タイムスタンプカラム 読み取ったデータを並列書き 込み 1~8並列を指定可能 ソースとターゲットの パフォーマンス差に注意

Slide 36

Slide 36 text

柔軟な同期構成を実現する豊富な機能 • CDC/スナップショット共通機能 • • • • • • • • • • バルクロード フィルタリング 論理PK テクニカルフィールド フィールド関数 ユーザー定義関数(UDF) チェーン カスタムドキュメントキー Parquetファイルサポート TTL (Time To Live)タグ • スナップショット(全件)タスク • • • • • • Upsert(既存データとのマージ) Truncate+Insert ターゲットテーブルの選択的削除 並列書き込み処理 並列読み込み処理 CDC • • • 再帰保護(双方向同期) ビフォーアフターイメージ 特定操作のみの同期

Slide 37

Slide 37 text

双方向同期を実現する再帰保護設定 • Gluesync用ユーザを用意 • • CDC時にトランザクション実行ユーザを考慮 Gluesync自身が実行したトランザクションは同期しないことで 無限ループを防止 • パイプラインを各方向で作成 全てのエージェントでRecursion Protectionを有効化 • コンフリクト時には常に後勝ちであることに注意

Slide 38

Slide 38 text

ビフォーアフター メージ • RDBMSの場合 • • • トランザクションログ PK 前 後 • • NoSQLの場合 • • • フィールドレベルで比較 変更されたカラムのみをターゲットへ 同期対象でないカラムへの更新は 自動スキップ 変更前後の値が同一のレコードは 自動スキップ レコードレベルでの比較 変更前後の値が同一のレコードは 自動スキップ 無効化も可能

Slide 39

Slide 39 text

特定操作のみの許可 • 以下などの用途で利用 • ヒストリーテーブル • • 監査証跡用にDELETEとTRUNCATEを無効化 データアーカイブ • INSERTのみを許可し、データを蓄積

Slide 40

Slide 40 text

運用や構成を簡単にする補助機能 • パイプライン/エンティティ構成 • • • • • • • • • オブジェクトブラウザ フィールドエディタ スキーマロック ターゲットテーブル作成 グループ 開始と一時停止 メンテナンスモード Chronos(スケジュール実行) Automator+ Bootstrapper (YAMLでの構成 エクスポート/インポート) • 運用補助 • • • • • • • • • • エンティティダッシュボード クエリスタジオ 通知ハブ Email/Webhook通知 スマートアラート Prometheus+Grafana ライセンス管理 Conductor(モジュール管理) RBACとSSO(OIDC認証) その他 • REST API • SDK(Python、Node.js)

Slide 41

Slide 41 text

エ ティティの構成を簡単に • オブジェクトブラウザ • • • 同期対象を簡単選択 名前で検索も可能 ターゲットは 同名を自動選択

Slide 42

Slide 42 text

構成を簡単にカスタマ ズ • フィールドエディタ • • ターゲットテーブルの変更 マッピング構成を変更

Slide 43

Slide 43 text

テーブル構造が異なる場合は? • スキーマのロック解除 • • デフォルトでは同一構成の前提でロック ロック解除すれば • 型の変更 • 列の追加、削除(テクニカルフィールドの導入など) • フィールド関数やユーザ定義関数UDFの利用

Slide 44

Slide 44 text

ターゲットテーブルが存在しない場合は? • Create文を生成、 テーブル作成が可能

Slide 45

Slide 45 text

運用や構成を簡単にする補助機能 • パイプライン/エンティティ構成 • • • • • • • • • オブジェクトブラウザ フィールドエディタ スキーマロック ターゲットテーブル作成 グループ 開始と一時停止 メンテナンスモード Chronos(スケジュール実行) Automator+ Bootstrapper (YAMLでの構成 エクスポート/インポート) • 運用補助 • • • • • • • • • • エンティティダッシュボード クエリスタジオ 通知ハブ Email/Webhook通知 スマートアラート Prometheus+Grafana ライセンス管理 Conductor(モジュール管理) RBACとSSO(OIDC認証) その他 • REST API • SDK(Python、Node.js)

Slide 46

Slide 46 text

ルー • 論理的な割り当て >動作には影響なし • 複数エンティティを まとめて設定 • 色付きで見やすく表示

Slide 47

Slide 47 text

個別エ ティティの開始と一時停止 • • • いつでも一時停止可能 同期開始時にチェックポイントのリセット有無 初期スナップショットの実行有無 • スナップショットの方式などの設定

Slide 48

Slide 48 text

パ • • • のメ テナ スモード まるっと一時停止可能 データベースからも完全に切断 メンテナンスモード中は設定変更不可

Slide 49

Slide 49 text

Chronos(スケジュール実行) • • • • • • メンテナンスモード切替 一時停止 CDC開始 スナップショットのみ スナップショット後、CDC開始 スナップショット時のTRUNCATE有無 • UIベースの日次/週次スケジュール設定 • CRON形式での柔軟なスケジュール設定 • パイプライン、グループ、エンティティ単位

Slide 50

Slide 50 text

運用や構成を簡単にする補助機能 • パイプライン/エンティティ構成 • • • • • • • • • オブジェクトブラウザ フィールドエディタ スキーマロック ターゲットテーブル作成 グループ 開始と一時停止 メンテナンスモード Chronos(スケジュール実行) Automator+ Bootstrapper (YAMLでの構成 エクスポート/インポート) • 運用補助 • • • • • • • • • • エンティティダッシュボード Prometheus+Grafana クエリスタジオ 通知ハブ Email/Webhook通知 スマートアラート Conductor(モジュール管理) RBACとSSO(OIDC認証) ライセンス管理 その他 • REST API • SDK(Python、Node.js)

Slide 51

Slide 51 text

エ ティティダッシュボード • 同期状況の詳細を確認 • • • • • パフォーマンスメトリクス マッピング 設定 使用中のエージェント 操作履歴

Slide 52

Slide 52 text

構成済みPrometheus+Grafanaも利用可能

Slide 53

Slide 53 text

実際の状況確認をGluesyncのUIから • 構成済みの接続情報で クエリ実行が可能 • 書き込み操作を デフォルトではロック

Slide 54

Slide 54 text

通知ハブ:検索とフィルタで重要な通知を特定

Slide 55

Slide 55 text

メールとWebhook通知 • イベントの種類や重要度、オブジェクトで フィルタ可能 • まとめて大量の通知が飛ばないに バースト防止も可能

Slide 56

Slide 56 text

スマートア ート • 各エンティティの動作状況を基にアラートを通知 • 設定したしきい値に対する現在のステータスをシミュレート可能

Slide 57

Slide 57 text

ユーザ管理とSSO(OIDC) • 複数ユーザ管理 • 管理者とビュワーロール • OIDC構成でSSO可能

Slide 58

Slide 58 text

Conductor(モジュール管理) • モジュール(コンテナ)の実行状況や再起動や停止

Slide 59

Slide 59 text

その他管理機能 • ログ管理、サポートへの直接アップロード ※スクリプトによるローカルでの収集も可 • ライセンス管理

Slide 60

Slide 60 text

運用や構成を簡単にする補助機能 • パイプライン/エンティティ構成 • • • • • • • • • オブジェクトブラウザ フィールドエディタ スキーマロック ターゲットテーブル作成 グループ 開始と一時停止 メンテナンスモード Chronos(スケジュール実行) Automator+ Bootstrapper (YAMLでの構成 エクスポート/インポート) • 運用補助 • • • • • • • • • • エンティティダッシュボード Prometheus+Grafana クエリスタジオ 通知ハブ Email/Webhook通知 スマートアラート Conductor(モジュール管理) RBACとSSO(OIDC認証) ライセンス管理 その他 • REST API • SDK(Python、Node.js)

Slide 61

Slide 61 text

REST API/SDK • • • • REST API Python Node.js Java & Kotlin ※Coming soon

Slide 62

Slide 62 text

サービスステータスやロードマッ も公開中 • https://status.molo17.com/ • https://roadmap.molo17.com/

Slide 63

Slide 63 text

お問い合わせ お問い合わせフォーム https://www.climb.co.jp/soft/contact/ 製品ページ https://www.climb.co.jp/soft/gluesync/ 本社:03-3660-9336 大阪:06-6147-8201