Автоматическое изменение даты каждый месяц в операции копирования в фабрике данных Azure для копирования данных из SAP HANA в SQLDB Azure
Я работаю в фабрике данных Azure(ADF) для копирования данных из SAP HANA в SQLDB Azure. Я использую "копирование" в 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", "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"
Вышеупомянутый запрос действует как ввод в действие копирования и должен обновляться с указанием даты каждый месяц вручную. Пожалуйста помоги!
1 ответ
Я предполагаю, что вы хотите использовать "current_date" или подобное динамическое значение при запуске выполнения конвейера с использованием запланированного события (например, еженедельно или ежемесячно).
Вы можете добиться этого, динамически объединяя свой запрос с текущей датой или при необходимости выполняя более сложные операции с функцией даты:
@concat('SELECT FROM schema.table t WHERE reporting_date =', formatDateTime(utcnow(), 'yyyy-MM-dd'))
Вы можете найти более подробный список того, что возможно, по следующему URL- адресу: https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions