airflow.providers.google.cloud.transfers.bigquery_to_postgres
¶
此模块包含 Google BigQuery 到 PostgreSQL 的操作符。
模块内容¶
类¶
从 BigQuery 表中获取数据(或者获取选定的列)并插入到 PostgreSQL 表中。 |
- class airflow.providers.google.cloud.transfers.bigquery_to_postgres.BigQueryToPostgresOperator(*, target_table_name, postgres_conn_id='postgres_default', replace=False, selected_fields=None, replace_index=None, **kwargs)[源代码]¶
基类:
airflow.providers.google.cloud.transfers.bigquery_to_sql.BigQueryToSqlBaseOperator
从 BigQuery 表中获取数据(或者获取选定的列)并插入到 PostgreSQL 表中。
由于 PostgreSQL 的 ON CONFLICT 子句的限制,当使用参数 replace=True 时,selected_fields 和 replace_index 参数都需要指定。实际上,这意味着要使用 replace=True 运行此操作符,目标表必须已经有一个唯一的索引列/列,否则 INSERT 命令将失败并出现错误。请参阅 https://postgresql.ac.cn/docs/current/sql-insert.html 了解更多信息。
请注意,目前此操作符不支持 PostgreSQL 的 INSERT 命令可以使用的大部分子句,例如 ON CONSTRAINT、WHERE、DEFAULT 等。如果您的查询需要这些子句,SQLExecuteQueryOperator 将是更合适的选择。
另请参阅
有关如何使用此操作符的更多信息,请参阅指南:操作符
- 参数
target_table_name ( str ) – 目标 Postgres 表(已模板化)
postgres_conn_id ( str ) – postgres 连接 ID的引用。
replace ( bool ) – 是否替换而不是插入
selected_fields ( list[str] | str | None ) – 要返回的字段列表(逗号分隔)。如果未指定,则返回所有字段。如果 replace 为 True,则必须指定。
replace_index ( list[str] | str | None ) – 作为 ON CONFLICT 子句索引的列或列名列表。如果 replace 为 True,则必须指定。