Share via


Limitaciones de las vistas materializadas y problemas conocidos

Origen de la vista materializada

  • La tabla de origen de una vista materializada:
    • Debe ser una tabla en la que los datos se ingieren directamente, mediante una directiva de actualización o la ingesta de comandos de consulta.
      • El uso de extensiones de movimiento o reemplazar extensiones de otras tablas a la tabla de origen de la vista materializada solo se admite si se usa setNewIngestionTime la propiedad como parte del comando mover extensiones (consulte los comandos .move extents y .replace extents para obtener más detalles).
      • Al mover extensiones a la tabla de origen de una vista materializada, aunque no se usa setNewIngestionTime , se puede producir un error con uno de los siguientes errores:
        • Cannot drop/move extents from/to table 'TableName' since Materialized View 'ViewName' is currently processing some of these extents.
        • Cannot move extents to 'TableName' since materialized view 'ViewName' will not process these extents (can lead to data loss in the materialized view).
  • La tabla de origen de una vista materializada debe tener habilitada la directiva IngestionTime (está habilitada de forma predeterminada).
  • La tabla de origen de una vista materializada no puede ser una tabla con una directiva de acceso de vista restringida.
  • No se puede crear una vista materializada sobre otra vista materializada, a menos que la primera vista materializada sea de tipo take_any(*) agregación. Vea la vista materializada sobre la vista materializada.
  • No se pueden definir vistas materializadas sobre tablas externas.

Advertencia

  • El sistema deshabilitará automáticamente una vista materializada si cambia a la tabla de origen de la vista materializada o los cambios en los datos conducen a la incompatibilidad entre la consulta de vista materializada y el esquema de la vista materializada esperada.
    • Para evitar este error, la consulta de vista materializada debe ser determinista. Por ejemplo, el bag_unpack o los complementos dinámicos dan como resultado un esquema no determinista.
    • Cuando se usa una arg_max(Timestamp, *) agregación y cuando autoUpdateSchema es false, los cambios en la tabla de origen también pueden provocar errores de coincidencia de esquema.
      • Evite este error definiendo la consulta de vista como arg_max(Timestamp, Column1, Column2, ...)o mediante la autoUpdateSchema opción .
  • El uso autoUpdateSchema puede provocar una pérdida de datos irreversible cuando se quitan las columnas de la tabla de origen.
  • Supervise la deshabilitación automática de vistas materializadas mediante la métrica MaterializedViewResult.
  • Después de corregir problemas de incompatibilidad, la vista debe volver a habilitarse explícitamente mediante el comando habilitar vista materializada .

Impacto de los registros ingeridos o eliminados de la tabla de origen

  • Una vista materializada solo procesa nuevos registros ingeridos en la tabla de origen. Los registros que se quitan de la tabla de origen, ya sea mediante la ejecución deextensiones de eliminación temporal de purga// de datos, o debido a la directiva de retención o a cualquier otro motivo, no tienen ningún impacto en la vista materializada.
  • La vista materializada tiene su propia directiva de retención, que es independiente de la directiva de retención de la tabla de origen. La vista materializada puede incluir registros que no están presentes en la tabla de origen.

Bases de datos de seguidores

  • No se pueden crear vistas materializadas en las bases de datos del seguidor. Las bases de datos del seguidor son de solo lectura y las vistas materializadas requieren operaciones de escritura.
  • Las vistas materializadas definidas en las bases de datos de líderes se pueden consultar desde sus seguidores, como cualquier otra tabla del líder.
  • Use el clúster líder para supervisar las vistas materializadas de la base de datos del seguidor. Para obtener más información, consulte Vistas materializadas en bases de datos del seguidor.

Otros

  • Las funciones de cursor no se pueden usar sobre vistas materializadas.
  • No se admite la exportación continua desde una vista materializada.