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 支援的字元集

  • 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 RDSAmazon AuroraAmazon 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'

此條目是否有幫助?