Как загрузить частичные данные из каталогизированного соединения JDBC в AWS Glue? - PullRequest
0 голосов
/ 24 сентября 2018

Я понимаю, что могу загрузить всю таблицу из каталога JDBC-подключения через контекст Glue следующим образом:

glueContext.create_dynamic_frame.from_catalog(
    database="jdbc_rds_postgresql",
    table_name="public_foo_table",
    transformation_ctx="datasource0"
)

Однако я хотел бы частично загрузить таблицу с использованием каталогизированнойсоединение, как если бы я использовал некаталогизированное соединение JDBC через сеанс spark, например:

query = "(select * from public.foo_table where date='%s') as data" % date_fm)
spark.read.jdbc(url=DB_URL, table=query)

Можно ли использовать каталогизированное соединение вместо этого?

В качестве альтернативы, при использовании некаталогизированного соединенияСоединение Мне трудно понять, как заблокировать доступ к некаталогизированному соединению, чтобы к нему мог получить доступ только задание Glue.Какие у меня варианты?

1 Ответ

0 голосов
/ 25 сентября 2018

Теоретически этого можно достичь с помощью каталогизированного соединения в Glue, используя Предикаты Pushdown , где вы добавляете параметр push_down_predicate для фильтрации ваших данных при их чтении.Итак, используя ваш пример:

glueContext.create_dynamic_frame.from_catalog(
    database="jdbc_rds_postgresql",
    table_name="public_foo_table",
    transformation_ctx="datasource0",
    push_down_predicate="date=%s" % date_fm
)

Однако, кажется, что на момент написания это поддерживается только для источников S3.

...