Data Factory V2查询Azure表存储但使用查找值

问题描述 投票:0回答:2

我有一个SQL水印表,其中包含目标表中的最后一个日期

我的源数据来自Azure存储表,日期时间是字符串

我在水印表中设置日期时间以匹配Azure表存储中的格式

我创建了一个查找和复制任务enter image description here

如果我将日期硬编码到查询源中并运行此工作正常CreatedAt ge'2019-03-06T14:03:11.000Z'

但显然我不想硬编码这个值。我想使用查找中的日期

但是当我用查找值替换硬编码日期时

CreatedAt ge'活动('LookupWatermarkOld')。输出'

我收到一个错误

{“errorCode”:“2200”,“message”:“ErrorCode = FailedStorageOperation,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =存储操作失败并显示以下错误'远程服务器返回错误:( 400)Bad Request。'。,Source =,''Type = Microsoft.WindowsAzure.Storage.StorageException,Message =远程服务器返回错误:(400)Bad Request。,Source = Microsoft.WindowsAzure.Storage,StorageExtendedMessage = Syntax 'CreatedAt ge'活动中第42位的错误('LookupWatermarkOld')。output''。\ nRequestId:8c65ced9-b002-0051-79d9-d41d49000000 \ n时间:2019-03-07T11:35:39.0640233Z ,,''类型= System.Net.WebException,Message =远程服务器返回错误:(400)Bad Request。,Source = Microsoft.WindowsAzure.Storage,'“,”failureType“:”UserError“,”target“:”CopyMentions“}

谁能帮我这个?如何在Azure表查询中使用Lookup值?

azure nosql azure-table-storage lookup-tables azure-data-factory-2
2个回答
0
投票

看一下这个:

1)查找活动。查询字段:

SELECT MAX(WatermarkColumnName)作为LastId FROM TableName;

此外,请确保选中“仅第一行”选项。

2)在复制数据活动中使用查询。查询字段:

@concat('SELECT * FROM TableName as s WHERE s.WatermarkColumnName>''',activity('LookupActivity')。output.firstRow.LastID,'''')


0
投票

最后我得到了一些帮助,它可以使用

CreatedAt gt'@ {activity('LookupWatermarkOld')。output.firstRow.WaterMarkValue}'

WaterarkValue是SQL Lookup表中的列名

Lookup创建一个数组,因此您必须从此数组中指定FirstRow

并包装''所以它用作字符串值

© www.soinside.com 2019 - 2024. All rights reserved.