使用 Azure Data Factory 或 Synapse Analytics 從 Netezza 複製資料

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

本文概述如何在 Azure Data Factory 或 Synapse Analytics 管線中使用複製活動,從 Netezza 複製資料。 本文是以複製活動 為基礎 ,其呈現複製活動的一般概觀。

提示

如需從 Netezza 移轉至 Azure 的資料案例,請深入瞭解從內部部署 Netezza 伺服器將資料移轉 至 Azure

支援的功能

下列功能支援此 Netezza 連接器:

支援的功能 IR
複製活動 (source/-) ① ②
查閱活動 ① ②

(1) Azure 整合執行時間 (2) 自我裝載整合執行時間

如需複製活動支援做為來源和接收的資料存放區清單,請參閱 支援的資料存放區和格式

Netezza 連接器支援從來源平行複製。 如需詳細資訊,請參閱 Netezza 平行複製一節。

此服務提供內建驅動程式來啟用連線。 您不需要手動安裝任何驅動程式,即可使用此連接器。

必要條件

如果您的資料存放區位於內部部署網路、Azure 虛擬網路或 Amazon Virtual Private Cloud 內,您必須設定 自我裝載整合執行時間 以連線到它。

如果您的資料存放區是受控雲端資料服務,您可以使用 Azure Integration Runtime。 如果存取僅限於防火牆規則中核准的 IP,您可以將 Azure Integration Runtime IP 新增 至允許清單。

您也可以使用 Azure Data Factory 中的受控虛擬網路整合執行時間 功能來存取內部部署網路,而不需安裝及設定自我裝載整合執行時間。

如需 Data Factory 所支援之網路安全性機制和選項的詳細資訊,請參閱 資料存取策略

開始使用

您可以使用 .NET SDK、Python SDK、Azure PowerShell、REST API 或 Azure Resource Manager 範本,建立使用複製活動的管線。 如需使用複製活動的管線建立管線的逐步指示,請參閱複製活動 教學課程。

使用 UI 建立 Netezza 的連結服務

使用下列步驟,在 Azure 入口網站 UI 中建立 Netezza 的連結服務。

  1. 流覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,然後選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 Netezza,然後選取 Netezza 連接器。

    Screenshot of the Netezza connector.

  3. 設定服務詳細資料、測試連線,並建立新的連結服務。

    Screenshot of linked service configuration for Netezza.

連線or 組態詳細資料

下列各節提供屬性的詳細資料,您可以用來定義 Netezza 連接器專屬的實體。

連結的服務屬性

Netezza 連結服務支援下列屬性:

屬性 描述 必要
type type 屬性必須設定為 Netezza Yes
connectionString 要連線到 Netezza 的 ODBC 連接字串。
您也可以將密碼放入 Azure 金鑰保存庫,並從 pwd 連接字串提取組態。 如需詳細資料,請參閱下列範例和 在 Azure 金鑰保存庫 中儲存認證一文。
Yes
connectVia 用來 連接到資料存放區的 Integration Runtime 。 請從 必要條件一 節深入瞭解。 如果未指定,則會使用預設的 Azure Integration Runtime。 No

典型的連接字串為 Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password> 。 下表描述您可以設定的更多屬性:

屬性 描述 必要
SecurityLevel 驅動程式用於連線至資料存放區的安全性層級。 驅動程式支援使用 SSL 第 3 版進行單向驗證的 SSL 連線。
範例:SecurityLevel=preferredSecured。 支援的值為:
- 只有不安全 的 ( onlyUnSecured ):驅動程式不會使用 SSL。
- 慣用不安全 (preferredUnSecured) (預設值) :如果伺服器提供選擇,驅動程式就不會使用 SSL。
- 慣用安全保護 (preferredSecured) :如果伺服器提供選擇,驅動程式會使用 SSL。
- 只有受保護的 (onlySecured) :除非有 SSL 連線可用,否則驅動程式不會連線。
No
CaCertFile 伺服器所使用的 SSL 憑證完整路徑。 範例: CaCertFile=<cert path>; 是,如果已啟用 SSL

範例

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

範例:將密碼儲存在 Azure 金鑰保存庫

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<user name>;",
            "pwd": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

資料集屬性

本節提供 Netezza 資料集所支援的屬性清單。

如需可用來定義資料集之區段和屬性的完整清單,請參閱 資料集

若要從 Netezza 複製資料,請將資料集的 type 屬性設定 NetezzaTable 。 支援下列屬性:

屬性 描述 必要
type 資料集的類型屬性必須設定為: NetezzaTable Yes
schema 架構的名稱。 否(如果已指定活動來源中的「查詢」)
table 資料表的名稱。 否(如果已指定活動來源中的「查詢」)
tableName 具有架構的資料表名稱。 這個屬性支援回溯相容性。 針對新的工作負載使用 schematable 否(如果已指定活動來源中的「查詢」)

範例

{
    "name": "NetezzaDataset",
    "properties": {
        "type": "NetezzaTable",
        "linkedServiceName": {
            "referenceName": "<Netezza linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {}
    }
}

複製活動屬性

本節提供 Netezza 來源所支援的屬性清單。

如需可用來定義活動的區段和屬性完整清單,請參閱 管線

Netezza 作為來源

提示

若要使用資料分割有效率地從 Netezza 載入資料,請從 Netezza 平行複製一節深入瞭解。

若要從 Netezza 複製資料,請將 複製活動中的來源 類型設定為 NetezzaSource 。 複製活動 來源 區段中支援下列屬性:

屬性 描述 必要
type 複製 活動來源的類型屬性必須設定為 NetezzaSource Yes
query 使用自訂 SQL 查詢來讀取資料。 範例: "SELECT * FROM MyTable" 否(如果已指定資料集中的 「tableName」 )
partitionOptions 指定用來從 Netezza 載入資料的資料分割選項。
允許值為: None (預設值)、 DataSlice DynamicRange
啟用分割區選項時(也就是,不是 None ),平行處理原則從 Netezza 資料庫同時載入資料的程度是由在複製活動上設定來控制 parallelCopies
No
partition設定 指定資料分割的設定群組。
當資料分割選項不是 None 時套用。
No
partitionColumnName 以整數類型指定來源資料 行的名稱,此類型 將由範圍分割用於平行複製。 如果未指定,則會自動偵測資料表的主鍵,並當做資料分割資料行使用。
當分割區選項為 DynamicRange 時套用。 如果您使用查詢來擷取來源資料,請在 WHERE 子句中勾點 ?AdfRangePartitionColumnName 。 請參閱 Netezza 平行複製一節中的 範例。
No
partitionUpperBound 要複製資料的資料分割資料行最大值。
當資料分割選項為 DynamicRange 時套用。 如果您使用查詢來擷取來源資料,請在 WHERE 子句中勾點 ?AdfRangePartitionUpbound 。 如需範例,請參閱 Netezza 的平行複製一節。
No
partitionLowerBound 要複製資料的資料分割資料行最小值。
當分割區選項為 DynamicRange 時套用。 如果您使用查詢來擷取來源資料,請在 WHERE 子句中勾點 ?AdfRangePartitionLowbound 。 如需範例,請參閱 Netezza 的平行複製一節。
No

範例:

"activities":[
    {
        "name": "CopyFromNetezza",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Netezza input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "NetezzaSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

來自 Netezza 的平行複製

Data Factory Netezza 連接器提供內建的資料分割,以平行的方式從 Netezza 複製資料。 您可以在複製活動的 [源 資料表] 上 找到資料分割選項。

Screenshot of partition options

當您啟用分割複製時,服務會針對 Netezza 來源執行平行查詢,以依資料分割載入資料。 平行度是由 parallelCopies 複製活動上的 設定所控制。 例如,如果您設定 parallelCopies 為 4,服務會根據指定的分割區選項和設定,同時產生並執行四個查詢,而每個查詢都會從 Netezza 資料庫擷取部分資料。

建議您使用資料分割來啟用平行複製,特別是當您從 Netezza 資料庫載入大量資料時。 以下是針對不同案例的建議組態。 將資料複製到檔案型資料存放區時,會重新命令將資料夾寫入為多個檔案(僅指定資料夾名稱),在此情況下,效能優於寫入單一檔案。

案例 建議的設定
從大型資料表完整載入。 資料分割選項 :資料配量。

在執行期間,服務會根據 Netezza 的內建資料配量 自動分割資料,並依分割區複製資料。
使用自訂查詢載入大量資料。 資料分割選項 :資料配量。
查詢 SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>
在執行期間,服務會 ?AdfPartitionCount 取代 (複製活動上設定的平行複製號碼),並使用 ?AdfDataSliceCondition 資料配量分割邏輯來取代 ,並傳送至 Netezza。
使用自訂查詢載入大量資料,其整數資料行具有範圍分割的偶數分佈值。 資料分割選項 :動態範圍分割。
查詢 SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>
資料分割資料行 :指定用來分割資料的資料行。 您可以針對具有整數資料類型的資料行進行分割。
資料分割上限 分割區下限 :指定是否要針對分割區資料行進行篩選,以便只擷取下限和上層範圍之間的資料。

在執行期間,服務會將 ?AdfRangePartitionColumnName?AdfRangePartitionUpbound?AdfRangePartitionLowbound 取代為每個分割區的實際資料行名稱和值範圍,並傳送至 Netezza。
例如,如果您的分割區資料行 「ID」 設定為 1,並將上限設定為 80,且平行複製集設為 4,則服務會依 4 個分割區擷取資料。 其識別碼分別介於 [1,20]、[21、40]、[41、60] 和 [61,80] 之間。

範例:使用資料配量分割進行查詢

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>",
    "partitionOption": "DataSlice"
}

範例:使用動態範圍分割進行查詢

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<dynamic_range_partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

查閱活動屬性

若要瞭解屬性的詳細資料,請檢查 查閱活動

如需複製活動支援做為來源和接收的資料存放區清單,請參閱 支援的資料存放區和格式