Creando relación DateTime, tiempo de época

Un usuario Pregunto ✅

Niko

Hola,

Soy nuevo en powerBI y acabo de extraer mis datos históricos de la estación meteorológica de Azure a powerBI y ahora estoy tratando de averiguar cómo establecer una relación DateTime. Los datos se organizaron originalmente por marca de tiempo de época. Encontré un par de tutoriales sobre cómo convertir esto a un formato legible por humanos. Después de esto, creé una nueva tabla de búsqueda «fechas» donde creé todos los días de la semana, números de semana, etc.

Me permite crear una relación entre estas dos tablas, pero no muestra los números de semana ni nada de las «fechas» de la tabla de búsqueda. Solo la marca de tiempo de los datos reales que formateé desde el tiempo de época hasta el tiempo legible por humanos. ¿Cuál sería la mejor manera de hacer que esto funcione? En el futuro, me gustaría no solo perforar los datos a nivel de día sino también a nivel de minutos. Entonces podría crear filtros como el promedio de los últimos 10 minutos, etc.

question.PNG

Hola @Niko,

La razón por «Se especificó una columna de fecha que contiene fechas duplicadas en la llamada a la función ‘FIRSTDATE’. Esto no es compatible». es hay fechas con la misma fecha pero diferente hora.

¿Podría publicar algunas instantáneas de las «fechas» de la tabla de búsqueda y la relación? Porque creo que no es buena idea establecer una relación entre las columnas con diferente hora (no fecha).

¡Atentamente!

Valle

Anónimo

En respuesta a v-jiascu-msft

Solo pensé en otra cosa que puedes hacer. Puede utilizar este cálculo para crear una nueva dimensión de tiempo: CALENDARIO (FECHA (DÍA; MES; AÑO); AHORA ()). De esta manera, usted decide manualmente cuándo comienza la dimensión de tiempo.

Déjame saber como va.

Mejor

Martín

Niko

En respuesta a Anónimo

Gracias por las respuestas @ v-jiascu-msft y @Anonymous

Creé ahora esta nueva tabla de fechas, pero sigo teniendo el mismo problema. ¿Alguna sugerencia de cómo resolver esto? Adjunto instantáneasTabla de datos.PNG
Tabla de datos

Tabla de fechas.PNG
Tabla de fechas

relación.PNG

Relación

view.PNG
Vista de visualización

En respuesta a Niko

Hola @Niko,

Intente estos pasos.

1. Eliminar la relación;

2. Agregue una columna en «Tabla de datos»:

PureDate = [Date].[date]

3. Cree la relación.

¡Atentamente!

Valle

Niko

En respuesta a v-jiascu-msft

Hola @vanessafvg y @ v-jiascu-msft Creé esta columna puredate y una relación de muchos a uno entre ellos (Fechas[puredate} and Data[date] ) pero no solucionó el problema. Luego también intenté poner el tipo de fecha y hora solo en el tipo de fecha (en ambas tablas) como dijo Vanessa, pero lo único que pareció afectar fue que ya no puedo ver la hora en la tabla de visualización en Datos[Date] sección como en la instantánea a continuación.

Puredate.PNG

-Niko

En respuesta a Niko

Hola @Niko

Como se muestra en su imagen, parece que agregó el [puredate] a una tabla equivocada. Deberías agregarlo a la tabla [data]. Por favor inténtelo.

¡Atentamente!

Valle

Niko

En respuesta a v-jiascu-msft

¡Tengo esto funcionando ahora! En primer lugar, convertí la marca de tiempo de la época en hora / fecha. Luego separé la hora y la fecha en sus propias columnas. Después de eso, seguí estas instrucciones para crear calendarios dinámicos de fecha y hora con Power query

http://databear.com/2016/11/08/power-bi-tip-dynamic-calendar-table/

https: //ginameronek.com/2014/10/01/its-just-a-matter-of-time-power-bi-date-time-dimension-toolkit/#C …

Todos pensaron que estoy teniendo un pequeño problema con el calendario de tiempo. Dado que recopilé los datos con mucha precisión con la marca de tiempo epoc. Podría tener momentos como

0:00:18

0:01:00

0:02:14

0:03:45
0:04:00

El calendario de tiempo se ha creado a nivel de minutos y ese es el nivel en el que quiero rastrear también mis datos.

En el modo de visualización, ahora solo muestra las marcas de tiempo que tienen exactamente el mismo valor. En este caso, solo mostraría los valores detrás de la hora 0:01:00 y 0:04:00. ¿Cuál sería la forma más conveniente de eliminar los segundos y convertir el tiempo al minuto más cercano?

Hno. Niko

En respuesta a Niko

Hola @Niko,

¿Podría decirme si su problema se resolvió? ¿Podría compartir la respuesta o marcar la respuesta adecuada como solución si es conveniente para usted? Eso será de ayuda para los demás.

¡Atentamente!
Valle

Niko

En respuesta a v-jiascu-msft

Hola @ v-jiascu-msft

Estuve ocupado con algún otro proyecto, pero probé este truco hoy y no funcionó. Creo que esto podría funcionar si lo hiciera en modo de consulta (con M) no con DAX. Como hice con la tabla de fecha y hora y luego empezaron a funcionar. ¿Hay alguien leyendo esta publicación que sepa cómo hacer esto (TimeNoSec = FORMAT ( [Time]; «hh: mm: 00») en M?

-Niko

En respuesta a Niko

Hola @Niko,

Podría agregar una nueva columna con esta fórmula:

Bridge =
FORMAT ( [Minute], "hh:mm:00" )

Creando relación DateTime, epoch time.jpg

¡Atentamente!

Valle

Niko

En respuesta a v-jiascu-msft

¡Tengo esto funcionando! Primero creé la fecha / hora a partir de la marca de tiempo de la época y luego las separé en sus propias columnas «fecha» y «hora», después de esto, seguí estas instrucciones para crear un calendario de fecha dinámico y luego seguí estas instrucciones para crear un «calendario» de tiempo.

Todos pensaron que ahora estoy enfrentando un nuevo problema con el calendario de tiempo. Como mis datos se han recopilado con mucha precisión con la marca de tiempo de época, ahora tengo momentos como

0:00:18

0:01:00

0:01:12
0:01:32

0:02:00

En las visualizaciones, solo muestra los datos que han llegado exactamente 0:01:00 y 0:02:00, pero no los resultados entre ellos. ¿Cuál sería la mejor manera de agregar / resumir / redondear los datos al nivel de un minuto? Probé MROUND (Data[Time]; 00; 01) pero no funcionó ^^

Hno. Niko

vanessafvg

En respuesta a Niko

@Niko, en este punto, creo que sería mejor compartir su pbix, si desea enviarlo en privado, no dude en enviármelo en un mensaje privado o dejarlo aquí para que uno de nosotros pueda ayudarlo.

Anónimo

En respuesta a Niko

Sospecho que es la marca de tiempo, que no coincide, la que está causando el problema, pero en realidad no lo sé. He intentado esto antes donde no fue un problema. Lamentablemente, ya no tengo acceso a ese informe. ¿Podría compartir los datos o el informe?

Gracias por adelantado,

Martín

Niko

En respuesta a Anónimo

Lamentablemente, no puedo compartir los datos ni el informe. Pero el código detrás de la marca de tiempo de la época es
= Table.AddColumn (# «Columnas eliminadas», «Fecha», cada #fechahora (1970, 1, 1, 0, 0, 0) + #duración (0, 0, 0, [TimeStamp])) para ponerlo en modo legible por humanos. Creo que no debería haber nada malo en esto y debería coincidir al 100% con DateTime

Anónimo

En respuesta a Niko

Ese fue mi pensamiento también. Probablemente debería contactar a Microsoft sobre esto. No puedo volver a crear tu problema.

vanessafvg

En respuesta a Anónimo

@Niko es su fecha y hora en la tabla de fechas a la hora ¿nivel?

¿Es una mejor práctica separar los campos de fecha y hora si los usa para el análisis?

es casi seguro que la fecha y la hora no coinciden, incluso si desea mantener su columna de fecha y hora, cree una columna de fecha adicional sin tiempo y vea qué sucede en ambos lados para probar la coincidencia y ver si es la fecha y hora la que causa el problema

Anónimo

Hola @Niko

Le sugiero que pruebe un método diferente para crear su tabla de fechas. Intente crear su tabla de fechas así:

Vaya al menú -> presione nueva tabla -> inserte esta consulta dax: TimeDim = CALENDAR (FIRSTDATE (Table[Date]); LASTDATE (Tabla[Date])) -> presione enter -> vaya a la pestaña de relaciones a la izquierda -> cree la relación entre sus tablas.

Puedo entrar en detalles sobre cómo funciona. Avísame si quieres que le dé más detalles. Por ahora, prueba este método.

Mejor

Martín

Niko

En respuesta a Anónimo

Hola @Anónimo

Gracias por responder Martin. Intenté esto y aparece el error «Se especificó una columna de fecha que contiene fechas duplicadas en la llamada a la función ‘FIRSTDATE’. Esto no es compatible».

Intenté esto con ambos tipos de datos, fecha y fecha / hora y no hizo ninguna diferencia.

Br. Niko

Anónimo

En respuesta a Niko

Hola @Niko

Gracias por la respuesta. No importa qué formato de fecha uses. Recomendaría usar siempre Fecha / Hora si las marcas de tiempo son importantes.

Una pregunta: ¿Existe alguna razón en particular para tener duplicados en las fechas? Podría tener una solución aquí dependiendo de su respuesta.

Niko

En respuesta a Anónimo

@Anónimo no hay razón para tener duplicados en las fechas. Los datos simplemente aparecieron de esta manera cuando formateé el tiempo de época en tiempo legible por humanos. La marca de tiempo importa en este caso, porque quiero profundizar hasta el nivel de los minutos.

Br. Niko

Deja un comentario

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