Base de datos IBM Db2

Resumen

Elemento Descripción
Estado de la versión Disponibilidad general
Productos Excel
Power BI (Modelos semánticos)
Power BI (Flujos de datos)
Fabric (Flujo de datos Gen2)
Power Apps (Flujos de datos)
Dynamics 365 Customer Insights
Tipos de autenticación admitidos Basic
Base de datos
Windows
Documentación de Referencia de las Funciones DB2.Database

Nota:

Algunas capacidades pueden estar presentes en un producto, pero otras no, debido a los programas de implementación y las capacidades específicas del host.

Requisitos previos

De forma predeterminada, el conector de la base de datos IBM Db2 utiliza el controlador de Microsoft para conectarse a los datos. Si decide utilizar el controlador IBM en las opciones avanzadas del espacio de trabajo de Power Query, primero debe instalar el controlador IBM Db2 para .NET en la máquina utilizada para conectarse a los datos. El nombre de este controlador cambia de vez en cuando, así que asegúrese de instalar el controlador IBM Db2 que funciona con .NET. Para obtener instrucciones sobre cómo descargar, instalar y configurar el controlador IBM Db2 para .NET, vaya a Descargar la versión inicial 11.5 de los clientes y controladores. Mayor información: Limitaciones del conductor, asegúrese de que el controlador IBM Db2 esté instalado

Funcionalidades admitidas

  • Importar
  • DirectQuery (modelos semánticos de Power BI)
  • Opciones avanzadas
    • Funcionalidades admitidas
    • Tiempo de espera del comando en minutos
    • Colección de los paquetes
    • SQL statement
    • Incluir columnas de relación
    • Navegar usando la jerarquía completa

Conectarse a una base de datos IBM Db2 desde el espacio de trabajo de Power Query

Siga estos pasos para establecer la conexión:

  1. Seleccione la opción de la Base de datos IBM Db2 desde Obtener Datos.

  2. Especifique el servidor IBM Db2 al que desea conectarse al Servidor. Si se requiere un puerto, especifíquelo utilizando el formato del Nombre del servidor: Puerto, donde el Puerto es el número del puerto. Además, introduzca la base de datos IBM Db2 a la que desea acceder en la Base de Datos. En este ejemplo, el nombre del servidor y el puerto son TestIBMDb2server.contoso.com:4000 y la base de datos IBM Db2 a la cual se accede es NORTHWD2.

    Enter IBM Db2 database connection.

  3. Si se conecta desde el espacio de trabajo de Power BI, seleccione la opción de Importación o el modo de conectividad de datos DirectQuery. El resto de estos pasos de ejemplo utilizan el modo de conectividad de importación de datos. Para obtener mayor información acerca de DirectQuery, vaya a Usar DirectQuery en el espacio de trabajo Power BI.

    Nota:

    De forma predeterminada, el cuadro de diálogo de la Base de Datos IBM Db2 utiliza el controlador de Microsoft durante el inicio de sesión. Si desea utilizar el controlador de IBM, abra las Opciones avanzadas y seleccione IBM. Más información: Conectar con opciones avanzadas

    Si selecciona DirectQuery como modo de conectividad de datos, la Declaración SQL en las opciones avanzadas se deshabilitará. DirectQuery actualmente no admite la inserción de consultas en la parte superior de una consulta de la base de datos nativa para el conector IBM Db2.

  4. Seleccione Aceptar.

  5. Si es la primera vez que se conecta a esta base de datos IBM Db2, seleccione el tipo de autenticación que desea utilizar, introduzca sus credenciales y, a continuación, seleccione Conectar. Para obtener mayor información sobre la autenticación, vaya a Autenticación con la fuente de datos.

    Enter your IBM Db2 database credentials.

    De forma predeterminada, Power Query intenta conectarse a la base de datos IBM Db2 mediante una conexión cifrada. Si Power Query no puede conectarse mediante una conexión cifrada, aparecerá el cuadro de diálogo "no se puede conectar". Para conectarse mediante una conexión sin cifrar, seleccione OK.

    Unable to connect dialog box

  6. En el Navegador, seleccione los datos que necesita y, a continuación, seleccione Carga para cargar los datos o Transformar los Datos para transformarlos.

    Select the data you require from the database

Conectarse a una base de datos IBM Db2 desde Power Query Online

Siga estos pasos para establecer la conexión:

  1. Seleccione la opción de la Base de datos IBM Db2 en Power Query: conectarse a la página de la fuente de datos.

  2. Especifique el servidor IBM Db2 al que desea conectarse al Servidor. Si se requiere un puerto, especifíquelo utilizando el formato del Nombre del servidor: Puerto, donde el Puerto es el número del puerto. Además, introduzca la base de datos IBM Db2 a la que desea acceder en la Base de Datos. En este ejemplo, el nombre del servidor y el puerto son TestIBMDb2server.contoso.com:4000 y la base de datos IBM Db2 a la que se accede es NORTHWD2

  3. Seleccione el nombre de la puerta de enlace de datos local.

    Nota:

    Debe seleccionar una puerta de enlace de datos local para este conector, tanto si la base de datos IBM Db2 está en la red local como en línea.

  4. Si es la primera vez que se conecta a esta base de datos IBM Db2, seleccione el tipo de credenciales para la conexión en el Tipo de autenticación. Elija Basic si tiene previsto utilizar una cuenta creada en la base de datos IBM Db2 en lugar de la autenticación de Windows.

  5. Especifique sus credenciales.

  6. Seleccione Usar Conexión Cifrada si desea utilizar una conexión cifrada, o desactive la opción si desea utilizar una conexión sin cifrar.

    Enter IBM Db2 database online connection.

  7. Seleccione Siguiente para continuar.

  8. En Navegador, seleccione los datos que necesita y, a continuación, seleccione Transformar datos para transformar los datos en el Editor de Power Query.

    Select the data you want to transform in the Navigator

Conectarse mediante las opciones avanzadas

Power Query proporciona un conjunto de opciones avanzadas que puede agregar a la consulta de ser necesario.

Advanced options included in the IBM Db2 database connection dialog box.

En la siguiente tabla se enumeran todas las opciones avanzadas que puede configurar en Power Query.

Opción avanzada Descripción
Controlador Determine qué controlador se utiliza para conectarse a la base de datos IBM Db2. Las opciones son IBM y Windows (por defecto). Si selecciona el controlador IBM, primero debe asegurarse de que el controlador IBM Db2 para .NET esté instalado en el equipo. Esta opción solo está disponible en Power Query Desktop. Mayor información: Asegúrese de que el controlador IBM Db2 esté instalado
Tiempo de espera del comando en minutos Si la conexión dura más de 10 minutos (el tiempo de espera predeterminado), puede escribir otro valor en minutos para mantener la conexión abierta más tiempo.
Colección de los paquetes Especifica dónde buscar los paquetes. Los paquetes son estructuras de control utilizadas por Db2 al procesar una instrucción SQL, y se crearán automáticamente de ser necesario. De forma predeterminada, esta opción utiliza el valor NULLID. Solo está disponible cuando se utiliza el controlador de Microsoft. Mayor información: Paquetes DB2: Conceptos, ejemplos y problemas comunes
Instrucción SQL Para obtener información, vaya a Importar datos de una base de datos mediante una consulta de base de datos nativa.
Incluir columnas de relación Si está activada, incluye columnas que podrían tener relaciones con otras tablas. Si este cuadro está desactivado, no verá esas columnas.
Navegar usando la jerarquía completa Si está activada, el navegador muestra la jerarquía completa de tablas en la base de datos a la que se conecta. Si se borra, el navegador muestra solo las tablas cuyas columnas y filas contienen datos.

Una vez que haya seleccionado las opciones avanzadas que necesita, seleccione OK en el espacio de trabajo de Power Query o Después en Power Query Online para conectarse a la base de datos IBM Db2.

Problemas y limitaciones

Limitaciones del conductor

El controlador de Microsoft es el mismo que se usa en Microsoft Host Integration Server, llamado "Proveedor para DB2 ADO .NET ". El controlador IBM es el controlador IBM Db / 2 que funciona con .NET. El nombre de este controlador cambia de vez en cuando, así que asegúrese de que es el que funciona con .NET, que es diferente de los controladores IBM Db2 que funcionan con OLE/DB, ODBC o JDBC.

Puede optar por utilizar el controlador de Microsoft (predeterminado) o el controlador de IBM si está utilizando el espacio de trabajo de Power Query. Actualmente, Power Query Online solo utiliza el controlador de Microsoft. Cada conductor tiene sus limitaciones.

  • Controlador de Microsoft
    • No es compatible con la seguridad de la capa de Transporte (TLS por sus siglas en inglés)
  • Controlador IBM
    • El conector de la base de datos IBM Db2, cuando se utiliza el controlador IBM Db2 para .NET, no funciona con los sistemas Mainframe o IBM i
    • No es compatible con DirectQuery

Microsoft proporciona soporte para el controlador de Microsoft, pero no para el controlador de IBM. Sin embargo, si su departamento de TI ya lo tiene configurado y establecido en sus máquinas, su departamento de TI debe saber cómo solucionar los problemas del controlador de IBM.

Consultas nativas no admitidas en DirectQuery

Cuando selecciona DirectQuery como el modo de conectividad de datos en el espacio de trabajo Power Query, el cuadro de texto de la instrucción SQL en las opciones avanzadas está deshabilitado. Está deshabilitado porque el conector IBM Db2 de Power Query no admite actualmente la inserción de consultas en la parte superior de una consulta de la base de datos nativa.

Solución de problemas

Asegúrese de que el controlador IBM Db2 esté instalado

Si decide utilizar el controlador IBM Db2 para el espacio de trabajo de Power Query, primero debe descargar, instalar y configurar el controlador en el equipo. Para asegurarse de que se ha instalado el controlador IBM Db2:

  1. Abra Windows PowerShell en su máquina.

  2. Escriba el comando siguiente:

    [System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv

  3. En el cuadro de diálogo que se abre, debería ver el siguiente nombre en la columna del Nombre invariante:

    IBM.Data.DB2

Si este nombre está en la columna del Nombre invariante, el controlador IBM Db2 se ha instalado y configurado correctamente.

Códigos de error SQLCODE -805 y SQLCODE -551

Al intentar conectarse a una base de datos IBM Db2, a veces puede encontrar el error común SQLCODE -805, que indica que el paquete no se encuentra en el NULLID u otra colección (especificada en la Conexión del paquete de configuración de la consulta de energía). También puede encontrar el error común SQLCODE -551, que indica que no puede crear paquetes porque carece de autoridad en el enlace de paquetes.

Normalmente, SQLCODE -805 va seguido de SQLCODE -551, pero solo verá la segunda excepción. En realidad, el problema es el mismo. Carece de autoridad para enlazar el paquete a cualquiera de los dos NULLID o a la colección especificada.

Por lo general, la mayoría de los administradores de IBM Db2 no proporcionan la autoridad de los paquetes de enlace a los usuarios finales, especialmente en un entorno IBM z/OS (mainframe) o IBM i (AS/400). Db2 en Linux, Unix o Windows es diferente en a las cuentas de usuario que tienen privilegios del enlace de una forma predeterminada, que crean el paquete MSCS001 (Estabilidad del cursor) en la propia colección del usuario (nombre = nombre del inicio de sesión del usuario).

Si no tiene privilegios de enlace de los paquetes, deberá solicitarle al administrador de Db2 la autorización del enlace de paquetes. Con esta autoridad del enlace de paquetes, conéctese a la base de datos y obtenga datos, que crearán automáticamente el paquete. Posteriormente, el administrador puede revocar la autoridad vinculante en materia de envases. Además, después, el administrador puede "enlazar la copia" del paquete a otras colecciones, para aumentar la concurrencia, para que coincida mejor con sus estándares internos en el lugar donde se enlazan los paquetes, etc.

Al conectarse a IBM Db2 para z / OS, el administrador de Db2 puede realizar los pasos siguientes.

  1. Otorgue la autoridad para enlazar un nuevo paquete al usuario con uno de los siguientes comandos:

    • OTORGAR BINDADD EN EL SISTEMA A <authorization_name>
    • OTORGAR PACKADM EN <collection_name (nombre de la colección)> PARA <authorization_name>
  2. Con Power Query, conéctese a la base de datos IBM Db2 y recupere una lista de esquemas, tablas y vistas. El conector de la base de datos IBM Db2 de Power Query creará automáticamente el NULLID del paquete.MSCS001 y, a continuación, otorgar la ejecución en el paquete al público.

  3. Revoque la autorización para enlazar un nuevo paquete al usuario con uno de los siguientes comandos:

    • REVOCAR BINDADD DE <authorization_name>
    • REVOCAR PACKADM EN <collection_name (nombre de la colección)> DESDE <authorization_name>

Al conectarse a IBM Db2 para Linux, Unix o Windows, el administrador de Db2 puede realizar los siguientes pasos.

  1. OTORGAR BINDADD EN LA BASE DE DATOS AL USUARIO <authorization_name>.

  2. Con Power Query, conéctese a la base de datos IBM Db2 y recupere una lista de esquemas, tablas y vistas. El conector IBM Db2 de Power Query creará automáticamente el NULLID del paquete .MSCS001 y, a continuación, otorgará la ejecución en el paquete al público.

  3. REVOCAR BINDADD EN LA BASE DE DATOS DEL USUARIO <authorization_name>.

  4. EJECUCIÓN DE LA CONCESIÓN EN EL PAQUETE <collection.package> AL USUARIO <authorization_name>.

Al conectarse a IBM Db2 a i, el administrador de Db2 puede realizar los pasos siguientes.

  1. WRKOBJ QSYS/CRTSQLPKG. Escriba "2" para cambiar la autoridad del objeto.

  2. Cambiar la autoridad de * EXCLUIR al PÚBLICO o <authorization_name>.

  3. Después, cambie la autoridad de nuevo a * EXCLUIR.

Código de error SQLCODE -360

Al intentar conectarse a la base de datos IBM Db2, puede aparecer el siguiente error:

Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the host resource name. SQLSTATE=HY000 SQLCODE=-360

Este mensaje de error indica que no ha introducido el valor correcto para el nombre de la base de datos.

Código de error SQLCODE -1336

The specified host could not be found.

Vuelva a verificar el nombre y confirme que se puede acceder al host. Por ejemplo, use ping en un símbolo del sistema para intentar comunicarse con el servidor y asegurarse de que la dirección IP sea correcta, o use telnet para comunicarse con el servidor.

Código de error SQLCODE -1037

Host is reachable, but is not responding on the specified port.

El puerto se especifica al final del nombre del servidor, separado por dos puntos. Si se omite, se utiliza el valor predeterminado de 50000.

Para encontrar el puerto Db2 que está utilizando para Linux, Unix y Windows, ejecute este comando:

db2 get dbm cfg | findstr SVCENAME

Busque en la salida una entrada para SVCENAME (y SSL_SVCENAME para las conexiones cifradas TLS). Si este valor es un número, ese es el puerto. De lo contrario, haga una referencia cruzada del valor con la tabla de "servicios" del sistema. Por lo general, puede encontrar esto en etc/services, o en c:\windows\sistema 32\controladores\etc\servicios para Windows.

La siguiente captura de pantalla muestra la salida de este comando en Linux / Unix.

Image with output of the db2 command in Linux and Unix

La siguiente captura de pantalla muestra el resultado de este comando en Windows.

Image with output of the db2 command in Windows

Determinar el nombre de la base de datos

Para determinar el nombre de la base de datos que se va a utilizar:

  1. En IBM i, ejecute DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. Una de las entradas tendrá una Ubicación Remota de *LOCALES. Esta entrada es la que se debe usar.

Determinar el número del puerto

El controlador de Microsoft se conecta a la base de datos mediante el protocolo de la Arquitectura de la Base de datos Relacional Distribuida (DRDA por sus siglas en inglés). El puerto predeterminado para DRDA es el puerto 446. Pruebe este valor primero.

Para saber con certeza en qué puerto se está ejecutando el servicio DRDA:

  1. Ejecute el comando IBM i WRKSRVTBLE.

  2. Desplácese hacia abajo hasta encontrar las entradas para DRDA.

    Service Table Entries

  3. Para confirmar que el servicio DRDA está activo y escuchando en ese puerto, ejecute NETSTAT.

    DRDA listening

  4. Elija la opción 3 (para IPv4) o la opción 6 (para IPv6).

  5. Presione F14 para ver los números del puerto en lugar de los nombres, y desplácese hasta que vea el puerto en cuestión. Debe tener una entrada con un estado de "Escucha".

    IP connection status

Más información