Tablas de hechos y de dimensiones

Al diseñar el esquema para una base de datos de Azure Data Explorer, piense en las tablas que pertenecen ampliamente a una de estas dos categorías.

Tablas de hechos

Las tablas de hechos son tablas cuyos registros son "hechos" inmutables, como registros de servicio e información de medición. Los registros se anexan progresivamente a la tabla de forma de streaming o en fragmentos grandes. Los registros permanecen allí hasta que se quitan debido al costo o porque han perdido su valor. De lo contrario, los registros nunca se actualizan.

A veces, los datos de entidad se mantienen en tablas de hechos, donde los datos de entidad cambian lentamente. Por ejemplo, datos sobre alguna entidad física, como un elemento de equipo de oficina que cambia con poca frecuencia la ubicación. Dado que los datos de Kusto son inmutables, la práctica común es hacer que cada tabla contenga dos columnas:

  • Una columna de identidad (string) que identifica la entidad
  • Columna de marca de tiempo de última modificación (datetime)

A continuación, solo se recupera el último registro de cada identidad de entidad.

Tablas de dimensiones

Tablas de dimensiones:

  • Almacenar datos de referencia, como tablas de búsqueda de un identificador de entidad a sus propiedades
  • Almacenar datos similares a instantáneas en tablas cuyo contenido completo cambie en una sola transacción

Las tablas de dimensiones no se ingieren regularmente con nuevos datos. En su lugar, todo el contenido de los datos se actualiza a la vez, mediante operaciones como .set-or-replace, .move extensiones o tablas .rename.

A veces, las tablas de dimensiones pueden derivarse de tablas de hechos. Este proceso se puede realizar a través de una vista materializada en la tabla de hechos, con una consulta en la tabla que toma el último registro para cada entidad.

Diferenciar tablas de hechos y dimensiones

Hay procesos en Kusto que diferencian entre las tablas de hechos y las tablas de dimensiones. Una de ellas es la exportación continua.

Estos mecanismos están garantizados para procesar datos en tablas de hechos precisamente una vez. Se basan en el mecanismo de cursor de base de datos .

Por ejemplo, cada ejecución de un trabajo de exportación continua exporta todos los registros ingeridos desde la última actualización del cursor de base de datos. Los trabajos de exportación continua deben diferenciar entre tablas de hechos y tablas de dimensiones. Las tablas de hechos solo procesan los datos recién ingeridos y las tablas de dimensiones se usan como búsquedas. Por lo tanto, se debe tener en cuenta toda la tabla.

No hay ninguna manera de "marcar" una tabla como una "tabla de hechos" o una "tabla de dimensiones". La forma en que se ingieren los datos en la tabla y cómo se usa la tabla es lo que identifica su tipo.