更新策略ADX



我有一个源表,我想使用更新策略将数据从源表复制到目标表,但要添加一列,该列的值是从外部表获得的。

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

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

问题是,通过添加外部表中的列,将行从源表复制到目标表的函数应该是什么样子。

更新:似乎无法在更新策略中使用外部表。我在尝试定义时出错

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

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

.alter table table2 policy update
@'[{"IsEnabled": true, "Source": "table1", "Query": "MyFunctionThatDoesTheLookup(table1, table2)", "IsTransactional": true, "PropagateIngestionProperties": false}]' 

这意味着该表正在从表1中获取数据。在两者之间,您使用一个函数。功能看起来像这个

.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 
} 

最新更新