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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

int vs string en VertiPaq

¡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.

https://learn.microsoft.com/en-us/power-bi/guidance/import-modeling-data-reduction#optimize-column-d...

pavel118_0-1733158096569.png

Sin embargo, cuando abro el analizador vertipaq en dax studio, veo que CustomerKey ocupa más espacio que CustomerAlternateKey

(Obras de Aventura)

pavel118_1-1733158532715.png

pavel118_2-1733158695471.png

No entiendo por qué la columna de números ocupa más espacio.

Resulta que las recomendaciones de Microsoft no son correctas ???

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

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:

vyohuamsft_0-1733196242134.png

A continuación, cree una nueva columna calculada:

CustomerKey = VALUE(MID([CustomerAlternateKey], 3, LEN([CustomerAlternateKey]) - 2))

vyohuamsft_1-1733196289793.png

En DAX Studio, examiné el tamaño de los datos

vyohuamsft_2-1733196447759.png

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?

pavel118_0-1733211929543.png

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Kudoed Authors