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

Es posible que algunas funcionalidades estén 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.

    Captura de pantalla del cuadro de diálogo de conexión de base de datos de IBM Db2 donde se escribe la información de conexión.

  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. Para obtener más información, vaya a Conectar mediante opciones avanzadas.

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

  4. Seleccione Aceptar.

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

    Captura de pantalla del cuadro de diálogo de autenticación en el que se escriben las credenciales de la 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, aparece un cuadro de diálogo "no se puede conectar". Para conectarse mediante una conexión sin cifrar, seleccione Aceptar.

    Captura de pantalla del mensaje de soporte de cifrado, donde puede decidir usar una conexión no cifrada.

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

    Captura de pantalla del navegador donde se seleccionan 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 se conecta a esta base de datos ibm Db2 por primera vez, 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.

    Captura de pantalla de la configuración de conexión en línea de la base de datos IBM Db2 con la configuración necesaria especificada.

  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.

    Captura de pantalla del navegador en línea donde se seleccionan los datos que desea transformar.

Conexión mediante opciones avanzadas

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

Captura de pantalla de las opciones avanzadas incluidas en el cuadro de diálogo de 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 crea 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 seleccione 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 ajustado en las máquinas, el departamento de TI debe saber cómo resolver problemas del controlador de 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. El cuadro 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 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 el controlador IBM Db2 está instalado:

  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 instala y configura correctamente.

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

Al intentar conectarse a una base de datos de IBM Db2, a veces podría aparecer el error común SQLCODE -805, que indica que el paquete no se encuentra en la NULLID 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 se muestra 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). Db2 en Linux, Unix o Windows es diferente ya que las cuentas de usuario tienen privilegios de vinculación de forma predeterminada, lo que crea el paquete MSCS001 (estabilidad de cursor) en la propia colección del usuario (nombre = nombre de inicio de sesión del usuario).

Si no tiene privilegios para enlazar paquetes, debe solicitarle al administrador de Db2 la autorización para enlazar paquetes. Con esta autorización de vinculación de paquetes, conéctese a la base de datos y recupere datos, lo que crea 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 crea automáticamente el paquete NULLID.MSCS001 y, a continuación, concede la ejecución en el paquete a 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 crea automáticamente el paquete NULLID.MSCS001 y, a continuación, concede permisos de ejecución del paquete a público.

  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, es posible que se produzca 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 encontrar esta tabla 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.

Captura de pantalla que muestra la salida del comando db2 en Linux y Unix.

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

Captura de pantalla que muestra la 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.

    Captura de pantalla que muestra la salida de la función Mostrar entradas del directorio de base de datos relacional.

  2. Una de las entradas tiene una 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.

    Captura de pantalla que muestra las entradas de la tabla de servicio con las entradas de DRDA mostradas.

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

    Captura de pantalla de las opciones de NETSTAT que puede seleccionar.

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

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

    Captura de pantalla del estado de conexión IPv4 que muestra los estados de escucha.