我使用ADF填充azure数据仓库,我需要准备增量插入/更新操作。我的源代码可以包含已加载到DW的数据,因此我需要检查数据是否已加载并执行操作。基本上,我们的想法是在过去7天内每天获取数据,以防有人更新历史数据。
首先,我尝试在源上使用自定义查询的复制活动,然后使用存储过程在目标上使用存储过程,如果记录已存在或未执行,则将按业务键检查并执行插入或更新。但我找不到如何处理每行源查询行的结果并将其传递给SP。
哪种方法最适合我的情况?基本上我在寻找天蓝云中的SSIS
答案 0 :(得分:0)
您需要首先将加载的数据放入SQL DB(如果您还没有)。然后在其上使用存储过程来生成合并样式行为并处理7天窗口。例如:
{
"name": "SprocActivitySamplePipeline",
"properties": {
"activities": [
{
"type": "SqlServerStoredProcedure",
"typeProperties": {
"storedProcedureName": "sp_sample",
"storedProcedureParameters": {
"DateTime": "$$Text.Format('{0:yyyy-MM-dd HH:mm:ss}', SliceStart)"
}
}
来源:https://docs.microsoft.com/en-us/azure/data-factory/data-factory-stored-proc-activity
在这种情况下,ADF输入和输出数据集可以是数据库中的关系表。
遗憾的是,ADF不是SSIS。但是如果你想比较一下,那就更像是SSIS控制流,而不是数据流和ETL引擎。
因此,您需要一系列活动来满足您的需求。在上面的屏幕截图中,您已经将SQL DB作为源代码,因此我对实际问题的确有些困惑。
也许首先将SQL DB中的数据运行到分段区域。然后复制到SQL DW。
希望这有帮助。