问题描述
我正在 azure数据工厂(ADF) 中工作,将数据从 SAP HANA 复制到 {{3 }} 。我正在ADF中使用“复制活动”来执行此操作,该操作使用SQL查询来查询HANA中的表并将其下沉到sqlDB中。该查询包含reporting_date
,我需要每个月手动更新以获取数据。
我想删除这种手动更改日期的多余过程,然后每月运行一次,因为我有350多个管道每月更改日期,并且此任务变得非常繁琐且耗时。 有什么方法可以在一处更改日期,它可以用作源查询的输入,并且查询会自动更新为日期? 请按我的要求找到附件的屏幕截图。
要更新的查询:
SELECT "SAPINSTANCE","MCO","COUNTRY","BUKRS","EntityName","XBLNR","HKONT","TXT50","GSBER","BELNR","BLART","LTEXT","CC_BLDAT","CC_BUDAT","WAERS","MONAT","SGTXT","GJAHR","BKTXT","UMSKZ","S_LTEXT","AUFNR","PROJK","PRCTR","EBELN","KOART","AUGBL","CC_AUGDT","REBZG","LIFNR","NAME1","CC_SHKZG","KOSTL","BSCHL","BUZEI","EBELP","KTOKS","ZUONR","XINTB","XLOEB","XSPEB","XOPVW","XKRES","TYPE_WISE_CLASS","DESCRIPTION","MCLASS","CC_NUM_OF_DAYS_AGEING","CC_AGEING_BUCKET","CC_GROUP_CURRENCY","CC_REPORTING_DATE_VAR","MARKET_CLUSTER","HWAER","CURR_UNIT_TO_EURO_1",sum("CC_WRBTR") AS "CC_WRBTR",sum("CC_GROUP_CURRENCY_VALUE") AS "CC_GROUP_CURRENCY_VALUE",sum("CC_LOC_AMT_IN_MIN") AS "CC_LOC_AMT_IN_MIN",sum("CC_AMT_IN_EUR_MIN") AS "CC_AMT_IN_EUR_MIN",sum("CC_DMBTR_E") AS "CC_DMBTR_E"
FROM "_SYS_BIC"."table"('PLACEHOLDER' = ('$$IP_CLUSTER$$','Africa'),'PLACEHOLDER' = ('$$IP_COUNTRY$$','*'),'PLACEHOLDER' = ('$$IP_FISCAL_YEAR$$','PLACEHOLDER' = '$$IP_REPORTING_DATE$$','20200831'),'PLACEHOLDER' = ('$$IP_AGEING_BUCKET$$','''*'''),'PLACEHOLDER' = ('$$IP_BUKRS$$','*'))
GROUP BY "SAPINSTANCE","CURR_UNIT_TO_EURO_1"
以上查询用作复制活动中的输入,需要每月手动更新日期。请帮忙!
解决方法
我假设您在使用计划的事件(例如每周或每月)触发管道执行时希望使用“ current_date”或类似的动态值。
您可以通过使用当前日期动态填充查询来实现这一点,或者在必要时执行更高级的日期函数操作:
@concat('SELECT FROM schema.table t WHERE reporting_date =',formatDateTime(utcnow(),'yyyy-MM-dd'))
您可以在以下网址中找到更详细的列表:https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions#date-functions