Datastream を使用すると、Azure SQL データベースから BigQuery や Cloud Storage などのサポートされている宛先に変更データ キャプチャ(CDC)の更新をストリーミングできます。Datastream では、テーブル変更の CDC メソッドを使用する場合にのみ、Azure SQL Database がサポートされます。ソースを準備するには、データベースとテーブルで CDC を有効にし、スナップショット分離を有効にして、Datastream ユーザーを構成します。
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 ソースの連携の仕組みの詳細を確認します。