Как обработать отсутствующий файл в инструкции U-SQL EXTRACT? - PullRequest
1 голос
/ 12 апреля 2019

У меня есть следующий оператор 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 вышел из строя:

Input stream(s) don't exist

Вопрос

Как я могу изящно справиться с отсутствующимфайл в операторе U-SQL EXTRACT?

1 Ответ

1 голос
/ 12 апреля 2019

Я не уверен, что могу квалифицировать это как «Изящно», но, по крайней мере, это помогает.

Я могу использовать оператор FILE.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;
...