PostgreSQL 连接

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

配置连接

主机 (必需)

要连接的主机。

数据库 (可选)

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

注意

如果要定义默认数据库模式

登录名 (必需)

指定要连接的用户名。

密码 (必需)

指定要连接的密码。

额外 (可选)

指定可在 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 应向服务器发送保持活动消息的非活动秒数。

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

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

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

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

    • namedtuplecursor:使用 psycopg2.extras.NamedTupleCursor 将查询结果作为命名元组返回。

    有关更多信息,请参阅 psycopg2 文档,了解 连接和光标子类

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

“extras”字段示例

{
   "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 集群的唯一标识符。此参数区分大小写。如果未指定,则使用连接主机中的主机名。

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

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

“extras”字段示例(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} 变量中)时,您应按照 DB 连接的标准语法指定它,其中额外参数作为 URI 的参数传递(请注意,URI 的所有组成部分都应进行 URL 编码)。

例如

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

此条目是否有帮助?