Important
このページには、従来のコンテンツが含まれています。 Databricks では、代わりに ユーティリティ オブジェクト スクリプトを使用して取り込むための SQL Server の準備に関する 手順に従うことをお勧めします。
Microsoft SQL Server で組み込みの変更データ キャプチャ (CDC) を有効にする方法について説明します。 SQL Server コネクタを使用するには、変更の追跡または CDC を有効にする必要があります。 Databricks では、ソース データベースの負荷を最小限に抑えるために、主キーを持つテーブルに変更追跡を使用することをお勧めします。 変更の追跡と CDC の両方が有効になっている場合、コネクタは変更の追跡を使用します。 選択するオプションのガイダンスについては、「 Change の追跡と変更データ キャプチャを参照してください。
ソース データベースに対して組み込みの CDC を有効にする
CDC を有効にするデータベースにログインします。
データベース コンテキストで次の T-SQL コマンドを実行します。
Azure SQL Database とオンプレミスの SQL Server
EXEC sys.sp_cdc_enable_dbAmazon RDS for SQL Server
EXEC msdb.dbo.rds_cdc_enable_db '<database-name>'
詳細については、SQL Server ドキュメントのデータベースの変更データ キャプチャを有効にする方法に関するページを参照してください。
CDC リテンション期間を設定する
リテンション期間を、ゲートウェイがダウンする可能性が高い最大時間 (分単位) に設定します。 この時間が経過すると、ゲートウェイを再開するために完全な更新が必要になります。
EXEC sys.sp_cdc_change_job @job_type = N'cleanup', @retention = 20160;
ソース テーブルに対して組み込みの CDC を有効にする
ソース テーブルで CDC を有効にするには、Azure SQL で次のストアド プロシージャを実行します。
source_schema、source_name、role_name の値を置き換えます。 テーブルに主キーがある場合、@support_net_changes は値 1 のみをサポートします。
-
source_schema、source_name、role_nameの値を置き換えます。 - テーブルに主キーがある場合、
@support_net_changesは1の値のみをサポートします。
EXEC sys.sp_cdc_enable_table
@source_schema = N'MySchema',
@source_name = N'MyTable',
@role_name = NULL,
@supports_net_changes = 1
詳細については、SQL Server ドキュメントのテーブルの変更データ キャプチャを有効にする方法に関するページを参照してください。
CDC スキーマに対する SELECT を付与する
ソースのセットアップで説明されている特権に加えて、データベース ユーザーにはスキーマ SELECTに対するcdc特権が必要です。 このスキーマには、CDC が有効になっているときに作成される変更テーブルが含まれます。 次の T-SQL コマンドを実行します。
GRANT SELECT ON SCHEMA::cdc to <database-user>;
VIEW SERVER STATE の付与 (オンプレミスと RDS)
オンプレミスインスタンスと RDS インスタンスの場合のみ、sql Server エージェントの状態を確認するために使用されるVIEW SERVER STATEのクエリを実行するには、sys.dm_server_services特権が必要です。 次の T-SQL コマンドを実行します。
GRANT VIEW SERVER STATE to <database-user>