このページでは、Azure SQL データベースから サポートされている宛先(BigQuery や Cloud Storage など)にデータをストリーミングするように変更データ キャプチャ(CDC)を構成する方法について説明します。
Azure SQL データベースを構成する手順は次のとおりです。
移行元 Azure SQL データベースの変更データ キャプチャ(CDC)を有効にします。これを行うには、Azure Data Studio または SQL Server Management Studio を使用してデータベースに接続し、次のコマンドを実行します。
EXEC sys.sp_cdc_enable_db; GO
変更を取得する必要があるテーブルで CDC を有効にします。
EXEC sys.sp_cdc_enable_table @source_schema = N'SCHEMA_NAME', @source_name = N'TABLE_NAME', @role_name = NULL GO
以下を置き換えます。
SCHEMA_NAME
: テーブルが属するスキーマの名前TABLE_NAME
: CDC を有効にするテーブルの名前
スナップショット分離を有効にします。
SQL Server データベースからデータをバックフィルする際は、整合性のあるスナップショットを確保することが重要です。このセクションで説明している設定を適用しない場合、バックフィル プロセス中にデータベースに加えた変更により、特に主キーのないテーブルでは、重複や誤った結果が生じる可能性があります。
スナップショット分離を有効にすると、バックフィル プロセスの開始時にデータベースの一時ビューが作成されます。これにより、他のユーザーが同時にライブテーブルに変更を加えた場合でも、コピーされるデータの整合性が確実に維持されます。スナップショット分離を有効にすると、パフォーマンスにわずかな影響を与える可能性がありますが、信頼性の高いデータ抽出には不可欠です。
スナップショット分離を有効にするには:
- SQL Server クライアントを使用してデータベースに接続します。
- 次のコマンドを実行します。
ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
DATABASE_NAME は、データベースの名前に置き換えます。
Datastream ユーザーを作成する:
master
データベースに接続して、ログインを作成します。USE master; CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
ソース データベースに接続して、ログイン用のユーザーを作成します。
USE DATABASE_NAME CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
ユーザーに
db_owner
ロールとdb_denydatawriter
ロールを割り当てます。EXEC sp_addrolemember 'db_owner', 'USER_NAME'; EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
ユーザーに
VIEW DATABASE STATE
権限を付与します。GRANT VIEW DATABASE STATE TO USER_NAME;
次のステップ
- Datastream と SQL Server ソースの連携の仕組みの詳細を確認します。