我遵循的是tutorial on Azure Data Factory migration from Azure SQL to Blob through pipelines.,尽管大多数概念都有意义,但是“复制数据”查询有点令人困惑。我有编写Oracle SQL的背景,但是ADF上的Azure SQL却大不相同,我正在努力查找特定的技术文档,可能是因为它尚未被广泛采用。
SELECT data_source_table.PersonID,data_source_table.Name,data_source_table.Age,
CT.SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION
FROM data_source_table
RIGHT OUTER JOIN CHANGETABLE(CHANGES data_source_table,
@{activity('LookupLastChangeTrackingVersionActivity').output.firstRow.SYS_CHANGE_VERSION})
AS CT ON data_source_table.PersonID = CT.PersonID
WHERE CT.SYS_CHANGE_VERSION <=
@{activity('LookupCurrentChangeTrackingVersionActivity').output.firstRow.CurrentChangeTrackingVersion}
作为“复制数据”查询的结果,输出到接收器Blob:
2,name2,14,4,U
7,name7,51,3,I
8,name8,31,5,I
9,name9,38,6,I
耦合我的问题:
@{activity('...').output.firstRow.CurrentChangeTrackingVersion
。有没有办法知道引用外部活动的适当语法?找不到任何好的文档语法,例如.firstRow
是什么或changetable
输出是什么样。我无法在SSMS中复制此查询,这对我来说有点黑匣子。SELECT
中,没有表名前缀。这是直接从SourceDataset中的表查询吗? (它指向具有table tracking enabled的data_source_table)我的主要困惑来自表跟踪信息如何存储在启用的表中。有没有一种方法可以显示SSMS中所有表格的跟踪变化?我看到了some documentation on what the return values,但是我很难在表上看不到它的情况下对其进行可视化,因此对一些返回值的输出查询将是不错的选择。 很抱歉有很多问题,但是我找不到任何方法可以使学习曲线的难度降低一些。任何指南或资源都很棒!
答案 0 :(得分:0)
有一篇文章可以通过UI完成相同的事情,它将帮助您更好地理解它。 https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-change-tracking-feature-portal。
1。这些是Lookup活动。非常简单的请在这里阅读有关它们的信息。 https://docs.microsoft.com/en-us/azure/data-factory/control-flow-lookup-activity
2.SYS_CHANGE_OPERATION是data_source_table上的一列,所以应该没问题。关于如何存储更改跟踪(CT)的详细信息,我不确定是否所有系统表都在Azure SQL上公开,但是我们在SQL的本地版本上确实没有几个表可以查询需要。但是对于此练习,我认为这将是一个致命的挑战。