jameoll
Hola gente de Power BI,
Tengo un problema al intentar trabajar con un archivo multimiembro dentro de DB2 en un IBM i (a veces denominado iSeries o AS/400). Estamos recuperando datos de un archivo de varios miembros que forma parte de un producto de terceros utilizado para las métricas de salud del sistema. Los archivos multimiembro son propiedad de DB2 para i OS y no son conocidos por las implementaciones de SQL. Por lo tanto, de forma predeterminada, cuando accede a un archivo de varios miembros, SQL utilizará de forma predeterminada el *PRIMERO miembro en el archivo que es el dato más antiguo. Lo que complica aún más las cosas es el hecho de que el nombre del miembro no es consistente. empieza q
Lista de miembros
Q280000104 *primer miembro (mayor)
Q281000103
Q282000103
Q283000104
Q284000104
Q285000104
Q286000105 – *último miembro (datos actuales)
Existen algunas soluciones alternativas para establecer el miembro al que accede SQL en *ÚLTIMO miembro Q286000105, que son los datos actuales. IBM los detalla en un artículo de soporte: http://www-01.ibm.com/support/docview.wss?uid=nas8N1018261
CALL QSYS.QCMDEXC(‘OVRDBF FILE(archivo) TOFILE(biblioteca/archivo) MBR(miembro) OVRSCOPE(*TRABAJO)’, 0000000065.00000)
nuestros intentos de usar la sintaxis CALL anterior fallarán con Power BI mientras usamos el controlador ODBC de IBM. Parece que Power BI no admite esta función en este momento. ¿Es posible proporcionar una forma de llamar a un procedimiento externo desde Power BI?
Hay otras opciones que no son tan elegantes.
Podríamos usar un ALIAS para crear otro archivo basado en el miembro *LAST, pero como no sabemos el nombre del miembro, tenemos que agregar lógica para recuperarlo y luego crear el archivo de alias todos los días.
Escriba un programa RPG para fusionar todos los miembros del archivo en un archivo de solo lectura todos los días.
muestra aquí:
https://www.itjungle.com/2016/03/01/fhg030116-story01/
Supongo que estoy buscando la forma más fácil que nos permita capturar siempre los datos del miembro actual para que el SQL se ejecute correctamente sin tener que codificar mucho. ¿Algunas ideas?
jim o.
jameoll
En respuesta a jameoll
Dado que solo queríamos extraer registros del *ÚLTIMO miembro de un archivo de varios miembros, encontramos una solución alternativa para usar Query/400 con un comando RUNQRY. Esto extrae los registros del miembro *LAST a través de un trabajo programado de forma cíclica a un archivo físico de un solo miembro que permite que nuestra instrucción SQL funcione dentro de Power BI. Gracias o tu ayuda!
Jim
v-jiascu-msft
Hola Jim,
¿Probó el conector DB2 en Power BI? Por favor, consulte la instantánea a continuación.
Atentamente,
Valle
jameoll
En respuesta a v-jiascu-msft
Valle,
Esta opción parece estar diseñada para el producto de puerta de enlace IBM DB2 Connect. Está intentando conectarse al puerto TCP 50000 en el servidor IBM i. Obtenemos un error SQLSTATE 08S01 de conexión rechazada para credenciales de usuario válidas. Este controlador no funcionará.
Jim
v-jiascu-msft
En respuesta a jameoll
Hola Jim,
Para ser honesto, no sé mucho sobre la serie i de IBM. ¿El usuario tiene suficientes privilegios? ¿Utilizó el método de autenticación adecuado?
Atentamente,
Valle
jameoll
En respuesta a v-jiascu-msft
Valle,
Gracias por tu ayuda. Los intentos de enviar lo siguiente a través del controlador ODBC de IBM i devuelven el siguiente mensaje:
Encontramos un error al intentar conectarnos
Detalles: «Esta consulta de base de datos nativa no se admite actualmente»
No son credenciales, ya que puedo conectarme y emitir una simple selección * de QIWS/QCUSTCDT
Este es un archivo de muestra enviado con el sistema operativo para la prueba de consultas….
Jim
jameoll
En respuesta a jameoll
Realmente necesito que el administrador de productos admita una base de datos empresarial. Todas las herramientas que utilizamos para conectarnos a IBM i admiten procedimientos SQL externos.
jameoll
En respuesta a jameoll
Dado que solo queríamos extraer registros del *ÚLTIMO miembro de un archivo de varios miembros, encontramos una solución alternativa para usar Query/400 con un comando RUNQRY. Esto extrae los registros del miembro *LAST a través de un trabajo programado de forma cíclica a un archivo físico de un solo miembro que permite que nuestra instrucción SQL funcione dentro de Power BI. Gracias o tu ayuda!
Jim