如何在Azure Data Explorer中备份数据库架构及实现跨集群数据库复制?
Azure Data Explorer相关操作的KQL实现方案
你提到的两个操作都可以通过ADX原生的控制命令实现,具体方法如下:
1. 备份数据库架构
你可以直接使用.show database schema控制命令导出完整的数据库架构脚本,导出结果可以直接用于架构恢复:
- 执行命令:
.show database [你的数据库名称] schema as csl script
- 执行后返回的结果就是包含所有表、列、映射、自定义函数、保留策略等所有配置的可执行Csl脚本,直接保存该脚本即可完成架构备份。需要恢复时,在目标库执行该脚本就能1:1还原架构。
2. 跨集群复制数据库
根据你是否需要同步数据,有两种实现路径:
2.1 仅复制架构
直接使用上面的架构备份脚本,在目标集群的目标数据库中执行即可。
2.2 架构+数据全量/增量复制
首先需要提前配置目标集群的跨集群访问白名单:
.add cluster allowed_clusters @["源集群访问URI,格式为https://<源集群名>.kusto.chinacloudapi.cn"]
操作账号需要同时拥有源数据库的读取权限、目标数据库的写入/管理权限。
一次性全量复制
单表复制可以直接使用.set命令:
.set 目标表名 <| cluster('源集群URI').database('源数据库名').源表名
如果需要批量复制所有表,可以结合架构导出结果批量生成对应的.set命令执行即可。
全量+增量持续同步
如果需要持续同步源库的新增数据,推荐使用轻量复制(LWR)控制命令:
.create async lwr 复制任务名 with ( SourceCluster = '源集群URI', SourceDatabase = '源数据库名', Continuous = true, IncludedTables = dynamic(['*']) // 配置为*代表同步所有表,也可指定特定表名数组 )
该命令会自动完成首次全量同步,之后自动同步增量数据,无需手动操作。
内容的提问来源于stack exchange,提问作者Gowtham
相关产品推荐
相关产品推荐

