你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:
Azure 数据工厂
Azure Synapse Analytics
Tip
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 Netezza 复制数据。 本文是基于概括性介绍复制活动的复制活动一文编写的。
Tip
对于从 Netezza 到 Azure 的数据迁移方案,请在将数据从本地 Netezza 服务器迁移到 Azure 中了解详细信息。
Important
Netezza 连接器版本 2.0 提供改进的本机 Netezza 支持。 如果在解决方案中使用 Netezza 连接器版本 1.0,请在 2025 年 9 月 30 日之前升级 Netezza 连接器。 有关版本 2.0 和版本 1.0 之间差异的详细信息,请参阅此部分。
Supported capabilities
以下功能支持此 Netezza 连接器:
| Supported capabilities | IR |
|---|---|
| 复制活动(源/-) | ①(仅适用于版本 1.0)② |
| Lookup activity | ①(仅适用于版本 1.0)② |
① Azure 集成运行时 ② 自承载集成运行时
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储和格式。
此 Netezza 连接器支持:
- 从源进行并行复制。 有关详细信息,请参阅从 Netezza 进行并行复制部分。
- Netezza 性能服务器版本 11。
- 本文章中的 Windows 版本。
服务提供了内置驱动程序,用来启用连接。 无需要手动安装任何驱动程序即可使用此连接器。
对于版本 2.0,需要手动 安装 IBM Netezza ODBC 驱动程序 。 对于版本 1.0,该服务提供一个内置驱动程序来启用连接。 无需要手动安装任何驱动程序即可使用此连接器。
Prerequisites
如果数据存储位于本地网络、Azure 虚拟网络或 Amazon Virtual Private Cloud 内部,则需要配置自承载集成运行时才能连接到该数据存储。
要详细了解网络安全机制和数据工厂支持的选项,请参阅数据访问策略。
适用于版本 1.0
如果数据存储是托管的云数据服务,则可以使用 Azure Integration Runtime。 如果访问范围限制为防火墙规则中允许的 IP,你可以选择将 Azure Integration Runtime IP 添加到允许列表。
此外,还可以使用 Azure 数据工厂中的托管虚拟网络集成运行时功能访问本地网络,而无需安装和配置自承载集成运行时。
安装版本 2.0 的 Netezza ODBC 驱动程序
若要将 Netezza 连接器与版本 2.0 配合使用,请在运行自承载集成运行时的计算机上安装 IBM Netezza ODBC 驱动程序 版本 11.02.02 或更高版本。
开始
可以通过使用 .NET SDK、Python SDK、Azure PowerShell、REST API 或 Azure 资源管理器模板创建使用复制活动的管道。 有关创建包含复制活动的管道的分步说明,请参阅复制活动教程。
使用 UI 创建到 Netezza 的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 Netezza 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索“Netezza”,然后选择“Netezza”连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
以下部分详述的属性可用于定义特定于 Netezza 连接器的实体。
链接服务属性
Netezza 连接器现在支持版本 2.0。 请参阅本 部分 ,从版本 1.0 升级 Netezza 连接器版本。 关于属性详情,请参阅对应部分。
Version 2.0
应用版本 2.0 时,Netezza 链接服务支持以下属性:
| Property | Description | Required |
|---|---|---|
| 类型 | “type”属性必须设置为“Netezza” 。 | Yes |
| 版本 | 指定的版本。 该值为 2.0。 |
Yes |
| 服务器 | Netezza 服务器的主机名或 IP 地址。 | Yes |
| 移植 | 服务器侦听器的端口号。 | Yes |
| 数据库 | Netezza 数据库的名称。 | Yes |
| uid | 用于连接到数据库的用户 ID。 | Yes |
| pwd | 用于连接到数据库的密码。 | Yes |
| SecurityLevel | 驱动程序用于连接到数据存储的安全级别。 示例: SecurityLevel=preferredUnSecured。 支持的值是:- 仅限未受保护 (onlyUnSecured) :该驱动程序不使用 SSL。 - 首选未受保护 (preferredUnSecured)(默认) :如果该服务器提供选择,则驱动程序不使用 SSL。 |
No |
| connectVia | 用于连接到数据存储的 Integration Runtime。 从先决条件部分了解更多信息。 只能使用自承载集成运行时。 | No |
Example
{
"name": "NetezzaLinkedService",
"properties": {
"type": "Netezza",
"version": "2.0",
"typeProperties": {
"server": "<server>",
"port": "<port>",
"database": "<database>",
"uid": "<username>",
"pwd": {
"type": "SecureString",
"value": "<password>"
},
"securityLevel": "preferredUnSecured"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Version 1.0
应用版本 1.0 时,Netezza 链接服务支持以下属性:
| Property | Description | Required |
|---|---|---|
| 类型 | “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>。 下表介绍了更多可以设置的属性:
| Property | Description | Required |
|---|---|---|
| SecurityLevel | 驱动程序用于连接到数据存储的安全级别。 示例: SecurityLevel=preferredUnSecured。 支持的值是:- 仅限未受保护 (onlyUnSecured) :该驱动程序不使用 SSL。 - 首选未受保护 (preferredUnSecured)(默认) :如果该服务器提供选择,则驱动程序不使用 SSL。 |
No |
Note
该连接器不支持 SSLv3,因为它已被 Netezza 正式弃用。
Example
{
"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"
}
}
}
Dataset properties
本部分提供 Netezza 数据集支持的属性列表。
若要查看可用于定义数据集的各部分和属性的完整列表,请参阅数据集。
若要从 Netezza 复制数据,请将数据集的 type 属性设置为“NetezzaTable” 。 支持以下属性:
| Property | Description | Required |
|---|---|---|
| 类型 | 数据集的 type 属性必须设置为:NetezzaTable | Yes |
| 架构 | 架构的名称。 | 否(如果指定了活动源中的“query”) |
| 表 | 表的名称。 | 否(如果指定了活动源中的“query”) |
| tableName | 具有架构的表的名称。 支持此属性是为了向后兼容。 对于新的工作负荷,请使用 schema 和 table。 |
否(如果指定了活动源中的“query”) |
Example
{
"name": "NetezzaDataset",
"properties": {
"type": "NetezzaTable",
"linkedServiceName": {
"referenceName": "<Netezza linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {}
}
}
复制活动属性
本部分提供 Netezza 源支持的属性列表。
有关可用于定义活动的各个部分和属性的完整列表,请参阅管道。
以 Netezza 作为源
Tip
若要详细了解如何使用数据分区从 Netezza 高效加载数据,请参阅从 Netezza 进行并行复制部分。
若要从 Netezza 复制数据,请将复制活动中的 source 类型设置为“NetezzaSource” 。 复制活动 source 节支持以下属性:
| Property | Description | Required |
|---|---|---|
| 类型 | 必须将复制活动源的 type 属性设置为“NetezzaSource” 。 | Yes |
| 查询 | 使用自定义 SQL 查询读取数据。 示例: "SELECT * FROM MyTable" |
否(如果指定了数据集中的“tableName”) |
| partitionOptions | 指定用于从 Netezza 加载数据的数据分区选项。 允许值为:None(默认值)、DataSlice 和 DynamicRange。 启用分区选项(即,该选项不为 None)时,用于从 Netezza 数据库并行加载数据的并行度由复制活动上的 parallelCopies 设置控制。 |
No |
| partitionSettings | 指定数据分区的设置组。 当分区选项不是 None 时适用。 |
No |
| partitionColumnName | 指定并行复制范围分区使用的源列(整数类型)的名称。 如果未指定,系统会自动检测表的主键并将其用作分区列。 当分区选项是 DynamicRange 时适用。 如果使用查询来检索源数据,请在 WHERE 子句中挂接 ?AdfRangePartitionColumnName。 请参阅从 Netezza 进行并行复制部分的示例。 |
No |
| partitionUpperBound | 要从中复制数据的分区列的最大值。 当分区选项是 DynamicRange 时适用。 如果使用查询来检索源数据,请在 WHERE 子句中挂接 ?AdfRangePartitionUpbound。 如需示例,请参阅从 Netezza 进行并行复制部分。 |
No |
| partitionLowerBound | 要从中复制数据的分区列的最小值。 当分区选项是 DynamicRange 时适用。 如果使用查询来检索源数据,请在 WHERE 子句中挂接 ?AdfRangePartitionLowbound。 如需示例,请参阅从 Netezza 进行并行复制部分。 |
No |
Example:
"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 进行并行复制
数据工厂 Netezza 连接器提供内置的数据分区,用于从 Netezza 并行复制数据。 可以在复制活动的“源”表中找到数据分区选项。
启用分区复制后,服务将对 Netezza 源运行并行查询,以便按分区加载数据。 可通过复制活动中的 parallelCopies 设置控制并行度。 例如,如果将 parallelCopies 设置为 4,服务会根据指定的分区选项和设置并行生成并运行 4 个查询,每个查询从 Netezza 数据库检索一部分数据。
建议同时启用并行复制和数据分区,尤其是从 Netezza 数据库加载大量数据时。 下面是适用于不同方案的建议配置。 将数据复制到基于文件的数据存储中时,建议将数据作为多个文件写入文件夹(仅指定文件夹名称),在这种情况下,性能优于写入单个文件。
| Scenario | Suggested settings |
|---|---|
| 从大型表进行完整加载。 | 分区选项:数据切片。 在执行期间,服务会自动根据 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 个分区检索数据。 其 ID 分别介于 [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>"
}
}
Netezza 的数据类型映射
从 Netezza 复制数据时,以下映射从 Netezza 的数据类型应用到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射。
| Netezza 数据类型 | 临时服务数据类型(适用于版本 2.0) | 临时服务数据类型(适用于版本 1.0) |
|---|---|---|
| BOOLEAN | 布尔 | 布尔 |
| CHAR | String | String |
| VARCHAR | String | String |
| NCHAR | String | String |
| NVARCHAR | String | String |
| DATE | Date | DateTime |
| TIMESTAMP | DateTime | DateTime |
| TIME | Time | TimeSpan |
| INTERVAL | Not Supported | TimeSpan |
| TIME WITH TIME ZONE | String | String |
| NUMERIC(p,s) | Decimal | Decimal |
| REAL | Single | Single |
| DOUBLE PRECISION | Double | Double |
| INTEGER | Int32 | Int32 |
| BYTEINT | Int16 | SByte |
| SMALLINT | Int16 | Int16 |
| BIGINT | Int64 | Int64 |
Lookup 活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
Netezza 连接器生命周期和升级
下表显示了不同版本的 Netezza 连接器的发布阶段和更改日志:
| Version | Release stage | Change log |
|---|---|---|
| Version 1.0 | 宣布终止支持 | / |
| Version 2.0 | GA版本现已可用 | • 仅支持自承载集成运行时。 • BYTEINT 读取为 Int16 数据类型。 • DATE 作为日期数据类型读取。 • TIME 作为时间数据类型读取。 • 不支持 INTERVAL。 |
将 Netezza 连接器从版本 1.0 升级到版本 2.0
- 在 “编辑链接服务 ”页中,为版本选择 2.0。 有关详细信息,请参阅 链接服务版本 2.0 属性。
- Netezza 链接服务版本 2.0 的数据类型映射不同于版本 1.0 的数据类型映射。 若要了解最新的数据类型映射,请参阅 Netezza 的数据类型映射。
- 仅支持自承载集成运行时。 版本 2.0 不支持 Azure 集成运行时。
Related content
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储和格式。