Запретить создание пустых файлов с помощью действия копирования фабрики данных Azure

Я использую фабрику данных Azure для копирования данных из Azure Cosmos DB в озеро данных Azure. Мой конвейер состоит из операции копирования, которая копирует данные в приемник озера данных.

Это мой запрос по исходному набору данных:

select * from c 
where c.data.timestamp >= '@{formatDateTime(addminutes(pipeline().TriggerTime, -15), 'yyyy-MM-ddTHH:mm:ssZ' )}' 
AND c.data.timestamp < '@{formatDateTime(pipeline().TriggerTime, 'yyyy-MM-ddTHH:mm:ssZ' )}'

Я получаю данные за последние 15 минут до срабатывания триггера.

Теперь, если данные, полученные запросом, отсутствуют, действие копирования создает пустой файл и сохраняет его в озере данных. Я хочу предотвратить это. Есть ли способ добиться этого?


person MAK    schedule 03.10.2018    source источник


Ответы (3)


Вы можете использовать поисковую активность и затем используйте действие if, чтобы решить, нужно ли запускать действие копирования.

В действии поиска вы можете установить firstRowOnly как true, поскольку вы хотите только проверить, есть ли данные.

введите здесь описание изображения

person user10081545    schedule 09.10.2018

Это более старый поток, но у кого-то может быть более элегантный способ справиться с проблемой, описанной выше, когда ADF создает файл, даже если есть 0 записей. Вот мои опасения по поводу подхода поиска или пост-процесса очистки пустого файла.

  1. Неэффективно дважды запрашивать базу данных только для того, чтобы в первый раз проверить, есть ли строки.
  2. Использование компонента [IF Condition] невозможно, если вы уже находитесь внутри компонента [if component] или [case] ADF. (Это также ограничение / недостаток ADF).
  3. Очистка пустого файла также неэффективна, и это не вариант, если вы запускаете событие создаваемого файла, поскольку оно вызывает ложное срабатывание, поскольку оно записывается до того, как вы сможете его очистить.
person TheOriginOf3    schedule 24.06.2020

Я пробовал следующее, и это работает: я проверяю, возвращает ли поисковая запись более 0 строк.

введите здесь описание изображения

person MAK    schedule 09.10.2018