Transición de uniones de SQL a Power BI

Un usuario Pregunto ✅

pbi_mattw

Me estoy empezando a mojar los pies con Power BI, solo traté de emular una consulta que ejecuté en SQL para generar una tabla de valores y tengo problemas de memoria, probablemente lo esté haciendo de manera incorrecta. Si alguien tiene algún consejo o tutorial para alguien que esté familiarizado con SQL, sería genial.

Aquí está mi pensamiento –

Escenario de unión múltiple bastante simple, varias tablas que se conectan a una tabla maestra y algunas uniones secundarias en algunas tablas.

Cualquier subconsulta que requiera una unión en la misma tabla, dupliqué la tabla en Power BI.

Cualquier unión en más de un campo, dupliqué los campos en ambas tablas y los fusioné antes de vincularlos.

Cualquier declaración WHERE que hice a través de las opciones de filtro «similares a Excel».

Consultas de fecha Dividí las columnas de fecha y hora en fechas y horas separadas en PowerBI

Columnas renombradas según sea necesario a nombres más útiles (no sé si Power BI puede agregar alias)

No hay relaciones de muchos a muchos.

Hice la opción de importación en los datos porque directquery no parecía compatible. Hay muchas columnas que no toco, entonces, ¿debería importar solo los campos que necesito a través de una importación de consulta SQL personalizada para reducir la carga de memoria? Estoy usando 12 tablas, con 10-50 campos cada una y 200-30000 registros cada una, por lo que no es una gran cantidad de datos.

pbi_mattw

Me estoy empezando a mojar los pies con Power BI, solo traté de emular una consulta que ejecuté en SQL para generar una tabla de valores y tengo problemas de memoria, probablemente lo esté haciendo de manera incorrecta. Si alguien tiene algún consejo o tutorial para alguien que esté familiarizado con SQL, sería genial.

Aquí está mi pensamiento –

Escenario de unión múltiple bastante simple, varias tablas que se conectan a una tabla maestra y algunas uniones secundarias en algunas tablas. Luego, cree una salida de vista de tabla que comprenda ~ 40 campos.

Cualquier subconsulta que requiera una unión en la misma tabla, dupliqué la tabla en Power BI.

Cualquier unión en más de un campo, dupliqué los campos en ambas tablas y los fusioné antes de vincularlos.

Cualquier declaración WHERE que hice a través de las opciones de filtro «similares a Excel».

Consultas de fecha Dividí las columnas de fecha y hora en fechas y horas separadas en PowerBI

Columnas renombradas según sea necesario a nombres más útiles (no sé si Power BI puede agregar alias)

No hay relaciones de muchos a muchos.

Hice la opción de importación en los datos porque directquery no parecía compatible. Hay muchas columnas que no toco, entonces, ¿debería importar solo los campos que necesito a través de una importación de consulta SQL personalizada para reducir la carga de memoria? Estoy usando 12 tablas, con 10-50 campos cada una y 200-30000 registros cada una, por lo que no es una gran cantidad de datos.

pbi_mattw

En respuesta a pbi_mattw

Lo siento publicación duplicada – publicación real aquí https://community.powerbi.com/t5/Desktop/Transitioning-SQL-joins-to-Power-BI/mp/505388#M235933

ImkeF

Un par de cosas:

– no es necesario crear claves compuestas, ya que puede unir tablas en varios campos

– reduce las columnas a lo que realmente necesitas. Si lo hace como su primer paso en Power BI, no hay necesidad de escribir una declaración SQL personalizada, ya que se plegará al servidor.

– Familiarícese con el «plegamiento de consultas» para enviar tantas transacciones adicionales al servidor como sea posible (https://www.mssqltips.com/sqlservertip/3635/query-folding-in-power-query-to-improve-performance /, ht…, la unión con fuentes que no sean SQL muy probablemente interrumpirá el plegamiento de consultas: https://www.thebiccountant.com/2017/07/20/sql-query-folding-bug-still-alive-sucking -powerbi-powerque…

– en lugar de duplicar consultas, haga referencia a ellas – con un poco de suerte, solo se cargarán una vez

pbi_mattw

En respuesta a ImkeF

Gracias Imke,

Entonces, con el plegado de consultas, digamos que tengo 10 tablas, ¿necesito generar un proceso de importación para cada una, con alguna consulta SQL en cada una? A diferencia de simplemente hacer clic en la casilla de verificación de 10 tablas en un proceso de importación.

ImkeF

En respuesta a pbi_mattw

No estoy seguro si lo entiendo correctamente aquí, pero el plegado de consultas no tiene nada que ver con la forma de seleccionar sus tablas durante la importación.

pbi_mattw

En respuesta a ImkeF

Lo siento, tal vez no me he explicado bien. Diga en las 10 tablas que puedo optimizar cada una con una consulta SQL diferente en cada una. p.ej. SELECCIONE * DESDE x DONDE y. Entonces, ¿tengo que ejecutar una importación de datos e incluir una declaración SQL 10 veces diferentes para traer todas las tablas con datos optimizados?

A diferencia de importar los datos simplemente revisando las 10 tablas que necesito en una consulta de importación.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *