適用於:
Azure Data Factory
Azure Synapse Analytics
秘訣
Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。
本文說明如何利用 Azure Data Factory 中的複製活動與 Synapse Analytics 管線,從 DB2 資料庫複製資料。 本文是根據複製活動概觀一文,該文提供複製活動的一般概觀。
支援的功能
此 DB2 連接器支援下列功能:
| 支援的功能 | IR |
|---|---|
| 複製作業(來源/-) | (1) (2) |
| 查閱活動 | (1) (2) |
(1) Azure 整合執行時 (2) 自架整合執行時
如需複製活動所支援作為來源或接收器的資料存放區清單,請參閱支援的資料存放區表格。
具體而言,此 DB2 連接器支援以下 IBM DB2 平台和版本,以及支援分散式關聯資料庫架構 (DRDA) SQL 存取管理員 (SQLAM) 版本 9、10 和 11。 其會利用 DDM/DRDA 通訊協定。
- IBM DB2 for z/OS 12.1
- IBM DB2 for z/OS 11.1
- IBM DB2 for i 7.3
- IBM DB2 for i 7.2
- IBM DB2 for i 7.1
- 適用於 LUW 11 的 IBM DB2
- 適用於 LUW 10.5 的 IBM DB2
- 適用於 LUW 10.1 的 IBM DB2
先決條件
如果你的資料儲存位於本地網路、Azure虛擬網路或亞馬遜虛擬私人雲中,你需要配置一個自架整合執行時來連接它。
如果你的資料儲存是雲端管理型資料服務,你可以使用Azure Integration Runtime。 如果存取權限限制在防火牆規則中核准的 IP,你可以將 Azure Integration Runtime IPs 加入允許清單。
你也可以在 Azure Data Factory 中使用 managed 虛擬網路整合執行時功能,無需安裝和設定自架整合執行環境即可存取本地網路。
如需 Data Factory 支援的網路安全性機制和選項的詳細資訊,請參閱資料存取策略。
Integration Runtime 內建了 DB2 驅動程式,因此複製資料時不需要手動安裝任何驅動程式。
開始使用
若要使用管線執行複製活動,您可以使用下列其中一個工具或 SDK:
使用 UI 建立連結至 DB2 的服務
請依照以下步驟在 Azure 入口網站介面中建立連結至 DB2 的服務。
請瀏覽 Azure Data Factory 或 Synapse 工作區的管理標籤,選擇連結服務,然後點選新建:
搜尋 DB2 並選取 DB2 連接器。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
下列各節提供屬性的相關詳細資料,這些屬性是用來定義 DB2 連接器專屬的 Data Factory 實體。
連結服務屬性
以下是針對 DB2 連結服務支援的屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 類型屬性必須設為:DB2 | 是 |
| connectionString | 指定連線到 DB2 執行個體所需的資訊。 你也可以在Azure Key Vault輸入密碼,然後從連接字串中移除 password設定。 詳情請參閱以下範例及Azure Key Vault 中的 Store 憑證文章。 |
是 |
| connectVia | Integration Runtime 用於連接資料儲存。 深入了解必要條件一節。 若未指定,則使用預設Azure Integration Runtime。 | 否 |
連接字串 內部的典型特性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 伺服器 | DB2 伺服器的名稱。 您可以指定在伺服器名稱後面加上以冒號隔開的連接埠號碼,例如 server:port。DB2 連接器會利用 DDM/DRDA 通訊協定,但若未指定,則預設會使用連接埠 50000。 特定 DB2 資料庫所使用的連接埠可能會根據版本和您的設定而有所不同,例如對於 DB2 LUW,預設連接埠為 50000,對於 AS400,預設連接埠則為 446 或 448 (若已啟用 TLS 的話)。 請參閱下列 DB2 文件,以了解如何設定連接埠: DB2 z/OS、 DB2 iSeries和 DB2 LUW。 |
是 |
| 資料庫 | DB2 資料庫的名稱。 | 是 |
| authenticationType | 用來連接到 DB2 資料庫的驗證類型。 允許的值為基本。 |
是 |
| 使用者名稱 | 指定要連線到 DB2 資料庫的使用者名稱。 | 是 |
| 密碼 | 指定您為使用者名稱所指定之使用者帳戶的密碼。 將此欄位標記為 SecureString 以安全儲存,或參考儲存在 Azure Key Vault 的機密。 | 是 |
| packageCollection | 指定在查詢資料庫時,服務自動建立所需套件的位置。 如果未設定此項,服務會使用 {username} 做為預設值。 | 否 |
| certificateCommonName | 當您使用安全通訊端層 (SSL) 或傳輸層安全性 (TLS) 加密時,必須為憑證一般名稱輸入一值。 | 否 |
秘訣
如果您收到指出 The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805 的錯誤訊息,原因是未對使用者建立所需的套件。 根據預設,服務會嘗試以您用來連線到 DB2 的使用者身分,在集合下建立套件。 指定套件集合屬性,以指出在查詢資料庫時,服務要建立所需套件的位置。 如果您無法判斷套件集合名稱,請嘗試設定 packageCollection=NULLID。
範例︰
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;password=<password>;packageCollection=<packagecollection>;certificateCommonName=<certname>;"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;packageCollection=<packagecollection>;certificateCommonName=<certname>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
如果您使用具有以下承載的 DB2 連結服務,其仍然如同現狀受支援,但建議您使用新版本。
先前的承載:
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"server": "<servername:port>",
"database": "<dbname>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 DB2 資料集所支援的屬性清單。
若要從 DB2 複製資料,以下是支援的屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 資料集的類型屬性必須設為: Db2Table | 是 |
| 結構描述 | 結構描述的名稱。 | 否 (如果已指定活動來源中的「查詢」) |
| 表格 | 資料表的名稱。 | 否 (如果已指定活動來源中的「查詢」) |
| tableName | 具有結構描述的資料表名稱。 支援此屬性是基於回溯相容性。 對於新的工作負載,請使用 schema 和 table。 |
否 (如果已指定活動來源中的「查詢」) |
範例
{
"name": "DB2Dataset",
"properties":
{
"type": "Db2Table",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<DB2 linked service name>",
"type": "LinkedServiceReference"
}
}
}
如果您使用 RelationalTable 具型別資料集,雖然仍照現狀支援,但建議您往後使用新的版本。
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 DB2 來源所支援的屬性清單。
DB2 作為來源
若要從 DB2 複製資料,複製活動 source 區段中支援下列屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的類型屬性必須設定為 Db2Source | 是 |
| 查詢 | 使用自訂 SQL 查詢來讀取資料。 例如:"query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""。 |
否 (如果已指定資料集中的 "tableName") |
範例︰
"activities":[
{
"name": "CopyFromDB2",
"type": "Copy",
"inputs": [
{
"referenceName": "<DB2 input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "Db2Source",
"query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
},
"sink": {
"type": "<sink type>"
}
}
}
]
如果您使用 RelationalSource 具型別來源,雖然仍照現狀支援,但建議您往後使用新的版本。
DB2 的資料類型對應
從 DB2 複製資料時,從 DB2 資料類型到服務中內部使用的過渡期資料類型會使用下列對應。 請參閱結構描述和資料類型對應,以了解複製活動如何將來源結構描述和資料類型對應至接收器。
| DB2 資料庫類型 | 過渡期服務資料類型 |
|---|---|
| BigInt | Int64 |
| Binary | Byte[] |
| Blob | Byte[] |
| Char | String |
| Clob | String |
| Date | Datetime |
| DB2DynArray | String |
| DbClob | String |
| Decimal | Decimal |
| DecimalFloat | Decimal |
| Double | Double |
| Float | Double |
| Graphic | String |
| 整數 | Int32 |
| LongVarBinary | Byte[] |
| LongVarChar | String |
| LongVarGraphic | String |
| 數值 | Decimal |
| 里耳 | Single |
| SmallInt | Int16 |
| Time | TimeSpan |
| 時間戳記 | Datetime |
| VarBinary | Byte[] |
| VarChar | String |
| VarGraphic | String |
| Xml | Byte[] |
查詢活動屬性
若要了解屬性的詳細資料,請參閱查閱活動。
相關內容
如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。