Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
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:4000y 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. 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.
Seleccione Aceptar.
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.
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.
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 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.
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 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:
Abra Windows PowerShell en el equipo.
Escriba el siguiente comando:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogvEn 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.
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 crea automáticamente el paquete NULLID.MSCS001 y, a continuación, concede la ejecución en el paquete a 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 crea automáticamente el paquete NULLID.MSCS001 y, a continuación, concede permisos de ejecución del paquete a público.
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, 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.
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 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:
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 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".