首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新策略ADX

更新策略ADX
EN

Stack Overflow用户
提问于 2022-08-23 13:32:11
回答 1查看 136关注 0票数 0

我有一个源表,我想使用update策略将数据从源表复制到目标表,但是有一个额外的列,它的值是从外部表中获得的。

在更新策略中,我应该从原始表中复制行,并通过Id查找需要在外部表中添加的值。

我可以很容易地使用一个视图(join),但是问题是性能问题,所以我希望在ADX中有一个包含我需要的值的表。

问题是,通过从外部表中添加列,函数应该如何将行从源表复制到目标表。

更新:外部表似乎不能在更新策略中使用。当我试图定义时,我会得到一个错误

例外情况:请求无效,无法处理:语义错误: SEM0457: external_table():在此上下文中不允许使用。

EN

回答 1

Stack Overflow用户

发布于 2022-08-25 10:35:53

您的更新策略命令可能如下所示:

代码语言:javascript
复制
.alter table table2 policy update
@'[{"IsEnabled": true, "Source": "table1", "Query": "MyFunctionThatDoesTheLookup(table1, table2)", "IsTransactional": true, "PropagateIngestionProperties": false}]' 

这意味着表正在从table1获取数据。在中间,你使用一个函数。该函数将如下所示

代码语言:javascript
复制
.create-or-alter function 
MyFunctionThatDoesTheLookup
(
raw_table:(id:string,col1:string,col2:int), 
target_table:(id:string,col1:string,col2:int, col3:int)
) 
{
let mylookuptable = lookuptablename;
raw_table
| join kind=left mylookuptable | project col3 on id 
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73459706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档