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'

本條目是否有幫助?