Загрузка CSV в AWS RDS с помощью крюка Airflow Postgres - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь использовать хук copy_expert здесь: https://airflow.apache.org/docs/stable/_modules/airflow/hooks/postgres_hook.html, но я не понимаю синтаксис и у меня нет примера для подражания. Моя цель - загрузить CSV в AWS экземпляр RDS, работающий Postgres.

hook_copy_expert = airflow.hooks.postgres_hook.PostgresHook('postgres_amazon')

def import_to_postgres():
sql = f"DELETE FROM amazon.amazon_purchases; COPY amazon.amazon_purchases FROM '{path}' DELIMITER ',' CSV HEADER;"
        hook_copy_expert(sql, path, open=open)

t4 = PythonOperator(
    task_id = 'import_to_postgres',
    python_callable = import_to_postgres,
    dag = dag,
    )

Когда я запускаю это, я получаю сообщение об ошибке name 'sql' is not defined. Может кто-нибудь помочь мне понять, что я делаю не так?

Редактировать: я получил хук для запуска, но получил ошибку:

ERROR - must be superuser or a member of the pg_read_server_files role to COPY from a file
HINT:  Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.

Я думал, что весь смысл использования хука Postgres заключается в использовании команды COPY в SQL без статуса суперпользователя? Что я делаю неправильно?

...