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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Crear tabla DIM a partir de tabla plana - Referencia o Lista.Distinto

Hola a todos

A veces solo puedo obtener un extracto de la base de datos que en formato excel / csv, por lo que una tabla con un montón de columnas. Para conseguir un mejor rendimiento y una estructura de datos más comprensible suelo intentar transformar esta tabla en una "starschema". A menudo me enfrento a una situación en la que solo tengo 1 columna en la tabla de origen que luego se puede expandir en varias columnas (imagine un formato como "Categoría - Subcategoría - Nombre" en 1 celda). Me preguntaba cuál de las 2 opciones que tengo en mente es mejor desde el punto de vista del rendimiento, si es que hay alguna diferencia, para extraer esa 1 columna específica de la tabla.

1) Por lo tanto, una de las opciones para crear la tabla "Dim" es simplemente hacer referencia a la tabla original, eliminar las columnas innecesarias > eliminar duplicados >add ID --> listo.

2) La otra opción es crear una consulta en blanco donde usamos la función List.Distinct() en la columna > Convertir a tabla > Agregar ID --> Listo

¿Crees que hay alguna diferencia significativa entre estos 2 métodos? ¿Es uno más recomendable que el otro?

¡Gracias!

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@DPatkos ,

Hasta donde yo sé, si la fuente de datos es excel / csv, power bi simplemente copiará todos los datos y luego limpiará los datos. No hay diferencia entre eliminar otras columnas y mantener solo una columna. Pero lo que no entiendo es cómo se puede crear una consulta en blanco (me refiero a una consulta que instrucción sql) para un origen de datos que es Excel. Si es una consulta en blanco pero no una instrucción sql, entonces no hace ninguna diferencia.

Para una base de datos relacional donde la fuente de datos está en reposo, la segunda sería un poco más rápida, ya que seleccionar [una columna] es más rápido que seleccionar *.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Gracias por la respuesta, tal vez fui yo siendo perezoso para explicar. La segunda opción wouold se ve así:

let
DistinctSource = List.Distinct(Table[ColumnName]),
Convert2Table = Table.FromList(DistinctSource, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Rename = Table.RenameColumns(Convert2Table,{{"Column1", "ColumnName"}}),
Add_Index = Table.AddIndexColumn(Rename, "ColumnName_ID", 1, 1, Int64.Type)
in
Add_Index

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.