#amazon-web-services #apache-spark #aws-glue #amazon-athena
Вопрос:
В моей текущей настройке у меня есть данные в S3, которые просматриваются с помощью AWS Glue, и я использую AWS Athena для их запроса. В S3 у меня есть два разных набора данных на основе JSON. Один из них содержит консолидированное представление о типе организации, например о клиентах.
[{ "customerId": "custXXX", "name": "Customer XYZ", "email": "customer_xyz@customers.com" }, { "customerId": "custYYY", "name": "Customer ABC", "email": "customer-abc@customers.com" }]
Другой, содержащий изменения в сущности того же типа. Изменения могут заключаться в обновлении поля или полном удалении записи.
[{ "operation": "update", "object": { "customerId": "custXXX", "name": "Customer XYZ", "email": "customer-yzw2@customers.com" } }, { "operation": "delete", "object": { "customerId": "custYYY" } }]
Мне нужно взять первый набор данных и применить все изменения из второго набора данных, чтобы создать третий «новый» консолидированный набор данных. Это похоже на довольно стандартный шаблон, использующий CDC для репликации одного источника данных в другой, но я не смог найти никаких подробностей о том, как я мог бы сделать это с помощью AWS Glue/Athena или даже обычной Spark.
Новый набор данных:
[{ "customerId": "custXXX", "name": "Customer XYZ", "email": "customer-yzw2@customers.com" }]