#c# #azure #azure-data-factory #azure-data-lake #u-sql
#c# #azure #azure-data-factory #azure-data-lake #u-sql
Вопрос:
У меня есть следующий EXTRACT
оператор, который собирает данные как из промежуточного файла, так и из производственного файла:
DECLARE @staging string = "/staging/events.csv";
DECLARE @production string = "/production/events.csv";
@events =
EXTRACT dimensionId string
, tenantId string
, internalEntityId long
, name string
, modifiedTimestamp DateTime
FROM @staging, @production
USING Extractors.Csv();
Инструкция завершится ошибкой, если отсутствует один из двух файлов, что приводит к сбою всего Azure Data Factory
конвейера:
Вопрос
Как я могу корректно обработать отсутствующий файл в U-SQL
EXTRACT
инструкции?
Ответ №1:
Я не уверен, что могу квалифицировать это как «Изящно», но, по крайней мере, это делает свое дело.
Я могу использовать ФАЙЛ.Оператор EXISTS для предварительной проверки наличия файла и выбора включать его или нет:
DECLARE @staging string = "/staging/events.csv";
DECLARE @production string = "/production/events.csv";
IF FILE.EXISTS(@production) == true THEN
@events =
EXTRACT dimensionId string
, tenantId string
, internalEntityId long
, name string
, modifiedTimestamp DateTime
FROM @staging, @production
USING Extractors.Csv();
ELSE
@events =
EXTRACT dimensionId string
, tenantId string
, internalEntityId long
, name string
, modifiedTimestamp DateTime
FROM @staging
USING Extractors.Csv();
END;