您可以使用 Datastream 将变更数据捕获 (CDC) 更新从 Azure SQL 数据库流式传输到 受支持的目标,例如 BigQuery 或 Cloud Storage。 Datastream 仅支持使用变更表 CDC 方法的 Azure SQL 数据库。如需准备源,请在数据库和表上启用 CDC,开启快照隔离,并配置 Datastream 用户。
如需配置 Azure SQL 数据库,请执行以下操作:
为源 Azure SQL 数据库启用变更数据捕获 (CDC)。如需执行此操作,请使用 Azure 数据洞察或 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 源。