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:
Seleccione la opción Base de datos Db2 de IBM en Obtener datos.
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 esNORTHWD2
.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.
Seleccione Aceptar.
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.
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.
En Navegador, seleccione los datos que necesita y, después, elija Cargar para cargarlos, o bien Transformar datos para transformarlos.
Conexión a una base de datos de IBM Db2 desde Power Query Online
Para realizar la conexión, siga estos pasos:
Seleccione la opción Base de datos Db2 de IBM en la página Power Query: Conectar al origen de datos.
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 esNORTHWD2
.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.
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.
Escriba sus credenciales.
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.
Seleccione Siguiente para continuar.
En Navegador, seleccione los datos que necesita y, a continuación, seleccione Transformar datos para transformar los datos en el Editor de Power Query.
Conexión mediante opciones avanzadas
Power Query proporciona un conjunto de opciones avanzadas que puede agregar a la consulta si es necesario.
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:
Abra Windows PowerShell en el equipo.
Escriba el siguiente comando:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
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
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.
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>
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.
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.
GRANT BINDADD ON DATABASE TO USER <nombre_de_autorización>.
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.
REVOKE BINDADD ON DATABASE FROM USER <nombre_de_autorización>.
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.
WRKOBJ QSYS/CRTSQLPKG. Escriba "2" para cambiar la autoridad del objeto.
Cambie la autoridad de *EXCLUDE a PUBLIC o <nombre_de_autorización>.
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.
En la captura de pantalla siguiente se muestra la salida de este comando 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:
En IBM i, ejecute
DSPRDBDIRE
.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:
Ejecute el comando IBM i
WRKSRVTBLE
.Desplácese hacia abajo hasta que encuentre las entradas de DRDA.
Para confirmar que el servicio DRDA está activo y escuchando en ese puerto, ejecute
NETSTAT
.Elija la opción 3 (para IPv4) o la opción 6 (para IPv6).
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".