Подключение к Postgres с помощью скрипта AWS Glue Python - PullRequest
2 голосов
/ 03 мая 2019

Просматривая документы AWS Glue, я не вижу упоминаний о том, как подключиться к Postgres RDS с помощью задания Glue типа "оболочка Python". Я установил соединение RDS в AWS Glue и подтвердил, что могу подключиться к своему RDS. Кроме того, при создании задания Python я вижу свое соединение и добавляю его в скрипт.

Как использовать соединение, которое я добавил в задание Glue, для запуска некоторого необработанного SQL?

Заранее спасибо,

1 Ответ

0 голосов
/ 05 мая 2019

Существует 2 возможных способа доступа к данным из RDS в glue etl (spark):

1-й вариант :

  • Создание клеевого соединения поверх RDS
  • Создайте клеевой гусеничный ход поверх этого клеевого соединения, созданного на первом шаге
  • Запустите сканер, чтобы заполнить каталог клея базой данных и таблицей, указывающей на таблицы RDS.
  • Создание динамического фрейма в glue etl с использованием только что созданной базы данных и таблицы в каталоге клея.

Пример кода:

from pyspark.context import SparkContext
from awsglue.context import GlueContext
glueContext = GlueContext(SparkContext.getOrCreate())
DyF = glueContext.create_dynamic_frame.from_catalog(database="{{database}}", table_name="{{table_name}}")

2-й вариант

Создание фрейма данных с использованием spark sql:

url = "jdbc:postgresql://<rds_host_name>/<database_name>"
properties = {
"user" : "<username>",
"password" : "<password>"
}
df = spark.read.jdbc(url=url, table="<schema.table>", properties=properties)

Примечание:

  • Для создания базы данных с использованием spark sql вам понадобится передать postgres jdbc jar.
  • Я попробовал первый метод для glue etl и второй метод для оболочки python (dev-endpoint)
...