Reemplazar un campo de clave de texto largo con un número entero

Un usuario Pregunto ✅

Anónimo

Hola

Soy nuevo en power bi y tengo experiencia previa con Qlikview.

En Qlikview, hay una función llamada Autonumber. Básicamente, lo que se debe hacer es reemplazar una clave larga con un número, reduciendo la cantidad de memoria necesaria para almacenar una clave larga.

Entonces creo que podría replicarse en PowerBi haciendo algo como esto:

a) Referencia todas las tablas que tienen el LongTextKey. (Tabla 1 y Tabla 2)

b) Elimine todos los demás campos que no sean los LongTextKey en las tablas referenciadas (Table1Ref y Table2Ref)

c) Agregue todas estas tablas en una nueva tabla: NewKeyTable

d) Eliminar filas duplicadas en el NewKeyTable

e) Agregue un índice (IndexKey) a esta nueva tabla NewKeyTable.

f) En Tabla 1 y Tabla 2, hacer una fusión con el LongTextKey

Ginebra Tabla 1 y Tabla 2, expanda la tabla combinada, pero solo el campo creado IndexKey al paso mi).

h) En Tabla 1 y Tabla 2, suelta el LongTextKey

k) En el modelo, use el nuevo indexKey en lugar del LongTextKey eliminado

h) Deshabilitar la carga para todas las tablas creadas

¿Es esto factible en PowerBi, tiene sentido?

Si es factible, creo que esto debería implementarse en PowerBi como una opción fácil y rápida, como lo es en Qlikview.

Además, si es factible, este concepto permite ocultar claves sensibles al usuario final. También es especialmente útil cuando la tabla de hechos o alguna tabla grande no tiene una clave y debe construirse en base a muchos otros campos (a veces más de 8 campos de texto)

Hice una prueba con aproximadamente 100.000 registros, y estos son los resultados del tamaño de los campos, que obtuve de DaxStudio:

Tabla Campo Escribe Tamaño (kb)
NewKeyTable LongTextKey DBTYPE_WSTR 1026,943359375
NewKeyTable IndexKey DBTYPE_R8 0,1171875

¡Gracias!

ImkeF

Hola @Anónimo,

Power BI optimiza la memoria automáticamente en segundo plano (el motor VertiPaq usa codificación de diccionario para campos largos).

Sin embargo, esto no cubre el problema de las claves sensibles. Por lo tanto, tendría que implementar esta lógica en el editor de consultas y asegurarse de que solo las claves sustitutas se carguen en el modelo de datos.

Anónimo

En respuesta a ImkeF

Gracias

Como dijiste, utiliza una codificación de diccionario internamente, pero en esta codificación de diccionario, PowerBi aún necesita retener todos los valores distintos del texto para el campo largo.

De esta manera propuesta, PowerBi no necesita almacenar estos valores determinados, ya que no nos importan los valores, solo las relaciones entre las tablas, reduciendo.

¡Saludos!

ImkeF

En respuesta a Anónimo

Es cierto, pero a la luz de todas las demás mejoras que se realizarán, dudo que esta función tenga alguna prioridad sin muchos votos a favor en la sección de ideas: https://ideas.powerbi.com/forums/265200-power-bi-ideas

Anónimo

En respuesta a ImkeF

Gracias.

Idea publicada aquí:

https: //ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/39494707-replace-long-keys-with-a …

Deja un comentario

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