Azure Delta Load не распознает временную метку эпохи (мс) в качестве имени столбца водяного знака

Я пытаюсь выполнить дельта-загрузку (добавочную загрузку) с помощью Фабрики данных Azure из SQL Server в хранилище BLOB-объектов. В моих таблицах есть столбец updateStamp, который представляет собой время эпохи в миллисекундах, числовой (19,0) тип данных. Когда я пытаюсь выбрать имя столбца «Водяной знак» в разделе конфигурации инструмента «Копировать данные» в ADF, это не один из вариантов, и он не позволяет мне вручную вводить имя столбца. Похоже, ему нужен только тип данных datetime или ключевой целочисленный тип данных. Я пробовал с задачей копирования на основе метаданных и разностным копированием из шаблона базы данных, но безуспешно. Есть ли обходной путь или способ преобразования максимума и его использования (вместо добавления еще одного столбца к сотням миллионов строк). Любая помощь или руководство приветствуются.

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

1 ответ

Я попытался воспроизвести это в своей среде, используя дельта-копию из шаблона базы данных в adf для столбца водяных знаков с типом метки времени эпохи. Ниже приведены шаги.

  • Входная таблица и таблица водяных знаков взяты, как на изображении ниже. (Исходное значение водяного знака для таблицы водяных знаков указано как 1657238400000, чтобы скопировать все записи при первом запуске)

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

  • Хранимая процедура для обновления нового значения водяного знака записывается на сервере SQL, как показано ниже.
      Create PROCEDURE update_watermark @LastModifyDate numeric(19,0)
AS
BEGIN
    UPDATE watermarktable
    SET [WatermarkValue] = @LastModifyDate
END
  • В ADF берется дельта-копия из шаблона базы данных и предоставляется связанная служба для источника, приемника и управляющей таблицы. Затем выберите Использовать шаблон .

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

  • Конфигурация в действиях LookupLastWaterMark, LookupCurrentWaterMark, DeltaCopyfromDB не изменена

  • В действии UpdateWaterMark выбирается имя хранимой процедуры и импортируется параметр. тип параметра LastModifyDate задается как Int64 .введите описание изображения здесь

  • Отладка нажимается для запуска конвейера, и задаются параметры конвейера для источника, приемника и управляющей таблицы.

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

  • После копирования файла значение водяного знака обновляется последним значением.введите описание изображения здесь

Файл стока:

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

  • В источник добавлена ​​новая позиция (4-я запись на изображении ниже добавлена ​​заново).

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

  • Pipeline перезапускается, чтобы проверить, скопированы ли дельта-строки.введите описание изображения здесь

Дельта-записи копируются в приемник, когда временная метка эпохи указана в качестве столбца водяных знаков.

Ссылка: документ MS по разностному копированию из шаблона базы данных .

Другие вопросы по тегам