airflow.providers.google.cloud.transfers.bigquery_to_postgres

此模块包含 Google BigQuery 到 PostgreSQL 的操作符。

模块内容

BigQueryToPostgresOperator

从 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_fieldsreplace_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,则必须指定。

get_sql_hook()[源代码]

返回一个具体的 SQL Hook(例如 PostgresHook)。

execute(context)[源代码]

创建操作符时派生。

上下文与渲染 jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

此条目有帮助吗?