Таблицы Delta Live для пакетной инкрементной обработки

Можно ли использовать Delta Live Tables для выполнения инкрементной пакетной обработки?

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

      CREATE LIVE TABLE lendingclub_raw
COMMENT "The raw loan risk dataset, ingested from /databricks-datasets."
TBLPROPERTIES ("quality" = "bronze")
AS SELECT * FROM parquet.`/databricks-datasets/samples/lending_club/parquet/`

Но, если мы это сделаем,

      CREATE LIVE TABLE lendingclub_raw
COMMENT "The raw loan risk dataset, ingested from /databricks-datasets."
TBLPROPERTIES ("quality" = "bronze")
AS SELECT * cloud_files("/databricks-datasets/samples/lending_club/parquet/", "parquet")

Будет ли он загружать только добавочные данные при каждом запуске, если конвейер запускается в режиме триггера?

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

Поскольку вы не можете точно определить триггер в DLT, как это будет работать?

1 ответ

Вам нужно определить свою таблицу какstreaming live, поэтому он будет обрабатывать только данные, полученные с момента последнего вызова. Из документов :

Потоковая динамическая таблица или представление обрабатывает данные, которые были добавлены только после последнего обновления конвейера.

Затем его можно было бы комбинировать с запуском по триггеру, который будет вести себя аналогично Trigger.AvailableNow. Из документов :

Триггерные конвейеры обновляют каждую таблицу любыми данными, доступными в данный момент, а затем останавливают кластер, выполняющий конвейер. Delta Live Tables автоматически анализирует зависимости между вашими таблицами и начинает с вычисления тех, которые считываются из внешних источников. Таблицы в конвейере обновляются после обновления зависимых от них источников данных.

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