使用 Azure Data Factory 或 Synapse Analytics 從 PostgreSQL 複製資料 (舊版)
適用於:Azure Data Factory
Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
本文概述如何使用 Azure Data Factory 和 Synapse Analytics 管線中的複製活動,以從 PostgreSQL 資料庫複製資料。 本文是根據複製活動概觀一文,該文提供複製活動的一般概觀。
重要
PostgreSQL V2 連接器提供改良的原生 PostgreSQL 支援。 如果您在解決方案中使用 PostgreSQL V1 連接器 ,請將 PostgreSQL 連接器 升級為 V1 處於 支援結束階段。 如需 V2 與 V1 之間差異的詳細數據,請參閱本節。
支援的功能
此 PostgreSQL 連接器支援下功能:
支援的功能 | IR |
---|---|
複製活動 (來源/-) | (1) (2) |
查閱活動 | (1) (2) |
① Azure 整合執行階段 ② 自我裝載整合執行階段
如需複製活動所支援作為來源/接收器的資料存放區清單,請參閱支援的資料存放區表格。
具體而言,這個 PostgreSQL 連接器支援 PostgreSQL 7.4 版和更新版本。
必要條件
如果您的資料存放區位於內部部署網路、Azure 虛擬網路或 Amazon 虛擬私人雲端中,則必須設定自我裝載整合執行階段以與其連線。
如果您的資料存放區是受控雲端資料服務,則可使用 Azure Integration Runtime。 如果只能存取防火牆規則中核准的 IP,您可以將 Azure Integration Runtime IP 新增至允許清單。
您也可以使用 Azure Data Factory 中的受控虛擬網路整合執行階段功能來存取內部部署網路,而不需要安裝和設定自我裝載整合執行階段。
如需 Data Factory 支援的網路安全性機制和選項的詳細資訊,請參閱資料存取策略。
Integration Runtime 從版本 3.7 開始提供內建的 PostgreSQL 驅動程式,因此您不需要手動安裝任何驅動程式。
開始使用
若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:
使用 UI 建立 PostgreSQL 的連結服務
使用下列步驟,在 Azure 入口網站 UI 中建立 PostgreSQL 的連結服務。
前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:
搜尋 Postgre 並選取 PostgreSQL 連接器。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
下列各節提供屬性的相關詳細資料,這些屬性是用來定義 PostgreSQL 連接器專屬的 Data Factory 實體。
連結服務屬性
以下是針對 PostgreSQL 已連結服務支援的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 類型屬性必須設定為:PostgreSql | Yes |
connectionString | ODBC 連接字串,用於連線到適用於 PostgreSQL 的 Azure 資料庫。 您也可以將密碼放在 Azure Key Vault 中,並從連接字串中提取 password 組態。 請參閱下列範例和在 Azure Key Vault 中儲存認證一文中的更多詳細資料。 |
Yes |
connectVia | 用於連線到資料存放區的 Integration Runtime。 深入了解必要條件一節。 如果未指定,就會使用預設的 Azure Integration Runtime。 | No |
一般的連接字串為 Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>
。 您可以根據您的案例設定更多屬性:
屬性 | 說明 | 選項。 | 必要 |
---|---|---|---|
EncryptionMethod (EM) | 驅動程式用來加密在驅動程式和資料庫伺服器之間傳送之資料的方法。 例如,EncryptionMethod=<0/1/6>; |
0 (無加密) (預設) / 1 (SSL) / 6 (RequestSSL) | No |
ValidateServerCertificate (VSC) | 決定啟用 SSL 加密時,驅動程式是否驗證由資料庫伺服器所傳送的憑證 (加密方法 = 1)。 例如,ValidateServerCertificate=<0/1>; |
0 (停用) (預設) / 1 (啟用) | No |
注意
為了在使用自我裝載 Integration Runtime 時透過 ODBC 連線進行完整 SSL 驗證,您必須使用 ODBC 類型連線,而不是明確使用 PostgreSQL 連接器,完成下列設定:
- 在任何 SHIR 伺服器上設定 DSN。
- 將 PostgreSQL 的適當憑證置於 SHIR 伺服器上的 C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt 中。 這是 ODBC 驅動程式尋找 > SSL 憑證,以在連線至資料庫時進行驗證的位置。
- 在資料處理站連線中,使用 ODBC 類型連線,而連接字串會指向您在 SHIR 伺服器上建立的 DSN。
範例:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
範例:在 Azure Key Vault 中儲存密碼
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
如果您使用具有以下承載的 PostgreSQL 連結服務,它仍然如同現狀受支援,但是建議您使用新版本。
先前的承載:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"server": "<server>",
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 PostgreSQL 資料集所支援的屬性清單。
若要從 PostgreSQL 複製資料,以下是支援的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 資料集的類型屬性必須設定為:PostgreSqlTable | Yes |
schema | 結構描述的名稱。 | 否 (如果已指定活動來源中的「查詢」) |
table | 資料表的名稱。 | 否 (如果已指定活動來源中的「查詢」) |
tableName | 具有結構描述的資料表名稱。 支援此屬性是基於回溯相容性。 對於新的工作負載,請使用 schema 和 table 。 |
否 (如果已指定活動來源中的「查詢」) |
範例
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
如果您使用 RelationalTable
具型別資料集,雖然仍照現狀支援,但建議您往後使用新的版本。
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 PostgreSQL 來源所支援的屬性清單。
PostgreSQL 作為來源
若要從 PostgreSQL 複製資料,複製活動 [來源] 區段中支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動來源的類型屬性必須設定為:PostgreSqlSource | Yes |
query | 使用自訂 SQL 查詢來讀取資料。 例如: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" 。 |
否 (如果已指定資料集中的 "tableName") |
注意
結構描述和資料表名稱會區分大小寫。 在查詢中以 ""
(雙引號) 括住它們。
範例:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlSource",
"query": "SELECT * FROM \"MySchema\".\"MyTable\""
},
"sink": {
"type": "<sink type>"
}
}
}
]
如果您使用 RelationalSource
具型別來源,雖然仍照現狀支援,但建議您往後使用新的版本。
查閱活動屬性
若要了解屬性的詳細資料,請參閱查閱活動。
相關內容
如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。