リアルタイムSQL Serverレプリケーション用のSQL Server変更追跡

SQL Server変更追跡とは何ですか?

SQL Serverの変更の追跡は、Microsoft SQL Serverデータベースに加えられたすべての変更をキャプチャする方法です。 指定された時間枠内で行われたテーブルのいずれかに対して行われた挿入、更新、または削除がキャプチャされます。 この情報は、SQL Serverレプリケーションの目的で使用できます。 SQL Change Trackingは、トランザクションログを読み取り、データの変更を検索し、使いやすさのために変更を記録します。 これは、指定されたウィンドウ内の増分変更をキャプチャするための極端な軽量メカニズムです。 また、SQL Server CDCおよびOracle CDC

SQL変更追跡は、SQL Serverレプリケーションの不可欠な部分です

SQL Serverデータベースからデータレイクまたはデータウェアハウスにデータを転送またはレプリケートする必要がある場合、sql変更追跡機能は、増分データを効率的にレプリケートするのに役立ち、データレイク/ウェアハウスが常に最新であり、異なるSQL Serverリポジトリーからのデータアクセスのための一元化された場所であるため、特に便利です。

SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システムです。 その主な機能は、効率的にデータを格納し、取得することであり、一般的にデータの格納と検索のためのアプリケーションで使用されています。 SQL Serverバージョン2008以降では、変更の追跡機能がサポートされています。

SQL Serverの変更の追跡-注意すべき点:

  • SQL Serverのすべてのエディションでこの機能がサポートされています
  • 追跡する必要があるすべてのテーブルについて、データベースレベルおよびテーブルレベルで変更追跡を有効にする必要があります
  • テーブルには、データベースで主キーが定義されている必要があります

以下の手順について詳しく説明します。

変更追跡を有効にするには

alter database databasename
set change_tracking=on
(change_retention=7days,auto_cleanup=on)

たとえば:

ALTER DATABASE Adventureworks2019
SET CHANGE_TRACKING=ON
(CHANGE_RETENTION=7日、AUTO_CLEANUP=ON)

テーブルレベルで:

USE<databasename>
GO
ALTER TABLE tablename
ENABLE change_tracking
with(track_Columns_Updated=on);

例:

USE ADVENTUREWORKS2019
go
alter table dimcustomer
enable change_TRACKING
with(track_columns_updated=on);

変更の追跡があるかどうかを確認しますデータベースレベル

Select*
from sysで有効になっています。change_tracking_databases
where database_id=DB_ID(‘databasename’);

たとえば、

SELECT*
from sys.change_tracking_databases
WHERE database_id=DB_ID(‘Adventureworks2019’);

Results:

変更の追跡がテーブルレベルで有効になっているかどうかを確認する

use databasename;
SELECT sys.schemas.name schema_nameとして、sys.tables.name sysからtable_name
として。change_tracking_tables
sysを結合します。sys上のテーブル。テーブル。object_id=sys.change_tracking_tables.object_id
sysを結合します。sys上のスキーマ。スキーマ…schema_id=sys.テーブル。schema_id;

例:

USE Adventureworks2019;
SELECT sys.schemas.name schema_nameとして、sys.tables.name sysからtable_name
として。change_tracking_tables
sysを結合します。sys上のテーブル。テーブル。object_id=sys.change_tracking_tables.object_id
sysを結合します。sys上のスキーマ。スキーマ…schema_id=sys.テーブル。schema_id;

結果:

SQL Serverの変更追跡:長所と短所

  • テーブルには主キーが定義されている必要があります。 主キーのないテーブルには、変更の追跡を適用できません。

メリット

  • 非常に軽量なソリューションで、変更の追跡はほとんどのシナリオで非常に便利です。
  • これはSQL Serverのすべてのエディションでサポートされているため、非常に汎用性の高いソリューションです。

SQL Serverの変更追跡の制限事項またはカスタムコーディングの課題

  • ネイティブのSQL Serverの変更追跡機能は変更をキャプチャするのに役立ちますが、これらの変更をキャプチャし、データウェアハウスまたはデータレイクへのSQLレプリケーションに使用するために行う必要がある重要なコーディングがあります。
  • 信頼性と堅牢性を満たす必要があるだけでなく、継続的な保守、データの問題、新しいテーブルとデータ型の処理が企業にとって進行中の問題になります。
  • 警告および監視ソリューションも手作業でコード化する必要があり、この作業に必要なさまざまなコンポーネントを見ると、手作業でコード化されたソリ

SQL Serverからの変更をキャプチャするコードなしの自動化された方法は、BryteFlow

  • BryteFlowは、変更追跡や他のいくつかのメカニズムを使用してSQL Serverからの変更をキャ ソリューションの詳細を読む
  • これは、さまざまなデータウェアハウスやデータレイクにデータを転送するコードなしの方法です
  • 最適なデータタイプでターゲッ6805>bryteflowは企業の等級sqlサーバー写しおよび水密の保証をのための提供します オンプレミス、クラウド、またはハイブリッドアプローチを使用したインストール。

結論

コーディング集約型のアプローチとは対照的に、BryteFlowを使用した変更追跡を使用して、簡単でリアルタイムのSQL Serverレプリケーションを提供します。 ポイントしてクリックするだけで設定できます。 並列スレッド化された初期同期とパーティション分割の後にデルタ同期を実行することで、大量のデータを簡単に複製できます。 テーブルは、データupsertedまたはSCDタイプ2履歴を使用して自動的に作成されます。 使用しているSQL Serverのバージョンまたはエディション(すべてのバージョン/エディションがサポートされている)に適した複数の変更データキャプチャオプ S3、Redshift、Snowflake、Azure Synapse、またはSQL Serverのいずれであっても、宛先でデータを使用する準備をしてください。

コメントを残す

メールアドレスが公開されることはありません。