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

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno 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 los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este artículo se resume el uso de la actividad de copia en canalizaciones de Azure Data Factory y Synapse Analytics para copiar datos de una base de datos DB2. El documento se basa en el artículo de introducción a la actividad de copia que describe información general de la actividad de copia.

Funcionalidades admitidas

Este conector DB2 es compatible con las actividades siguientes:

Funcionalidades admitidas IR
Actividad de copia (origen/-) 7,7
Actividad de búsqueda 7,7

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

Consulte la tabla de almacenes de datos compatibles para ver una lista de almacenes de datos que la actividad de copia admite como orígenes o receptores.

En concreto, este conector DB2 admite las siguientes plataformas y versiones de IBM DB2 con las versiones 9, 10 y 11 de SQL Access Manager (SQLAM) de la arquitectura distribuida de bases de datos relacionales (DRDA). Utiliza el protocolo DDM/DRDA.

  • IBM DB2 para z/OS 12.1
  • IBM DB2 para z/OS 11.1
  • IBM DB2 para i 7.3
  • IBM DB2 para i 7.2
  • IBM DB2 para i 7.1
  • IBM DB2 para LUW 11
  • IBM DB2 para LUW 10.5
  • IBM DB2 para LUW 10.1

Requisitos previos

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.

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.

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.

El entorno Integration Runtime proporciona un controlador DB2 integrado, por lo tanto, no es necesario instalar manualmente los controladores cuando se copian datos desde DB2.

Introducción

Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:

Creación de un servicio vinculado a DB2 mediante la interfaz de usuario

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

  1. Vaya a la pestaña Administrar del área de trabajo de Azure Data Factory o Synapse y seleccione Servicios vinculados; luego haga clic en Nuevo:

  2. Busque DB2 y seleccione el conector de DB2.

    Screenshot of the DB2 connector.

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

    Screenshot of linked service configuration for DB2.

Detalles de configuración del conector

En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades de Data Factory específicas del conector DB2.

Propiedades del servicio vinculado

Las siguientes propiedades son compatibles con el servicio vinculado de DB2:

Propiedad Descripción Obligatorio
type La propiedad type debe establecerse en: Db2
connectionString Especifique la información necesaria para conectarse a la instancia de DB2.
También puede colocar la contraseña en Azure Key Vault y extraer la configuración de password 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.
connectVia El entorno 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 usará Azure Integration Runtime. No

Propiedades habituales dentro de la cadena de conexión:

Propiedad Descripción Obligatorio
server Nombre del servidor DB2. Puede especificar el número de puerto después del nombre del servidor delimitado por dos puntos, por ejemplo server:port.
El conector de DB2 usa el protocolo DDM/DRDA y, de forma predeterminada, usa el puerto 50000 si no se especifica. El puerto que usa su base de datos DB2 específica podría ser diferente según la versión y la configuración establecida; por ejemplo, para DB2 LUW el puerto predeterminado es 50000, para AS400 el puerto predeterminado es 446, o 448 cuando se habilita TLS. Consulte los siguientes documentos de DB2 sobre la forma en que se configura normalmente el puerto: DB2 z/OS, DB2 iSeries y DB2 LUW.
database Nombre de la base de datos DB2.
authenticationType Tipo de autenticación usado para conectarse a la base de datos DB2.
El valor permitido es: Básico.
username Especifique el nombre de usuario para conectarse a la base de datos DB2.
password Especifique la contraseña de la cuenta de usuario especificada para el nombre de usuario. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault.
packageCollection Especifique en dónde crea el servicio automáticamente los paquetes necesarios al consultar la base de datos. Si no se establece, el servicio utiliza {username} como valor predeterminado. No
certificateCommonName Al usar el cifrado de Capa de sockets seguros (SSL) o de Seguridad de la capa de transporte (TLS), debe escribir un valor para el nombre común del certificado. No

Sugerencia

Si recibe un mensaje de error que indica The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805, el motivo es que no se ha creado un paquete necesario para el usuario. De manera predeterminada, el servicio intentará crear el paquete en la colección con nombre como el usuario que haya usado para conectarse a DB2. Especifique la propiedad de colección de paquetes para indicar en dónde quiere que el servicio cree los paquetes necesarios al consultar la base de datos. Si no puede determinar el nombre de la colección de paquetes, intente establecer packageCollection=NULLID.

Ejemplo:

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

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

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

Si usaba el servicio DB2 vinculado con la siguiente carga, todavía se admite tal cual, aunque se aconseja usar la nueva en el futuro.

Carga anterior:

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

Propiedades del conjunto de datos

Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos. En esta sección se proporciona una lista de las propiedades que admite el conjunto de datos de DB2.

Para copiar datos de DB2, se admiten las propiedades siguientes:

Propiedad Descripción Obligatorio
type La propiedad type del conjunto de datos debe establecerse en: Db2Table
esquema 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)

Ejemplo

{
    "name": "DB2Dataset",
    "properties":
    {
        "type": "Db2Table",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<DB2 linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Si estaba usando un conjunto de datos de tipo RelationalTable, todavía se admite tal cual, aunque se aconseja usar el nuevo en el futuro.

Propiedades de la actividad de copia

Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades que admite el origen de DB2.

DB2 como origen

Para copiar datos desde DB2, en la sección source de la actividad de copia se admiten las propiedades siguientes:

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en: Db2Source
Query Use la consulta SQL personalizada para leer los datos. Por ejemplo: "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\"". No (si se especifica "tableName" en el conjunto de datos)

Ejemplo:

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

Si estaba usando un origen de tipo RelationalSource, todavía se admite tal cual, aunque se aconseja usar el nuevo en el futuro.

Asignación de tipos de datos de DB2

Al copiar datos desde DB2, se utilizan las siguientes asignaciones de tipos de datos de la solución a los tipos de datos provisionales usados internamente dentro del servicio. Consulte el artículo sobre asignaciones de tipos de datos y esquema para información sobre cómo la actividad de copia asigna el tipo de datos y el esquema de origen al receptor.

Tipo de base de datos DB2 Tipo de datos de servicio provisional
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
Entero Int32
LongVarBinary Byte[]
LongVarChar String
LongVarGraphic String
Numeric Decimal
Real Single
SmallInt Int16
Time TimeSpan
Timestamp DateTime
VarBinary Byte[]
VarChar String
VarGraphic String
Xml Byte[]

Propiedades de la actividad de búsqueda

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

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