Является ли это правильным способом реализации инкрементной загрузки данных с RDS на snowflake с помощью Delta Lake

#apache-spark #spark-structured-streaming #delta-lake

Вопрос:

Мне нужны ваши предложения по следующему

 Goal:  Implement Incremental data load from RDS to snowflake using Delta Lake
Here is the overview of the entire process
RDS --> DMS --> Change Logs  in S3 (multiple tables)
Below step in the Airflow
    --> Delta Tables (Raw), Also save it as tables in DB
    --> Spark Streaming (Change Data Feed on tables) uses checkpoint to get only the latest changes w/ trigger once.
    --> Create Micro Batch Tables using changes from respective tables
    --> Run Spark SQL script using micro-batch tables to create transformed tables (joining and filtering micro-batch tables) and then upload them to snowflake for further processing.

 

Одна из вещей, о которых я беспокоюсь, — это при выполнении потоковой передачи spark, если потоковая передача завершается неудачно при создании одной из микротаблиц. Контрольные точки неудачной таблицы не будут синхронизированы (контрольные точки успешной таблицы могут быть впереди). Я хочу убедиться, что контрольные точки всех таблиц синхронизированы. Я подумывал о копировании в папку контрольных точек перед запуском потоковой передачи spark, если во время потоковой передачи произойдет сбой с какой-либо из таблиц. Я перезапишу папку контрольной точки тем, что я скопировал. Таким образом, все соответствующие изменения будут синхронизированы при следующем запуске потоковой передачи.
Пожалуйста, дайте мне знать, правильный ли это подход?