Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Problema al recuperar datos de MariaDB de Power BI Desktop

Hola

Hemos estado luchando, desde hace algún tiempo, tratando de recuperar nuestros datos de bases de datos MariaDB con Power BI Desktop.
He intentado muchas cosas, pero no puedo conseguir que Power BI recupere correctamente los datos que necesitamos.

Déjame explicarte:

Elegimos conectarnos a una base de datos MySQL en el administrador de conexiones, la base de datos se reconoce correctamente y se muestran las tablas disponibles. Pero cuando tratamos de obtener una vista previa de los datos en una tabla, el software se carga indefinidamente sin que nada se muestre incluso después de mucho tiempo. Si elegimos cargar los datos incluso si no se mostraron en la vista previa, el software se adhiere al paso de "evaluación" con, después de mucho tiempo, un tiempo de espera.
Parece, para mí, que el problema proviene del hecho de que hay una gran cantidad de bases de datos (alrededor de 1000).
Llegué a esta conclusión porque he intentado mover algunas bases de datos en otro servidor, y no tenemos ningún problema en cargar los datos cuando hay menos de 30 bases de datos en el servidor. Si intento mover más bases de datos, el tiempo de carga se hace más largo y más largo hasta que no voy a trabajar en absoluto.

No tenemos problemas para cargar todas las bases de datos y tablas con otro software cliente de base de datos.

Creo que tal vez hay alguna configuración que hacer en Power BI, desafortunadamente no puedo averiguar lo que tengo que hacer, después de mucho tiempo buscando una solución.

Esperando que mis explicaciones sean comprensibles.

Muchas gracias.

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Buenas noticias. La última versión de Power Bi desktop de agosto de 2022 soluciona el problema. Debemos forzar el nuevo parámetro Auto-detect dependencias de clave externa a "FALSE"

mariadb.jpg

Syndicate_Admin
Administrator
Administrator

El problema es la forma en que PowerBI comprueba las claves externas entre tablas. Al cargar una vista previa de una tabla, PowerBI inicia la siguiente consulta:

SELECT
    A.REFERENCED_TABLE_SCHEMA PKTABLE_CAT,
    NULL PKTABLE_SCHEM,
    A.REFERENCED_TABLE_NAME PKTABLE_NAME,
    A.REFERENCED_COLUMN_NAME PKCOLUMN_NAME,
    A.TABLE_SCHEMA FKTABLE_CAT,
    NULL FKTABLE_SCHEM,
    A.TABLE_NAME FKTABLE_NAME,
    A.COLUMN_NAME FKCOLUMN_NAME,
    A.POSITION_IN_UNIQUE_CONSTRAINT KEY_SEQ,
    CASE update_rule
        WHEN 'RESTRICT' THEN 1
        WHEN 'NO ACTION' THEN 3
        WHEN 'CASCADE' THEN 0
        WHEN 'SET NULL' THEN 2
        WHEN 'SET DEFAULT' THEN 4
    END UPDATE_RULE,
    CASE DELETE_RULE
        WHEN 'RESTRICT' THEN 1
        WHEN 'NO ACTION' THEN 3
        WHEN 'CASCADE' THEN 0
        WHEN 'SET NULL' THEN 2
        WHEN 'SET DEFAULT' THEN 4
    END DELETE_RULE,
    A.CONSTRAINT_NAME FK_NAME,
    'PRIMARY' PK_NAME,
    7 AS DEFERRABILITY
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE A
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE B ON
    (B.TABLE_SCHEMA = A.REFERENCED_TABLE_SCHEMA
    Y B.TABLE_NAME = A.REFERENCED_TABLE_NAME
    Y B.COLUMN_NAME = A.REFERENCED_COLUMN_NAME)
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC ON
    (RC. CONSTRAINT_NAME = A.CONSTRAINT_NAME
    Y RC. TABLE_NAME = A.TABLE_NAME
    Y RC. CONSTRAINT_SCHEMA = A.TABLE_SCHEMA)
WHERE
    B.CONSTRAINT_NAME= 'PRIMARY'
    AND A.TABLE_SCHEMA = BINARY 'SOMEDATABASE'
    AND A.TABLE_NAME = BINARY 'sometable'
ORDER BY
    FKTABLE_CAT,
    FKTABLE_SCHEM,
    FKTABLE_NAME,
    KEY_SEQ,
    PKTABLE_NAME;

Si observa esta consulta, verá que busca (posiblemente falten) coincidencias entre todas las tablas del servidor, incluida la tabla en sí. Incluso si los campos A.REFERENCED_% están vacíos (= NULL), la consulta busca posibles coincidencias con otras tablas del servidor, lo que hace que se revise una combinación N^2. Similar para el REFERENTIAL_CONSTRAINTS. Como puede ver, esto se convierte rápidamente en un gran conjunto de resultados para escanear, incluso si los A.column_names a los que se hace referencia están vacíos.

Anonymous
Not applicable

¿Alguien tiene una idea, por favor?

Gracias

Hola @KL ,

¿Cuál es su versión de PBI Desktop?

El mío es 2.83.5894.661 de 64 bits (julio de 2020).

Y debo introducir el parámetro de base de datos cuando uso el conector Mysql.

v-lionel-msft_0-1597227952138.png

Y sólo se cargará esta base de datos.

v-lionel-msft_1-1597227975578.png

Actualice su versión si no tiene el escritorio PBI más reciente, de lo contrario, cree un ticket de soporte.

Saludos
Lionel Chen

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola @v-lionel-msft

Tengo la opción de especificar la base de datos cuando uso la opción predeterminada de Power BI para conectarse a la base de datos MySQL.

Pero NO cuando se utiliza el conector proporcionado por MySQL (este https://dev.mysql.com/downloads/connector/odbc/)

Para mí, el problema sigue siendo que Power BI no puede cargar nada cuando el DBMS contiene más de 150 bases de datos distintas.

Abrí un ticket de soporte...

amitchandak
Super User
Super User

@KL, espero que haya instalado la última https://dev.mysql.com/downloads/connector/odbc/ ODBC

Anonymous
Not applicable

Hola @amitchandak,gracias por tu respuesta.

De hecho, lo intentamos con el conector ODBC de MySQL e incluso con el conector ODBC de MariaDB.
En ambos casos, el comportamiento es casi el mismo que sin conector.
Cargar tablas y, a continuación, la vista previa está llevando tiempo, y aún más si hay más bases de datos.
Acabo de intentarlo de nuevo con el conector ODBC que sugirió. Me permite acceder a los datos sólo si hay menos de 30 bases de datos, y es más lento que sin conector, pero aceptable.
Así que intenté con alrededor de 150 bases de datos, y toma mucho tiempo para cargar los datos (alrededor de 20 a 30 minutos).

Si intento con aún más bases de datos, la lista de tablas ni siquiera parece cargarse...

Parece que Power BI necesita cargar todos los datos de todas las bases de datos, incluso si elegimos cargar solo una tabla de una base de datos determinada, ¿me equivoco?

Hola @KL ,

v-lionel-msft_0-1596694739646.png

Power BI solo recuperará esta base de datos y devolverá las tablas de esta base de datos si ha especificado el parámetro 'Base de datos'.
Y necesita restablecer la opción de tiempo de espera si tiene demasiadas tablas.

Saludos
Lionel Chen

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola @v-lionel-msft , gracias por su respuesta,

Si no uso connector, sí especifico la base de datos y, de hecho, PowerBI solo muestra esta base de datos y las tablas que contiene.

Pero si el DBMS contiene más de 30 bases de datos, los datos de la tabla se cargarán muy lentamente, y si hay aún más bases de datos los datos no se cargarán en absoluto (que es el caso aquí). Y ninguna base de datos contiene muchas tablas.

Busque (para la base de datos "mysql", con más de 1000 bases de datos en el DBMS, para el ejemplo) :

power BI 1.png

No puedo obtener la vista previa de ninguna tabla.

Y si todavía trato de cargar sólo una mesa, estoy atascado aquí :

power BI 2.png


Si utilizo el conector MySQL, también especifico la base de datos en la configuración del conector, pero aún así mostrará todas las bases de datos.

También funcionará con menos de 30 bases de datos, pero si añadimos más, no será cargable en absoluto porque ni siquiera mostrará las tablas en una base de datos:

power BI 3.png

Ya no sé qué hacer. 😞

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors