Compartir a través de


Copia de datos de Netezza con Azure Data Factory o Synapse Analytics

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Tip

Pruebe Data Factory en Microsoft Fabric, una solución de análisis integral para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y la creación de informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este artículo se describe el uso de la actividad de copia en canalizaciones de Azure Data Factory y Azure Synapse Analytics para copiar datos de Netezza. El artículo se basa en Actividad de copia, en el que se ofrece información general acerca de la actividad de copia.

Tip

Para información sobre el escenario de migración de datos de Netezza a Azure, consulte Migración de datos del servidor local de Netezza a Azure.

Important

La versión 1.0 del conector de Netezza está en la fase de retirada. Se recomienda actualizar el conector de Netezza de la versión 1.0 a la 2.0.

Capacidades compatibles

Este conector de Netezza se admite para las siguientes características:

Capacidades compatibles IR
Actividad de copia (origen/-) ① (solo para la versión 1.0) ②
Actividad de búsqueda ① (solo para la versión 1.0) ②

① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado

Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, consulte Almacenes de datos y formatos que se admiten.

Este conector de Netezza admite:

  • Copia en paralelo desde el origen. Consulte la sección Copia en paralelo desde Netezza para obtener más detalles.
  • Netezza Performance Server versión 11.
  • Las versiones de Windows de este artículo.

El servicio proporciona un controlador integrado para permitir la conectividad. No es necesario instalar manualmente uno para usar este conector.

Para la versión 2.0, debe instalar manualmente un controlador ODBC de IBM Netezza . Para la versión 1.0, el servicio proporciona un controlador integrado para habilitar la conectividad. No es necesario instalar manualmente uno para usar este conector.

Prerequisites

Si el almacén de datos se encuentra en una red local, una red virtual de Azure o una nube privada virtual de Amazon, debe configurar un entorno de ejecución de integración autohospedado para conectarse a él.

Consulte Estrategias de acceso a datos para más información sobre los mecanismos de seguridad de red y las opciones que admite Data Factory.

Para la versión 1.0

Si el almacén de datos es un servicio de datos en la nube administrado, puede usar Azure Integration Runtime. Si el acceso está restringido a las direcciones IP que están aprobadas en las reglas de firewall, puede agregar direcciones IP de Azure Integration Runtime a la lista de permitidos.

También puede usar la característica del entorno de ejecución de integración de red virtual administrada de Azure Data Factory para acceder a la red local sin instalar ni configurar un entorno de ejecución de integración autohospedado.

Instalación del controlador ODBC de Netezza para la versión 2.0

Para usar el conector de Netezza con la versión 2.0, instale la versión 11.02.02 o posterior del controlador ODBC de IBM Netezza en la máquina que ejecuta el entorno de ejecución de integración autohospedado.

Get started

Puede crear una canalización que use una actividad de copia mediante el SDK de .NET, el SDK de Python, Azure PowerShell, la API de REST o una plantilla de Azure Resource Manager. Vea el tutorial de la actividad de copia para obtener instrucciones paso a paso para crear una canalización con una actividad de copia.

Creación de un servicio vinculado en Netezza mediante la interfaz de usuario

Siga estos pasos para crear un servicio vinculado en Netezza en la interfaz de usuario de Azure Portal.

  1. Vaya a la pestaña "Administrar" de su área de trabajo de Azure Data Factory o Synapse y seleccione "Servicios vinculados"; a continuación, haga clic en "Nuevo":

  2. Busque Netezza y seleccione el conector de Netezza.

    Recorte de pantalla del conector de Netezza.

  3. Configure los detalles del servicio, pruebe la conexión y cree el servicio vinculado.

    Recorte de pantalla de la configuración del servicio vinculado para Netezza.

Detalles de configuración del conector

En las siguientes secciones se proporcionan detalles sobre las propiedades que puede usar para definir entidades específicas del conector de Netezza.

Propiedades del servicio vinculado

El conector de Netezza ahora admite la versión 2.0. Consulte esta sección para actualizar la versión del conector de Netezza desde la versión 1.0. Para obtener los detalles de la propiedad, consulte las secciones correspondientes.

Versión 2.0

El servicio vinculado de Netezza admite las siguientes propiedades cuando se aplica la versión 2.0:

Property Description Required
type La propiedad type debe establecerse en Netezza. Yes
version Versión que especifique. El valor es 2.0. Yes
server El nombre de host o la dirección IP del servidor de Netezza. Yes
port Número de puerto del cliente de escucha del servidor. Yes
database Nombre de la base de datos de Netezza. Yes
uid Identificador de usuario usado para conectarse a la base de datos. Yes
pwd Contraseña usada para conectarse a la base de datos. Yes
SecurityLevel Nivel de seguridad que usa el controlador para la conexión con el almacén de datos.
Ejemplo: SecurityLevel=preferredUnSecured. Los valores admitidos son:
- Only unsecured (onlyUnSecured): el controlador no usa SSL.
- Preferred unsecured (preferredUnSecured) (valor predeterminado): si el servidor proporciona una elección, el controlador no usa SSL.
No
connectVia Instancia de Integration Runtime que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Solo puede usar el entorno de ejecución de integración autohospedado. 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"
        }
    }
}

Versión 1.0

Las siguientes propiedades son compatibles con el servicio vinculado de Netezza cuando se aplica la versión 1.0:

Property Description Required
type La propiedad type debe establecerse en Netezza. Yes
connectionString Cadena de conexión de ODBC para conectarse a Netezza.
También puede colocar la contraseña en Azure Key Vault y extraer la configuración de pwd de la cadena de conexión. Consulte los siguientes ejemplos y el artículo Almacenamiento de credenciales en Azure Key Vault con información detallada.
Yes
connectVia Instancia de Integration Runtime que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Si no se especifica, se usa el valor predeterminado de Azure Integration Runtime. No

Una cadena de conexión típica es Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>. En la tabla siguiente se describen más propiedades que puede establecer:

Property Description Required
SecurityLevel Nivel de seguridad que usa el controlador para la conexión con el almacén de datos.
Ejemplo: SecurityLevel=preferredUnSecured. Los valores admitidos son:
- Only unsecured (onlyUnSecured): el controlador no usa SSL.
- Preferred unsecured (preferredUnSecured) (valor predeterminado): si el servidor proporciona una elección, el controlador no usa SSL.
No

Note

El conector no admite SSLv3, ya que está oficialmente en desuso por 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"
        }
    }
}

Ejemplo: Almacenamiento de la contraseña en Azure Key Vault

{
    "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"
        }
    }
}

Propiedades del conjunto de datos

En esta sección se proporciona una lista de las propiedades que admite el conjunto de datos de Netezza.

Para ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte Conjuntos de datos.

Para copiar datos desde Netezza, establezca la propiedad type del conjunto de datos en NetezzaTable. Se admiten las siguientes propiedades:

Property Description Required
type La propiedad type del conjunto de datos debe establecerse en: NetezzaTable Yes
schema Nombre del esquema. No (si se especifica "query" en el origen de la actividad)
table Nombre de la tabla. No (si se especifica "query" en el origen de la actividad)
tableName Nombre de la tabla con el esquema. Esta propiedad permite la compatibilidad con versiones anteriores. Use schema y table para la carga de trabajo nueva. No (si se especifica "query" en el origen de la actividad)

Example

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

Propiedades de la actividad de copia

En esta sección se proporciona una lista de las propiedades que admite el origen de Netezza.

Para ver una lista completa de las secciones y propiedades que hay disponibles para definir actividades, consulte Canalizaciones.

Netezza como origen

Tip

Para cargar datos desde Netezza de manera eficaz con la creación de particiones de datos, obtenga más información en la sección Copia en paralelo desde Netezza.

Para copiar datos desde Netezza, establezca el tipo source en la actividad de copia en NetezzaSource. La sección source de la actividad de copia admite las siguientes propiedades:

Property Description Required
type La propiedad type del origen de la actividad de copia debe establecerse en NetezzaSource. Yes
query Use la consulta SQL personalizada para leer los datos. Ejemplo: "SELECT * FROM MyTable" No (si se especifica "tableName" en el conjunto de datos)
partitionOptions Especifica los opciones de creación de particiones de datos que se usan para cargar datos desde Netezza.
Los valores permitidos son: None (valor predeterminado), DataSlice, y DynamicRange.
Cuando se habilita una opción de partición (es decir, no None), el grado de paralelismo para cargar datos simultáneamente desde una base de datos de Netezza se controla mediante parallelCopies configuración en la actividad de copia.
No
partitionSettings Especifique el grupo de configuración para la creación de particiones de datos.
Se aplica cuando la opción de partición no es None.
No
partitionColumnName Especifique el nombre de la columna de origen in integer type que usará la creación de particiones por rangos para la copia en paralelo. Si no se especifica, se detectará automáticamente la clave principal de la tabla y se usará como columna de partición.
Se aplica si la opción de partición es DynamicRange. Si usa una consulta para recuperar datos de origen, enlace ?AdfRangePartitionColumnName en la cláusula WHERE. Consulte un ejemplo en la sección Copia en paralelo desde Netezza.
No
partitionUpperBound El valor máximo de la columna de partición para copiar datos.
Se aplica cuando la opción de partición es DynamicRange. Si usa la consulta para recuperar datos de origen, enlace ?AdfRangePartitionUpbound en la cláusula WHERE. Consulte la sección Copia en paralelo desde Netezza para ver un ejemplo.
No
partitionLowerBound El valor mínimo de la columna de partición para copiar datos.
Se aplica si la opción de partición es DynamicRange. Si usa una consulta para recuperar datos de origen, enlace ?AdfRangePartitionLowbound en la cláusula WHERE. Consulte la sección Copia en paralelo desde Netezza para ver un ejemplo.
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>"
            }
        }
    }
]

Copia en paralelo desde Netezza

El conector de Netezza de Data Factory proporciona la creación de particiones de datos integrados para copiar datos de Netezza en paralelo. Puede encontrar las opciones de creación de particiones de datos en la pestaña Origen de la actividad de copia.

Captura de pantalla de las opciones de partición

Al habilitar la copia con particiones, el servicio ejecuta consultas en paralelo en el origen de Netezza para cargar los datos mediante particiones. El grado en paralelo se controla mediante el valor parallelCopies de la actividad de copia. Por ejemplo, si establece parallelCopies en cuatro, el servicio genera y ejecuta al mismo tiempo cuatro consultas de acuerdo con la configuración y la opción de partición que ha especificado, y cada consulta recupera una porción de datos de la base de datos de Netezza.

Se le sugiere que habilite la copia en paralelo con la creación de particiones de datos, especialmente si carga grandes cantidades de datos de la base de datos de Netezza. Estas son algunas configuraciones sugeridas para diferentes escenarios. Cuando se copian datos en un almacén de datos basado en archivos, se recomienda escribirlos en una carpeta como varios archivos (solo especifique el nombre de la carpeta), en cuyo caso el rendimiento es mejor que escribirlos en un único archivo.

Scenario Configuración sugerida
Carga completa de una tabla grande. Opción de partición: Segmento de datos.

Durante la ejecución, el servicio particiona automáticamente los datos en función de los segmentos de datos integrados de Netezza y copia los datos por particiones.
Cargue grandes cantidades de datos mediante una consulta personalizada. Opción de partición: Segmento de datos.
Consulta: SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>.
Durante la ejecución, el servicio reemplaza ?AdfPartitionCount (por el número de copia en paralelo establecido en la actividad de copia) y ?AdfDataSliceCondition por la lógica de partición del segmento de datos, y lo envía a Netezza.
Carga de grandes cantidades de datos mediante una consulta personalizada, con una columna de enteros con valor distribuido uniformemente para la creación de particiones por rangos. Opciones de partición: partición de intervalo dinámico.
Consulta: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Columna de partición: especifique la columna usada para crear particiones de datos. Puede crear particiones en la columna con un tipo de datos entero.
Límite de partición superior y límite de partición inferior: especifique si quiere filtrar en la columna de partición para recuperar solo los datos entre el intervalo inferior y el superior.

Durante la ejecución, el servicio reemplaza ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound y ?AdfRangePartitionLowbound por el nombre real de la columna y los intervalos de valores de cada partición y se los envía a Netezza.
Por ejemplo, si establece la columna de partición "ID" con un límite inferior de 1 y un límite superior de 80, con la copia en paralelo establecida en 4, el servicio recupera los datos de 4 particiones. Los identificadores están comprendidos entre [1, 20], [21, 40], [41, 60] y [61, 80] respectivamente.

Ejemplo: consulta con partición de segmento de datos

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

Ejemplo: consulta con partición por rangos dinámica

"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>"
    }
}

Asignación de tipos de datos para Netezza

Al transferir datos desde Netezza, se aplican las siguientes correspondencias de los tipos de datos de Netezza a los tipos de datos internos utilizados por el servicio. Para más información acerca de la forma en que la actividad de copia asigna el tipo de datos y el esquema de origen al receptor, consulte el artículo sobre asignaciones de tipos de datos y esquema.

Tipo de datos Netezza Tipo de datos de servicio provisional (para la versión 2.0) Tipo de datos de servicio provisional (para la versión 1.0)
BOOLEAN Boolean Boolean
CHAR String String
VARCHAR String String
NCHAR String String
NVARCHAR String String
DATE Date DateTime
TIMESTAMP DateTime DateTime
TIME Time TimeSpan
INTERVAL No está soportado TimeSpan
TIME WITH TIME ZONE String String
NUMERIC(p,s) Decimal Decimal
REAL Single Single
doble precisión Double Double
INTEGER Int32 Int32
BYTEINT Int16 SByte
SMALLINT Int16 Int16
BIGINT Int64 Int64

Propiedades de la actividad de búsqueda

Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.

Ciclo de vida y actualización del conector de Netezza

En la tabla siguiente se muestran la fase de lanzamiento y los registros de cambios para diferentes versiones del conector de Netezza:

Version Fase de lanzamiento Registro de cambios
Versión 1.0 Quitado No aplicable.
Versión 2.0 Versión de disponibilidad general disponible • Admite solo el entorno de ejecución de integración autohospedado.

• BYTEINT se lee como tipo de datos Int16.

• DATE se lee como tipo de datos Date.

• TIME se lee como tipo de datos Time.

• No se admite INTERVAL.

Actualización del conector de Netezza de la versión 1.0 a la versión 2.0

  1. En página Editar servicio vinculado seleccione 2.0 para la versión. Para obtener más información, consulte propiedades del servicio vinculado versión 2.0.
  2. La asignación de tipos de datos para la versión 2.0 del servicio vinculado de Netezza es diferente de la de la versión 1.0. Para obtener información sobre la asignación de tipos de datos más reciente, consulte Asignación de tipos de datos para Netezza.
  3. Solamente se admite el entorno de ejecución de integración autohospedado. Azure Integration Runtime no es compatible con la versión 2.0.

Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, consulte Almacenes de datos y formatos que se admiten.