#amazon-web-services #apache-spark #aws-glue #aws-glue-spark
Вопрос:
Я пытаюсь загрузить incremental
данные из Redshift
в s3
. Я настроил redshift_temp_dir
и temp dir
для glue
заданий(с помощью консоли клея).
Ниже приведен мой код:
my_conn_options = {
"url": "",
"dbtable": "",
"user": "",
"password": "",
"redshiftTmpDir": "s3://madl-temp/redshift_temp/"
}
data = glueContext.create_dynamic_frame_from_options(connection_type="redshift",
connection_options=my_conn_options,
transformation_ctx=table_name,
additional_options={
"jobBookmarkKeys": ["timestamp"],
"jobBookmarkKeysSortOrder": "asc"}).toDF()
log.info(str(data.count()))
Где date_col
столбец с меткой времени в красном смещении. Я также использовал job.init(
), и job.commit()
в моем коде и после каждого запуска я получаю полное количество загруженных данных, а не вновь добавленные строки в моей таблице красного смещения.
В соответствии с приведенной ниже документацией я также могу использовать Redshift в качестве источника JDBC для инкрементных целей.
Я не могу увидеть ни metadata
одного для transformation_ctx
в временном каталоге клея. Итак, в чем может быть причина моей проблемы? Или я что-то упускаю?
Комментарии:
1. вам нужно включить закладку в вашей работе и передать столбец во время чтения, который однозначно идентифицирует строки, чтобы он мог считываться из последней обработанной строки. см. docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html
2. Я включил опцию закладки заданий, а также изменил свой код в соответствии с блогами AWS, но, тем не менее, он каждый раз загружает весь набор данных. Пожалуйста, ознакомьтесь с обновленным кодом в моем посте
3. Теперь, попробовав несколько способов, я думаю, что закладки заданий загружают добавочные данные только тогда, когда
S3
они выступают в качестве источника.4. он поддерживает источники jdbc, но с определенными условиями. Пожалуйста, проверьте приведенную выше ссылку на условия
5. Да, даже мое прикрепленное изображение в посте говорит о том же самом. Единственное, чего я до сих пор не пробовал, так это
jobBookmarkKeysSortOrder
. Дай мне попробовать!