Ograniczenia i znane problemy dotyczące zmaterializowanych widoków

Zmaterializowane źródło widoku

  • Tabela źródłowa zmaterializowanego widoku:
    • Musi być tabelą, w której dane są pozyskiwane bezpośrednio, przy użyciu zasad aktualizacji lub pozyskiwane z poleceń zapytania.
      • Używanie zakresów przenoszenia lub zastępowanie zakresów z innych tabel do tabeli źródłowej zmaterializowanego widoku jest obsługiwane tylko w przypadku używania setNewIngestionTime właściwości w ramach polecenia przenoszenia zakresów (zobacz .move extents i .replace extents polecenia, aby uzyskać więcej szczegółów).
      • Przeniesienie zakresów do tabeli źródłowej zmaterializowanego widoku, chociaż nie jest używane setNewIngestionTime , może zakończyć się niepowodzeniem z jednym z następujących błędów:
        • 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).
  • Tabela źródłowa zmaterializowanego widoku musi mieć włączone zasady IngestionTime (jest ona domyślnie włączona).
  • Tabela źródłowa zmaterializowanego widoku nie może być tabelą z ograniczonymi zasadami dostępu do wyświetlania.
  • Nie można utworzyć zmaterializowanego widoku na podstawie innego zmaterializowanego widoku, chyba że pierwszy zmaterializowany widok jest agregacją typów take_any(*) . Zobacz zmaterializowany widok nad zmaterializowanym widokiem.
  • Zmaterializowane widoki nie mogą być zdefiniowane w tabelach zewnętrznych.

Ostrzeżenie

  • Zmaterializowany widok zostanie automatycznie wyłączony przez system, jeśli zmiany w tabeli źródłowej zmaterializowanego widoku lub zmiany w danych prowadzą do niezgodności między zmaterializowanym zapytaniem widoku a oczekiwanym schematem zmaterializowanego widoku.
    • Aby uniknąć tego błędu, zmaterializowane zapytanie widoku musi być deterministyczne. Na przykład wtyczka bag_unpack lub przestawna powoduje nie deterministyczny schemat.
    • W przypadku używania arg_max(Timestamp, *) agregacji i wartości autoUpdateSchema false zmiany w tabeli źródłowej mogą również prowadzić do niezgodności schematu.
      • Unikaj tego błędu, definiując zapytanie widoku jako arg_max(Timestamp, Column1, Column2, ...), lub używając autoUpdateSchema opcji .
  • Użycie autoUpdateSchema może prowadzić do nieodwracalnej utraty danych, gdy kolumny w tabeli źródłowej zostaną porzucone.
  • Monitoruj automatyczne wyłączanie zmaterializowanych widoków przy użyciu metryki MaterializedViewResult.
  • Po rozwiązaniu problemów z niezgodnością widok powinien być jawnie ponownie włączony przy użyciu polecenia włącz zmaterializowany widok .

Wpływ rekordów pozyskanych do lub porzuconych z tabeli źródłowej

  • Zmaterializowany widok przetwarza tylko nowe rekordy pozyskane do tabeli źródłowej. Rekordy, które są usuwane z tabeli źródłowej, uruchamiajączakresy usuwanianietrwałego usuwania/danych/ lub z powodu zasad przechowywania lub innego powodu, nie mają wpływu na zmaterializowany widok.
  • Zmaterializowany widok ma własne zasady przechowywania, które są niezależne od zasad przechowywania tabeli źródłowej. Zmaterializowany widok może zawierać rekordy, które nie znajdują się w tabeli źródłowej.

Bazy danych obserwujących

  • Nie można utworzyć zmaterializowanych widoków w kolejnych bazach danych. Bazy danych obserwowanych są tylko do odczytu i zmaterializowane widoki wymagają operacji zapisu.
  • Zmaterializowane widoki zdefiniowane w bazach danych liderów mogą być odpytywane od swoich zwolenników, podobnie jak każda inna tabela w liderze.
  • Użyj klastra lidera, aby monitorować zmaterializowane widoki bazy danych obserwowanych. Aby uzyskać więcej informacji, zobacz zmaterializowane widoki w kolejnych bazach danych.

Inne

  • Nie można używać funkcji kursora na podstawie zmaterializowanych widoków.
  • Eksport ciągły z zmaterializowanego widoku nie jest obsługiwany.