误建无区域冗余的ADEx集群:能否修改或迁移至ZR集群?
Azure Data Explorer集群区域冗余启用及数据迁移方案
能否为已创建的ADEx集群开启区域冗余?
不能。区域冗余(ZR)是Azure Data Explorer集群的创建时专属配置项,集群部署完成后无法修改该设置。必须在集群初始化创建阶段,通过Azure Portal、ARM模板或CLI指定启用区域冗余。
数据迁移至启用区域冗余的新集群详细步骤
1. 部署目标集群
创建一个新的Azure Data Explorer集群,在配置阶段勾选“区域冗余”选项。建议目标集群的SKU、节点数量、存储配置与原集群保持一致,避免迁移后出现性能瓶颈。
2. 导出并重建架构
- 导出架构:在原集群的Kusto查询窗口中,执行以下命令导出数据库的完整架构(包括表、函数、存储过程、数据策略等):
将导出的脚本保存,后续在目标集群执行以重建架构。// 列出所有数据库 .show databases // 导出指定数据库的架构 .show database <原数据库名称> schema as csl script - 可选:ARM模板迁移:在Azure Portal的原集群页面,导出ARM模板,修改模板中的区域冗余配置为
true,然后通过该模板部署目标集群及数据库,可自动同步大部分架构配置。
3. 迁移历史静态数据
针对已存在的历史数据,推荐两种迁移方式:
- Kusto原生
copy命令:适合中小数据量,直接在目标集群执行跨集群数据复制:
可循环执行该命令完成所有表的复制。.execute database script <| let sourceClusterEndpoint = "https://<原集群名称>.<区域>.kusto.windows.net"; let sourceDb = "<原数据库名称>"; let targetDb = "<目标数据库名称>"; // 全量复制单张表 .set-or-append <目标表名称> <| cluster(sourceClusterEndpoint).database(sourceDb).<原表名称> - Azure Data Factory(ADF)批量迁移:适合TB级以上大数据量,通过ADF创建数据管道,配置原集群为数据源、目标集群为数据接收器,支持增量同步和并行迁移,提升效率。
4. 切换实时数据流入
- 暂停原集群的所有数据摄入规则(如Event Hub、IoT Hub、Blob存储的 ingestion 连接),避免新数据继续写入原集群。
- 在目标集群配置与原集群完全一致的摄入规则,确保新数据开始流入目标集群。
- 等待原集群中所有待处理的摄入任务完成后,执行一次增量数据同步,确保历史数据与实时数据无断层。
5. 验证数据一致性
- 计数验证:对关键表执行
count命令,对比原集群与目标集群的行数是否一致:// 原集群执行 <原表名称> | count // 目标集群执行 <目标表名称> | count - 抽样验证:随机抽取部分数据行,对比字段值是否完全匹配。
- 功能验证:测试自定义函数、存储过程、数据策略(如保留策略、缓存策略)是否正常生效。
6. 切换业务流量
- 将业务应用的连接字符串更新为目标集群的端点地址。
- 持续监控目标集群的CPU、内存、存储及数据摄入指标,确保业务稳定运行。
7. 清理资源
确认业务完全切换且运行稳定后,可根据需求停止或删除原集群,避免不必要的成本支出。
内容的提问来源于stack exchange,提问作者Mr Slickist
相关产品推荐
相关产品推荐

