PostgreSQL 連線¶
Postgres 連線類型提供與 Postgres 資料庫的連線。
設定連線¶
- 主機 (必填)
要連線的主機。
- 資料庫 (選填)
指定要連線的資料庫名稱。
注意
如果您想定義預設資料庫結構描述
使用
PostgresOperator
請參閱 Passing Server Configuration Parameters into PostgresOperator使用
PostgresHook
請參閱 search_path
- 登入 (必填)
指定要連線的使用者名稱。
- 密碼 (必填)
指定要連線的密碼。
- 額外設定 (選填)
指定可用於 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 支援的字元集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
,則對 Amazon RDS、Amazon Aurora 或 Amazon Redshift 使用 AWS IAM 資料庫驗證。aws_conn_id
- 用於透過 AWS IAM 進行驗證的 AWS 連線 ID,如果未指定,則使用 aws_default。redshift
- 在啟用 AWS IAM 資料庫驗證時使用。如果設定為True
,則驗證到 Amazon Redshift Cluster,否則驗證到 Amazon RDS 或 Amazon Aurora。cluster-identifier
- 包含您要求憑證之資料庫的 Amazon Redshift Cluster 的唯一識別符。此參數區分大小寫。如果未指定,則使用來自連線主機的主機名稱。
「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 連線的標準語法指定,其中 extras 作為 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'