В локальной базе данных SQL Server у меня есть несколько таблиц, в которые вставляются различные данные о продажах цепочки магазинов в течение дня. Я хотел бы «собрать» эти данные Azure каждый, скажем, через 15 минут через Data Factory и локальный шлюз управления данными. Ясно, что я не заинтересован в копировании всех данных таблицы каждые 15 минут, но только при копировании строк, которые были вставлены с момента последней выборки. Насколько я вижу, documentation предлагает использовать эти «срезы» для этой цели. Однако, насколько я вижу, эти срезы требуют, чтобы столбец времени (например, datetime) существовал в таблицах, откуда извлекаются данные.Инкрементальная передача данных с использованием Azure Data Factory
- Могу ли я выполнить выборку «delta» (то есть только получить строки, вставленные после последней выборки) без наличия такого столбца временной метки? Могу ли я использовать последовательный целочисленный столбец? Или даже не иметь увеличивающегося столбца?
- Предположим, что в последнем кусочке было окно с 08:15 до 08:30. Теперь, если часы на сервере базы данных немного отстают от часов Azure, он может добавить несколько строк с отметкой времени, которая установлена в 08:29 после, что этот срез был выбран, и эти строки не будут включены, когда следующий фрагмент (С 08:30 до 08:45). Есть ли разумный способ избежать этой проблемы? Сдвиг окна среза на несколько минут в прошлое может свести к минимуму риск, но не полностью устранить его.
Чтобы противостоять часовым отличиям, вы можете установить «задержку» на объект политики действия. –