我有一个源表,我想使用update策略将数据从源表复制到目标表,但是有一个额外的列,它的值是从外部表中获得的。
在更新策略中,我应该从原始表中复制行,并通过Id查找需要在外部表中添加的值。
我可以很容易地使用一个视图(join),但是问题是性能问题,所以我希望在ADX中有一个包含我需要的值的表。
问题是,通过从外部表中添加列,函数应该如何将行从源表复制到目标表。
更新:外部表似乎不能在更新策略中使用。当我试图定义时,我会得到一个错误
例外情况:请求无效,无法处理:语义错误: SEM0457: external_table():在此上下文中不允许使用。
发布于 2022-08-25 10:35:53
您的更新策略命令可能如下所示:
.alter table table2 policy update
@'[{"IsEnabled": true, "Source": "table1", "Query": "MyFunctionThatDoesTheLookup(table1, table2)", "IsTransactional": true, "PropagateIngestionProperties": false}]' 这意味着表正在从table1获取数据。在中间,你使用一个函数。该函数将如下所示
.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
} https://stackoverflow.com/questions/73459706
复制相似问题