Share via


.alter materialized-view

La modificación de la vista materializada se puede usar para cambiar la consulta de una vista materializada, a la vez que se conservan los datos existentes en la vista.

Advertencia

Tenga cuidado adicional al modificar una vista materializada. El uso incorrecto puede provocar la pérdida de datos.

Permisos

Debe tener al menos permisos de vista materializada Administración para ejecutar este comando.

Syntax

.altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{Consulta}

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
PropertyName, PropertyValue string Lista de propiedades en forma de pares nombre y valor, de la lista de propiedades admitidas.
MaterializedViewName string ✔️ Nombre de la vista materializada.
SourceTableName string ✔️ Nombre de la tabla de origen en la que se define la vista.
Consultar string ✔️ Definición de consulta de la vista materializada.

Propiedades admitidas

Las siguientes propiedades se admiten en la with( cláusula PropertyName=PropertyValue). Todas las propiedades son opcionales.

Nombre Tipo Descripción
lookback timespan Válido solo para arg_max//arg_mintake_any vistas materializadas. Limita el período de tiempo en el que se esperan duplicados. Por ejemplo, si se especifica una búsqueda de 6 horas en una arg_max vista, la desduplicación entre los registros recién ingeridos y los existentes tendrá en cuenta solo los registros ingeridos hace hasta 6 horas.

Lookback es relativo a ingestion_time. Definir el período de búsqueda incorrectamente podría provocar duplicados en la vista materializada. Por ejemplo, si se ingiere un registro para una clave específica 10 horas después de ingerir un registro para la misma clave y la devolución de búsqueda se establece en 6 horas, esa clave será un duplicado en la vista. El período de devolución de búsqueda se aplica durante el tiempo de materialización y el tiempo de consulta.
autoUpdateSchema bool Si se va a actualizar automáticamente la vista en la tabla de origen. El valor predeterminado es false. Esta opción solo es válida para las vistas de tipo arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) (solo cuando el argumento de la columna es ).* Si esta opción se establece trueen , los cambios en la tabla de origen se reflejarán automáticamente en la vista materializada.
dimensionTables array Argumento dinámico que incluye una matriz de tablas de dimensiones en la vista. Consulte Parámetro de consulta.
folder string Carpeta de la vista materializada.
docString string Cadena que documenta la vista materializada.

Devoluciones

Esquema de salida:

Nombre Tipo Descripción
Nombre string Nombre de la vista materializada.
SourceTable string Nombre de la tabla de origen en la que se define la vista.
Consultar string Definición de consulta de la vista materializada.
MaterializedTo datetime Marca de tiempo máxima materializada ingestion_time() en la tabla de origen. Para obtener más información, vea cómo funcionan las vistas materializadas.
LastRun datetime Última vez que se ejecutó la materialización.
LastRunResult string Resultado de la última ejecución. Devuelve Completed las ejecuciones correctas; de lo contrario Failed, .
IsHealthy bool true cuando la vista se considera en buen estado; de lo contrario, false . La vista se considera correcta si se materializó correctamente hasta la última hora (MaterializedTo es mayor que ago(1h)).
IsEnabled bool true cuando la vista está habilitada (consulte Deshabilitar o habilitar la vista materializada).
Carpeta string Carpeta en la que se crea la vista materializada.
DocString string Descripción asignada a la vista materializada.
AutoUpdateSchema bool Si la vista está habilitada para las actualizaciones automáticas.
EffectiveDateTime datetime Fecha efectiva de la vista, determinada durante la hora de creación (vea .create materialized-view).
Retrospectiva timespan Intervalo de tiempo que limita el período de tiempo en el que se esperan duplicados.

Ejemplos

Modificar la definición de consulta de una vista materializada

El comando siguiente modifica la definición de consulta de la vista materializada MyView:

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

Salida

Nombre SourceTable Consultar MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Carpeta DocString AutoUpdateSchema EffectiveDateTime Retrospectiva
MyView MyTable MyTable | summarize arg_max(Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Completado true true false 2023-02-23T14:01:42.5172342Z

Casos de uso

  • Agregue agregaciones a la vista; por ejemplo, agregue avg agregación a T | summarize count(), min(Value) by Id, modificando la consulta de vista a T | summarize count(), min(Value), avg(Value) by Id.
  • Operadores de cambio distintos del operador summarize. Por ejemplo, filtre algunos registros modificando T | summarize arg_max(Timestamp, *) by User a T | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • Modifique sin cambios en la consulta debido a un cambio en la tabla de origen. Por ejemplo, supongamos una vista de T | summarize arg_max(Timestamp, *) by Id, que no está establecida autoUpdateSchema en (vea .create materialized-view el comando ). Si se agrega o quita una columna de la tabla de origen de la vista, la vista se deshabilita automáticamente. Ejecute el comando alter, con la misma consulta, para cambiar el esquema de la vista materializada para alinearse con el nuevo esquema de tabla. La vista todavía debe habilitarse explícitamente después del cambio, mediante el comando habilitar vista materializada .

Limitaciones

  • Cambios no admitidos:

    • Cambios en el grupo de vistas materializado por expresiones.
    • Cambiar el tipo de columna.
    • Cambio de nombre de las columnas. Por ejemplo, al modificar una vista de para T | summarize count() by IdT | summarize Count=count() by Id quitar columna count_ y se crea una nueva columna Count, que inicialmente solo contiene valores NULL.
  • Impacto en los datos existentes:

    • La modificación de la vista materializada no afecta a los datos existentes.
    • Agregar filtros a la consulta solo se aplica a los registros recién ingeridos y no cambia los registros que ya se han materializado.
      • Las nuevas columnas reciben valores NULL para todos los registros existentes hasta que los registros ingeridos después del comando alter modifican los valores NULL.
      • Por ejemplo: se modifica una vista de T | summarize count() by bin(Timestamp, 1d) a T | summarize count(), sum(Value) by bin(Timestamp, 1d). Para un determinado Timestamp=T para el que los registros ya se han procesado antes de modificar la vista, la sum columna contiene datos parciales. Esta vista solo incluye registros procesados después de la modificación de la ejecución.