значение transformation_ctx не сохраняется для инкрементной цели в временном каталоге задания склеивания

#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 . Дай мне попробовать!