Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
¡Hola a todos!
Soy nuevo en Power Bi. Estoy estudiando mecanismos de almacenamiento y optimización.
La documentación dice que es mejor convertir los datos de texto originales en valores numéricos. Por ejemplo, SO123456 a 123456.
Sin embargo, cuando abro el analizador vertipaq en dax studio, veo que CustomerKey ocupa más espacio que CustomerAlternateKey
(Obras de Aventura)
No entiendo por qué la columna de números ocupa más espacio.
Resulta que las recomendaciones de Microsoft no son correctas ???
Hola, @pavel118
El espacio de almacenamiento ocupado por una columna en VertiPaq está significativamente influenciado por su cardinalidad, que es el número de valores únicos en la columna. Si CustomerKey tiene una cardinalidad mayor que CustomerAlternateKey, podría ocupar más espacio a pesar de ser numérica.
Optimización de columnas de alta cardinalidad en VertiPaq - SQLBI
VertiPaq utiliza la codificación de diccionario para comprimir los datos. En el caso de las columnas numéricas, si el rango de números es grande, el diccionario puede llegar a ser bastante grande. Por otro lado, las columnas alfanuméricas con menos valores únicos pueden tener diccionarios más pequeños. Aunque los tipos de datos numéricos generalmente se comprimen mejor, este no es siempre el caso si los valores numéricos no son repetitivos o si abarcan una amplia gama. Las cadenas alfanuméricas que son repetitivas se pueden comprimir de forma más eficaz. Puedes ver el siguiente enlace:
La optimización de Vertipaq y su impacto en la compresión del almacén de columnas - Simple Talk
En su caso, parece que CustomerKey podría tener una cardinalidad más alta o un intervalo más amplio de valores en comparación con CustomerAlternateKey, lo que lleva a que se use más espacio de almacenamiento. La recomendación de Microsoft de convertir texto en valores numéricos es generalmente válida, pero casos específicos como el suyo pueden mostrar resultados diferentes debido a los factores mencionados anteriormente.
En función de su información, creo una tabla de ejemplo:
A continuación, cree una nueva columna calculada:
CustomerKey = VALUE(MID([CustomerAlternateKey], 3, LEN([CustomerAlternateKey]) - 2))
En DAX Studio, examiné el tamaño de los datos
En el ejemplo, el tipo Int obvio es menor que el tamaño de datos del tipo de cadena
Cómo obtener respuestas rápidas a su pregunta
Saludos
Yongkang Hua
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
@v-yohua-msft ¡Gracias por la respuesta!
Pero la cardinalidad de CustomerKey y CustomerAlternateKey es la misma: 18.484. No está claro por qué el diccionario de CustomerKey ocupa más memoria. ¿Debería ser al revés o me estoy perdiendo algo?
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!