PostgreSQL 连接¶
Postgres 连接类型提供与 Postgres 数据库的连接。
配置连接¶
- 主机(必填)
要连接的主机。
- 数据库(可选)
指定要连接的数据库的名称。
- 登录名(必填)
指定要连接的用户名。
- 密码(必填)
指定要连接的密码。
- 额外参数(可选)
指定可以在 Postgres 连接中使用的额外参数(作为 json 字典)。支持以下标准 Python 参数之外的参数
sslmode
- 此选项确定是否以及以什么优先级与服务器协商安全的 SSL TCP/IP 连接。有六种模式:disable
、allow
、prefer
、require
、verify-ca
、verify-full
。sslcert
- 此参数指定客户端 SSL 证书的文件名,替换默认值。sslkey
- 此参数指定客户端 SSL 密钥的文件名,替换默认值。sslrootcert
- 此参数指定包含 SSL 证书颁发机构 (CA) 证书的文件名。sslcrl
- 此参数指定 SSL 证书吊销列表 (CRL) 的文件名。application_name
- 指定 application_name 配置参数的值。keepalives_idle
- 控制在 TCP 向服务器发送 keepalive 消息之前不活动的时间(以秒为单位)。client_encoding
:指定客户端连接的客户端编码(字符集)。请参阅 Postgres 支持的字符集
有关所有支持的 Postgres 参数的更多详细信息,请参阅 Postgres 文档。
示例“额外参数”字段
{ "sslmode": "verify-ca", "sslcert": "/tmp/client-cert.pem", "sslca": "/tmp/server-ca.pem", "sslkey": "/tmp/client-key.pem" }
以下额外参数用于其他 Hook 配置
iam
- 如果设置为True
,则对 Amazon RDS、Amazon Aurora 或 Amazon Redshift 使用 AWS IAM 数据库身份验证。aws_conn_id
- 用于通过 AWS IAM 进行身份验证的 AWS 连接 ID,如果未指定,则使用 aws_default。redshift
- 在启用 AWS IAM 数据库身份验证时使用。如果设置为True
,则对 Amazon Redshift 集群进行身份验证,否则对 Amazon RDS 或 Amazon Aurora 进行身份验证。cluster-identifier
- 包含您要为其请求凭据的数据库的 Amazon Redshift 集群的唯一标识符。此参数区分大小写。如果未指定,则使用 连接主机 中的主机名。
示例“额外参数”字段(Amazon RDS PostgreSQL 或 Amazon Aurora PostgreSQL)
{ "iam": true, "aws_conn_id": "aws_awesome_rds_conn" }
示例“额外参数”字段(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'