PostgreSQL 连接

Postgres 连接类型提供了与 Postgres 数据库的连接能力。

配置连接

主机 (必需)

要连接的主机。

数据库 (可选)

指定要连接的数据库名称。

注意

如果您想定义默认的数据库 schema

用户名 (必需)

指定用于连接的用户名。

密码 (必需)

指定用于连接的密码。

额外参数 (可选)

指定可在 Postgres 连接中使用的额外参数(以 JSON 字典形式)。支持以下非标准 Python 参数:

  • sslmode - 此选项决定是否以及以何种优先级与服务器协商安全的 SSL TCP/IP 连接。有六种模式:disableallowpreferrequireverify-caverify-full

  • sslcert - 此参数指定客户端 SSL 证书的文件名,用于替代默认值。

  • sslkey - 此参数指定客户端 SSL 密钥的文件名,用于替代默认值。

  • sslrootcert - 此参数指定包含 SSL 证书颁发机构 (CA) 证书的文件名。

  • sslcrl - 此参数指定 SSL 证书吊销列表 (CRL) 的文件名。

  • application_name - 为 application_name 配置参数指定一个值。

  • keepalives_idle - 控制 TCP 在空闲多少秒后应向服务器发送 keepalive 消息。

  • client_encoding: 指定客户端连接的编码(字符集)。请参阅 Postgres 支持的字符集

  • cursor - 指定查询数据库时使用的游标类型。您可以选择以下之一:

    • dictcursor: 使用 psycopg2.extras.DictCursor 将查询结果返回为 Python 字典。

    • realdictcursor: 类似于 DictCursor,但使用 psycopg2.extras.RealDictCursor 以获得稍好的性能。

    • namedtuplecursor: 使用 psycopg2.extras.NamedTupleCursor 将查询结果返回为 named tuple。

    更多信息,请参阅 psycopg2 文档中关于 连接和游标子类 的部分。

有关所有支持的 Postgres 参数的更多详细信息,请参阅 Postgres 文档

“extra” 字段示例

{
   "sslmode": "verify-ca",
   "sslcert": "/tmp/client-cert.pem",
   "sslca": "/tmp/server-ca.pem",
   "sslkey": "/tmp/client-key.pem"
}

以下额外参数用于额外的 Hook 配置

  • iam - 如果设置为 True,则使用 AWS IAM 数据库身份验证连接 Amazon RDSAmazon AuroraAmazon Redshift

  • aws_conn_id - 用于通过 AWS IAM 进行身份验证的 AWS 连接 ID,如果未指定,则使用 aws_default

  • redshift - 在启用 AWS IAM 数据库身份验证时使用。如果设置为 True,则对 Amazon Redshift 集群进行身份验证,否则对 Amazon RDS 或 Amazon Aurora 进行身份验证。

  • cluster-identifier - 包含您请求凭据的数据库的 Amazon Redshift 集群的唯一标识符。此参数区分大小写。如果未指定,则使用 连接主机 的主机名。

“extra” 字段示例 (Amazon RDS PostgreSQL 或 Amazon Aurora PostgreSQL)

{
   "iam": true,
   "aws_conn_id": "aws_awesome_rds_conn"
}

“extra” 字段示例 (Amazon Redshift)

{
   "iam": true,
   "aws_conn_id": "aws_awesome_redshift_conn",
   "redshift": "/tmp/server-ca.pem",
   "cluster-identifier": "awesome-redshift-identifier"
}

当将连接指定为 URI(在 AIRFLOW_CONN_{CONN_ID} 变量中)时,您应遵循数据库连接的标准语法进行指定,其中 extra 参数作为 URI 的参数传递(请注意,URI 的所有组件都应进行 URL 编码)。

例如

export AIRFLOW_CONN_POSTGRES_DEFAULT='postgresql://postgres_user:XXXXXXXXXXXX@1.1.1.1:5432/postgresdb?sslmode=verify-ca&sslcert=%2Ftmp%2Fclient-cert.pem&sslkey=%2Ftmp%2Fclient-key.pem&sslrootcert=%2Ftmp%2Fserver-ca.pem'

本条目是否有帮助?