Airflow 上传 Pandas 数据帧到 Redshift table

Airflow upload Pandas dataframe to Redshift table

我想使用 Airflow 在 redshift 中填充 table。我要插入的数据采用 pandas 数据帧的形式,尽管我可以将其写入 csv 或任何其他格式。

我正在查看 RedshiftSQLOperator 的文档,但插入内容是硬编码的,我不知道是否有批量上传数据的方法。

redshift 运算符还定义了一个钩子,让您可以访问 SQL 引擎 -- https://airflow.apache.org/docs/apache-airflow-providers-amazon/2.4.0/_api/airflow/providers/amazon/aws/hooks/redshift/index.html#airflow.providers.amazon.aws.hooks.redshift.RedshiftSQLHook.

最好使用 pandas to_sql 函数,其中指定连接参数以实现插入。

redshift_hook = RedshiftSQLHook(...)
engine = redshift_hook.get_sqlalchemy_engine()

df.to_sql(..., conn=engine)