#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, если во время потоковой передачи произойдет сбой с какой-либо из таблиц. Я перезапишу папку контрольной точки тем, что я скопировал. Таким образом, все соответствующие изменения будут синхронизированы при следующем запуске потоковой передачи.
Пожалуйста, дайте мне знать, правильный ли это подход?