Forum Discussion
Error de memoria
Estamos tratando de resolver el problema. Conseguimos el problema por la siguiente consulta DAX en la columna calculada -
Final 2 ?
VAR a - CALCULATE(
MAX('stg kronos'[ENDDTM]),
FILTRO(
ALLEXCEPT('stg kronos','stg kronos'[EMPLOYEEID],'stg kronos'[PAYCODENAME]),
'stg kronos'[ENDDTM] < EARLIER('stg kronos'[ENDDTM])
)
)
Var b á IF('stg kronos'[ENDREASON]-"missedOut",a,'stg kronos'[STARTDTM])
Devolver IF(b-BLANK(),'stg kronos'[STARTDTM],b)
La consulta anterior se ejecuta perfectamente en la tabla de ejemplo, pero cuando la ejecutamos en la tabla de producción, Power Bi produce un error de asignación de memoria.
Intentamos cambiar el tamaño de la máquina virtual de 8 Gb a 32 Gb a 64 Gb, pero todavía tenemos el mismo error.
Además, aumentamos la memoria caché a 54000mb, es decir, 54Gb.
Actualmente, estoy ejecutando power bi en la máquina virtual con 64 Gb de Ram y el número total de filas es de 1,2 millones.
Tomamos ayuda del apoyo y asesoramiento sobre el que sugirieron que la función CALCULATE es el problema aquí.
Ejemplo de archivo pbix y captura de pantalla de error
https://drive.google.com/drive/folders/1Wz51npWQ-8gZjgJ_fXUtPbhWYIW_mWdl?usp=sharing
Por aquí quiero calcular una columna que me dará la fecha de la fecha final del registro anterior cuando se pierda ENDREASON y cuando esté fuera dará la fecha de inicio.
Producción esperada
7 Replies
- Tahreem24
Super User
Intente aumentar el máximo permitido a 16000 en Archivo / Opciones y configuración / Opciones / Global / Carga de datos. Opciones de administración de caché de datos.
- Tahreem24
Super User
He abierto su archivo a mi lado y no tengo ningún error de este tipo.
Lo primero, no hay ningún problema con CALCULATE. Si está funcionando bien con su un entorno, así que ¿cómo puede decir que hay un problema con CALCULATE mientras se ejecuta en la producción ???
En segundo lugar, no hay ningún problema con DAX. Su problema está relacionado con el tamaño de memeory/cache.
Puedo ejecutar con éxito su archivo y DAX en mi lado sin ningún error. (ver a continuación SS)
- Nimai123
Post Patron
Gracias @Tahreem24 por la respuesta en el hilo
Hemos aumentado el tamaño de la memoria caché hasta 54000, lo que equivale a 54 GB
El archivo contiene los datos de ejemplo y la captura de pantalla del error de la base de datos de producción que está causando el problema de memoria.
- sarveshpandey23Frequent Visitor
Hola @Tahreem24,
Lo intentamos también aumentando la memoria caché a 54000 Mb, pero todavía estamos recibiendo el mismo error
- AnonymousNot applicable
Hola @Nimai123 ,
¿Qué tal modificar su fórmula como se muestra a continuación.
Final 2 = VAR a = CALCULATE ( MAX ( 'stg kronos'[ENDDTM] ), FILTER ( ALLEXCEPT ( 'stg kronos', 'stg kronos'[EMPLOYEEID], 'stg kronos'[PAYCODENAME] ), 'stg kronos'[ENDDTM] < EARLIER ( 'stg kronos'[ENDDTM] ) ) ) RETURN IF ( 'stg kronos'[ENDREASON] = "missedOut" && a <> BLANK (), a, 'stg kronos'[STARTDTM] )O dividirlo en dos cloumns.
a = CALCULATE ( MAX ( 'stg kronos'[ENDDTM] ), FILTER ( ALLEXCEPT ( 'stg kronos', 'stg kronos'[EMPLOYEEID], 'stg kronos'[PAYCODENAME] ), 'stg kronos'[ENDDTM] < EARLIER ( 'stg kronos'[ENDDTM] ) ) ) b = IF ( 'stg kronos'[ENDREASON] = "missedOut" && a <> BLANK (), a, 'stg kronos'[STARTDTM] )Saludos
Jay
Equipo de apoyo a la comunidad _ Jay Wang
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
- Nimai123
Post Patron
Hey @v-jayw-msft
Intenté dividir las columnas, pero aún así, estoy recibiendo el mismo error, porque supongo que el problema radica en la función de cálculo (la lógica es correcta) ya que está tardando más tiempo en cargarse en el backend como se muestra en la captura de pantalla!
- ics_sys_usr
Administrator
@Nimai123 le importaría compartir cómo conectó sus datos de Kronos? ¿Estaba usando la API REST y, de ser así, cómo lo hizo?