aws glue rds инкрементная нагрузка

Я пытаюсь загрузить данные из AWS RDS (MySQL) в красное смещение с помощью клея AWS. И я хочу загружать данные постепенно. Используя закладки заданий, клей может отслеживать только недавно добавленные данные, но не может отслеживать обновленные строки. Есть ли способ загрузить только обновленные данные? может быть с помощью поля updated_at в исходной таблице из MySQL?


person Deepak Chougule    schedule 06.06.2019    source источник


Ответы (2)


Это невозможно с помощью закладок вакансий. Из документации AWS:

Job bookmarks are implemented for a limited use case for a relational database (JDBC connection) input source. For this input source, job bookmarks are supported only if the table's primary keys are in sequential order. Also, job bookmarks search for new rows, but not updated rows. This is because bookmarks look for the primary keys, which already exist.

https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html

Glue необходимо будет загрузить все данные RDS в динамический фрейм или фрейм данных. Однако эти данные можно использовать для выполнения вставки в базу данных красного смещения, если вы пытаетесь избежать усечения таблицы красного смещения и перезагрузки всех данных.

https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-upsert.html

person Addison Higley    schedule 07.06.2019

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

См., Например, этот ответ.

person Prabhakar Reddy    schedule 09.06.2019
comment
Где лучше всего сохранить последнюю обработанную метку времени? Файл s3? - person Guilherme Torres Castro; 08.10.2019