Compartir a través de


Base de datos de IBM Db2

Resumen

Elemento Descripción
Estado de lanzamiento Disponibilidad general
Productos Excel
Power BI (modelos semánticos)
Power BI (flujos de datos)
Fabric (Dataflow Gen2)
Power Apps (flujos de datos)
Dynamics 365 Customer Insights
Tipos de autenticación admitidos Básico
Base de datos
Windows
Documentación de referencia de funciones DB2.Base de datos

Nota

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

Prerrequisitos

De forma predeterminada, el conector de base de datos IBM Db2 usa el controlador de Microsoft para conectarse a los datos. Si decide usar el controlador IBM en las opciones avanzadas de Power Query Desktop, primero debe instalar el controlador IBM Db2 para .NET en la máquina que se usa 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 clientes y controladores de la versión inicial 11.5. Más información: limitaciones del controlador de , Asegúrese de que el controlador IBM Db2 está instalado

Funcionalidades compatibles

  • Importación
  • DirectQuery (modelos semánticos de Power BI)
  • Opciones avanzadas
    • Controlador (IBM o Microsoft)
    • Tiempo de espera del comando en minutos
    • Colección de paquetes
    • Instrucción SQL
    • Incluir columnas de relación
    • Navegación mediante una jerarquía completa

Conexión a una base de datos de IBM Db2 desde Power Query Desktop

Para realizar la conexión, siga estos pasos:

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

  2. Especifique el servidor IBM Db2 al que conectarse en Server. Si se requiere un puerto, especifíquelo con el formato ServerName:Port, donde Puerto es el número de puerto. Además, escriba la base de datos IBM Db2 a la que desea acceder en Database. 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.

    Introduzca la conexión de base de datos IBM Db2.

  3. Si te estás conectando desde Power BI Desktop, selecciona el modo de conectividad de datos Import o DirectQuery. En el resto de estos pasos de ejemplo, use el modo de conectividad Importar datos. Para más información sobre DirectQuery, vaya a Uso de DirectQuery en Power BI Desktop.

    Nota

    De forma predeterminada, el cuadro de diálogo de la base de datos IBM Db2 usa el controlador de Microsoft durante el inicio de sesión. Si desea usar el controlador IBM, abra opciones avanzadas y seleccione IBM. Más información: Conectar mediante opciones avanzadas

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

  4. Seleccione Aceptar.

  5. Si es la primera vez que se conecta a esta base de datos de IBM Db2, seleccione el tipo de autenticación que desea usar, escriba sus credenciales y, a continuación, seleccione Connect. Para más información sobre la autenticación, vaya a Autenticación con un origen de datos.

    Escriba las credenciales de base de datos de IBM Db2.

    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á un cuadro de diálogo "no se puede conectar". Para conectarse mediante una conexión sin cifrar, seleccione Aceptar.

    Cuadro de diálogo No se puede conectar

  6. En Navegador, seleccione los datos que necesita y, después, elija Cargar para cargarlos, o bien Transformar datos para transformarlos.

    Seleccione los datos que necesita de la base de datos

Conexión a una base de datos de IBM Db2 desde Power Query Online

Para realizar la conexión, siga estos pasos:

  1. Seleccione la opción Base de datos Db2 de IBM en la página Power Query: Conectar al origen de datos.

  2. Especifique el servidor IBM Db2 al que conectarse en Server. Si se requiere un puerto, especifíquelo con el formato ServerName:Port, donde Puerto es el número de puerto. Además, escriba la base de datos IBM Db2 a la que desea acceder en Database. 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 Db2 de IBM, seleccione el tipo de credenciales para la conexión en Tipo de autenticación. Elija básico si planea usar una cuenta creada en la base de datos ibm Db2 en lugar de la autenticación de Windows.

  5. Escriba sus credenciales.

  6. Seleccione Usar conexión cifrada si desea usar una conexión cifrada o desactive la opción si desea usar una conexión sin cifrar.

    Ingrese a la conexión en línea de la base de datos IBM Db2.

  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.

    Seleccione los datos que desea transformar en el Navegador

Conexión mediante opciones avanzadas

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

Opciones avanzadas incluidas en el cuadro de diálogo Conexión de Base de Datos IBM Db2.

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

Opción avanzada Descripción
Controlador Determina qué controlador se usa para conectarse a la base de datos de IBM Db2. Las opciones son IBM y Windows (valor predeterminado). Si selecciona el controlador IBM, primero debe asegurarse de que el controlador IBM Db2 para .NET esté instalado en la máquina. Esta opción solo está disponible en Power Query Desktop. Más información: Asegurarse 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 durante más tiempo.
Colección de paquetes Especifica dónde buscar paquetes. Los paquetes son estructuras de control usadas por Db2 al procesar una instrucción SQL y se crearán automáticamente si es necesario. De forma predeterminada, esta opción usa el valor NULLID. Solo está disponible cuando se usa el controlador de Microsoft. Más información: paquetes db2: conceptos, ejemplos y problemas comunes
Instrucción SQL Para obtener información, vaya a Importar datos desde una base de datos mediante la 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.
Navegación mediante una jerarquía completa Si está activada, el navegador muestra la jerarquía completa de tablas de la base de datos a la que se conecta. Si está desactivada, el navegador solo muestra las tablas cuyas columnas y filas contienen datos.

Una vez que haya seleccionado las opciones avanzadas que necesita, seleccione Aceptar en Power Query Desktop o Siguiente en Power Query Online para conectarse a la base de datos ibm Db2.

Problemas y limitaciones

Limitaciones del controlador

El controlador de Microsoft es el mismo que se usa en Microsoft Host Integration Server, denominado "proveedor de ADO.NET para DB2". 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 de IBM Db2 que funcionan con OLE/DB, ODBC o JDBC.

Puede optar por usar el controlador de Microsoft (valor predeterminado) o el controlador IBM si usa Power Query Desktop. Actualmente, Power Query Online solo usa el controlador de Microsoft. Cada controlador tiene sus limitaciones.

  • Controlador de Microsoft
    • Admite la seguridad de la capa de transporte (TLS) solo con la versión de diciembre de 2024 de Power BI Desktop o posterior
  • Controlador de IBM
    • El conector de base de datos IBM Db2, cuando se usa el controlador IBM Db2 para .NET, no funciona con sistemas mainframe o IBM i.
    • No admite DirectQuery

Microsoft proporciona compatibilidad con el controlador de Microsoft, pero no para el controlador IBM. Sin embargo, si el departamento de TI ya lo ha configurado y puesto en marcha en las máquinas, ellos deben saber cómo solucionar problemas con el controlador IBM.

Consultas nativas no admitidas en DirectQuery

Al seleccionar DirectQuery como modo de conectividad de datos en Power Query Desktop, el cuadro de texto instrucción SQL de las opciones avanzadas está deshabilitado. Está deshabilitado porque el conector IBM Db2 de Power Query no admite actualmente la inserción de consultas sobre una consulta de base de datos nativa.

Solución de problemas

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

Si decide usar el controlador IBM Db2 para Power Query Desktop, 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 el equipo.

  2. Escriba el siguiente comando:

    [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 InvariantName:

    IBM.Data.DB2

Si este nombre está en la columna InvariantName, 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 de IBM Db2, a veces puede ocurrir el error común SQLCODE -805, lo que indica que el paquete no se encuentra en la colección u otra colección especificada en la configuración de conexión del paquete de Power Query . También puede encontrar el error común SQLCODE -551, que indica que no puede crear paquetes porque carece de autoridad de 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. Falta la autoridad para enlazar el paquete a NULLID o a la colección especificada.

Normalmente, la mayoría de los administradores de IBM Db2 no proporcionan autoridad de paquete de enlace a los usuarios finales, especialmente en un entorno IBM z/OS (mainframe) o IBM i (AS/400). La diferencia de Db2 en Linux, Unix o Windows es que las cuentas de usuario tienen, de manera predeterminada, privilegios de enlace, lo que crea el paquete MSCS001 (Cursor Stability) en la propia colección del usuario (nombre = nombre de inicio de sesión de usuario).

Si no tiene privilegios de enlazado de paquetes, deberá solicitar al administrador de Db2 la autoridad para enlazar paquetes. Con esta autoridad de vinculación del paquete, conéctese a la base de datos y obtenga datos, lo que creará automáticamente el paquete. Después, el administrador puede revocar la autoridad de enlace de empaquetado. Además, después, el administrador puede "enlazar copia" del paquete a otras colecciones, para aumentar la simultaneidad, para que coincida mejor con los estándares internos para los que están enlazados los paquetes, etc.

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

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

    • GRANT BINDADD ON SYSTEM TO <nombre_de_autorización>
    • GRANT PACKADM ON <nombre_de_colección> TO <nombre_de_autorización>
  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 base de datos IBM Db2 de Power Query creará automáticamente el paquete NULLID.MSCS001 y, a continuación, concederá la ejecución en el paquete al público.

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

    • REVOKE BINDADD FROM <nombre_de_autorización>
    • REVOKE PACKADM ON <nombre_de_colección> FROM <nombre_de_autorización>

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

  1. GRANT BINDADD ON DATABASE TO USER <nombre_de_autorización>.

  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 paquete NULLID.MSCS001 y, después, establecerá en pública la ejecución en el paquete.

  3. REVOKE BINDADD ON DATABASE FROM USER <nombre_de_autorización>.

  4. GRANT EXECUTE ON PACKAGE <colección.paquete> TO USER <nombre_de_autorización>.

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

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

  2. Cambie la autoridad de *EXCLUDE a PUBLIC o <nombre_de_autorización>.

  3. Después, cambie la autoridad a *EXCLUDE.

Código de error -360 SQLCODE

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 colocado el valor correcto en para el nombre de la base de datos.

Código de error SQLCODE -1336

The specified host could not be found.

Compruebe el nombre y confirme que el host es accesible. Por ejemplo, use ping en un símbolo del sistema para intentar acceder al servidor y asegurarse de que la dirección IP sea correcta, o bien 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 usa el valor predeterminado de 50000.

Para buscar el puerto Db2 que usa 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 con TLS). Si este valor es un número, es el puerto. En caso contrario, realice una referencia cruzada del valor con la tabla "services" del sistema. Normalmente, puede encontrarlo en /etc/services o en c:\windows\system32\drivers\etc\services para Windows.

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

imagen con salida del comando db2 en Linux y Unix

En la captura de pantalla siguiente se muestra la salida de este comando en Windows.

Imagen con salida del comando db2 en Windows

Determinación del nombre de la base de datos

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

  1. En IBM i, ejecute DSPRDBDIRE.

    Imagen en la que se muestra la salida de Mostrar entradas de l directorio de bases de datos relacionales

  2. Una de las entradas tendrá un valor Ubicación remota de *LOCAL. Esta entrada es la que se va a usar.

Determinación del número de puerto

El controlador de Microsoft se conecta a la base de datos mediante el protocolo Distributed Relational Database Architecture (DRDA). El puerto predeterminado para DRDA es el puerto 446. Pruebe primero este valor.

Para averiguar en qué puerto se ejecuta el servicio DRDA:

  1. Ejecute el comando IBM i WRKSRVTBLE.

  2. Desplácese hacia abajo hasta que encuentre las entradas de DRDA.

    Entradas de tabla de servicio

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

    Escuchando DRDA

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

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

    estado de conexión IP

Más información