gpt4 book ai didi

Azure ADX 跨同一群集上的数据库摄取数据

转载 作者:行者123 更新时间:2023-12-03 06:20:48 26 4
gpt4 key购买 nike

我想找到一种方法,根据源表的更新时间,将数据从一个数据库提取到另一个数据库(同一集群)。我们有一个能够跨数据库查看的更新查询,但是当我尝试使用以下方法更新更新策略时:

.alter table DataBase2.ChildTable policy update
'''
[
{
"IsEnabled": true,
"Source": "DataBase1.SourceTable",
"Query": "QueryFunction()"
}
]
'''

这会产生以下错误:

 Error during execution of a policy operation: Source table does not exist for policy: 'IsEnabled = 'True', Source = 'DataBase1.SourceTable', Query = 'QueryFunction()', IsTransactional = 'False', PropagateIngestionProperties = 'False''

有人有什么想法吗?

-谢谢!

最佳答案

所以我们找到了解决方案:

创建一个采用 0 时间保留策略进行摄取的源表命令:

.alter table SourceTableName policy retention 
'''
{
"SoftDeletePeriod": "0", "Recoverability":"Disabled"
}
'''

这将使表永远不会提交任何行。

接下来,对于每个更新策略,您需要按如下方式构建它们:

.alter table Childtable policy update @'[{"Source": "SourceTableName", "Query": "UpdateQuery()", "IsEnabled": "True", "IsTransactional": "True"}]' 

这将使子表在摄取行时拉取行,但这些行永远不会提交到源表。将其视为垫脚石。我建议使用另一个数据库,该数据库也从与备份相同的源中摄取,允许您根据需要执行 .appends(如果摄取失败)从这里,您可以根据需要将 RLS 添加到子表!

Retention reference

RLS Reference

关于Azure ADX 跨同一群集上的数据库摄取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75921696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com