Как указать диапазон дат в U- SQL Извлечь оператор - PullRequest
1 голос
/ 03 апреля 2020

Мои входные файлы находятся в каталоге месяца с шаблоном именования _.csv

. Я могу создать извлечение для захвата всех файлов
@InputFile_Daily + "{*}. json"

Однако теперь мне нужно создать набор файлов с указанным c диапазоном дат, например, Сегодня -> Сегодня-3

Есть ли способ указать этот тип диапазона, будь то регулярное выражение или другое в U- SQL выдержке? или, как я видел в другом месте, извлеките все данные, а затем отфильтруйте результат до интересующего меня диапазона. Это не идеально, поскольку стоимость является фактором

1 Ответ

0 голосов
/ 13 апреля 2020

В U- SQL вы извлекаете все файлы, как вы сказали (@InputFile_Daily + "{*}.json"), а затем при первом выборе применяете фильтр даты, и он извлекает только необходимые данные изнутри.

Пример:

DECLARE @input string = @"/temp/stackoverflow.json";

// Read input file
@inputData =
    EXTRACT Account string,
            Alias string,
            Company string,
            date DateTime,
            Json string
    FROM @input
    USING Extractors.Text(delimiter : '\n', quoting : false);

@extractedFields =
           SELECT Account,
                  Alias,
                  Company,
                  date,
                  Json 
           FROM @inputData
           WHERE  @referenceDate == DateTime.MinValue OR (date >= @dateFrom AND date <= @dateTo);

Если у вас есть 1 миллион файлов, и ваш фильтр предназначен для самых последних файлов, например 5 файлов, он извлечет только 5 файлов. Затем вы можете подтвердить это на графике работы u- sql, сколько файлов было извлечено.

...