Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Używanie zmaterializowanych widoków w usłudze Databricks SQL

Uwaga

Jeśli musisz użyć połączenia usługi Azure Private Link z zmaterializowanym widokiem, skontaktuj się z przedstawicielem usługi Databricks.

W tym artykule opisano sposób tworzenia i używania zmaterializowanych widoków w usłudze Databricks SQL w celu zwiększenia wydajności i zmniejszenia kosztów obciążeń przetwarzania i analizy danych.

Ważne

Zmaterializowane widoki utworzone w usłudze Databricks SQL są wspierane przez potok bezserwerowych tabel delta live tables. Aby korzystać z tej funkcji, obszar roboczy musi obsługiwać potoki bezserwerowe.

Co to są zmaterializowane widoki?

W usłudze Databricks SQL zmaterializowane widoki to tabele zarządzane przez wykaz aparatu Unity, które pozwalają użytkownikom wstępnie skompilować wyniki na podstawie najnowszej wersji danych w tabelach źródłowych. Zmaterializowane widoki w usłudze Azure Databricks różnią się od innych implementacji, ponieważ zwrócone wyniki odzwierciedlają stan danych, gdy zmaterializowany widok został ostatnio odświeżony, a nie zawsze aktualizując wyniki podczas wykonywania zapytań dotyczących zmaterializowanego widoku. Możesz ręcznie odświeżyć zmaterializowane widoki lub zaplanować odświeżanie.

Zmaterializowane widoki są zaawansowane w przypadku obciążeń przetwarzania danych, takich jak przetwarzanie wyodrębniania, przekształcania i ładowania (ETL). Zmaterializowane widoki zapewniają prosty, deklaratywny sposób przetwarzania danych pod kątem zgodności, poprawek, agregacji lub ogólnego przechwytywania danych zmian (CDC). Zmaterializowane widoki zmniejszają koszty i zwiększają opóźnienie zapytań przez wstępne przetwarzanie wolnych zapytań i często używanych obliczeń. Zmaterializowane widoki umożliwiają również łatwe w użyciu przekształcenia, czyszcząc, wzbogacając i denormalizując tabele podstawowe. Zmaterializowane widoki mogą obniżyć koszty, zapewniając uproszczone środowisko użytkownika końcowego, ponieważ w niektórych przypadkach mogą przyrostowo obliczać zmiany z tabel bazowych.

Zmaterializowane widoki były po raz pierwszy obsługiwane w usłudze Azure Databricks z uruchomieniem funkcji Delta Live Tables. Podczas tworzenia zmaterializowanego widoku w usłudze Databricks SQL Warehouse tworzony jest potok bezserwerowy w celu przetworzenia odświeżeń do zmaterializowanego widoku. Stan operacji odświeżania można monitorować w interfejsie użytkownika tabel delta Live Tables lub interfejsie API potoków. Zobacz Wyświetlanie stanu zmaterializowanego odświeżania widoku.

Wymagania

Aby utworzyć lub odświeżyć zmaterializowane widoki:

  • Musisz użyć pro lub bezserwerowego magazynu SQL Warehouse z obsługą wykazu aparatu Unity.

  • Aby odświeżyć zmaterializowany widok, musisz znajdować się w utworzonym obszarze roboczym.

  • Obszar roboczy musi znajdować się w regionie obsługującym bezserwerowe magazyny SQL.

Aby wykonywać zapytania dotyczące zmaterializowanych widoków:

  • Musisz być właścicielem zmaterializowanego widoku lub mieć SELECT na zmaterializowanym widoku wraz z elementami nadrzędnymi USE SCHEMA i USE CATALOG na jego elementach nadrzędnych.
  • Należy użyć jednego z następujących zasobów obliczeniowych:
    • SQL Warehouse
    • Interfejsy funkcji Delta Live Tables
    • Obliczanie trybu dostępu współdzielonego
    • Tryb dostępu pojedynczego użytkownika w środowisku Databricks Runtime w wersji 15.4 lub nowszej, o ile obszar roboczy jest włączony na potrzeby przetwarzania bezserwerowego. Zobacz Szczegółowa kontrola dostępu w obliczeniach pojedynczego użytkownika.
    • Tylko wtedy, gdy jesteś właścicielem zmaterializowanego widoku: jeden zasób obliczeniowy trybu dostępu użytkownika, który uruchamia środowisko Databricks Runtime z zakresu od 14.3 do 15.3.

Aby dowiedzieć się więcej o innych ograniczeniach dotyczących używania zmaterializowanych widoków, zobacz Ograniczenia.

Tworzenie zmaterializowanego widoku

Operacje zmaterializowanego widoku CREATE sql usługi Databricks używają usługi Databricks SQL Warehouse do tworzenia i ładowania danych w zmaterializowanym widoku. Tworzenie zmaterializowanego widoku jest operacją synchroniczną, co oznacza, że CREATE MATERIALIZED VIEW polecenie blokuje do momentu utworzenia zmaterializowanego widoku i zakończenia początkowego ładowania danych. Potok bezserwerowych tabel na żywo delty jest automatycznie tworzony dla każdego zmaterializowanego widoku SQL usługi Databricks. Po odświeżeniu zmaterializowanego widoku potok Delta Live Tables przetwarza odświeżanie.

Aby utworzyć zmaterializowany widok, użyj instrukcji CREATE MATERIALIZED VIEW . Aby przesłać instrukcję create, użyj edytora SQL w interfejsie użytkownika usługi Azure Databricks, interfejsie wiersza polecenia SQL usługi Databricks lub interfejsie API SQL usługi Databricks.

Uwaga

Użytkownik, który tworzy zmaterializowany widok, jest zmaterializowanym właścicielem widoku i musi mieć następujące uprawnienia:

  • SELECT uprawnienia do tabel bazowych, do których odwołuje się zmaterializowany widok.
  • USE CATALOG i USE SCHEMA uprawnienia w wykazie i schemacie zawierającym tabele źródłowe dla zmaterializowanego widoku.
  • USE CATALOG i USE SCHEMA uprawnienia w wykazie docelowym i schemacie dla zmaterializowanego widoku.
  • CREATE TABLE i CREATE MATERIALIZED VIEW uprawnienia schematu zawierającego zmaterializowany widok.

Poniższy przykład tworzy zmaterializowany widok mv1 z tabeli base_table1podstawowej :

CREATE MATERIALIZED VIEW mv1
AS SELECT
  date, sum(sales) AS sum_of_sales
FROM
  base_table1
GROUP BY
  date;

Ustawianie kanału środowiska uruchomieniowego

Zmaterializowane widoki utworzone przy użyciu magazynów SQL są automatycznie odświeżane przy użyciu potoku delta live tables. Potoki delta Live Tables domyślnie używają środowiska uruchomieniowego w current kanale. Zapoznaj się z informacjami o wersji usługi Delta Live Tables i procesem uaktualniania wersji, aby dowiedzieć się więcej o procesie wydawania.

Usługa Databricks zaleca używanie kanału current dla obciążeń produkcyjnych. Nowe funkcje są po raz pierwszy udostępniane w preview kanale. Potok można ustawić na kanał delta live tables w wersji zapoznawczej, aby przetestować nowe funkcje, określając preview jako właściwość tabeli. Tę właściwość można określić podczas tworzenia tabeli lub po utworzeniu tabeli przy użyciu instrukcji ALTER.

W poniższym przykładzie kodu pokazano, jak ustawić kanał na podgląd w instrukcji CREATE:

CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
  *
FROM
  range(5)

Załaduj dane z systemów zewnętrznych

Usługa Databricks zaleca ładowanie danych zewnętrznych przy użyciu federacji lakehouse dla obsługiwanych źródeł danych. Aby uzyskać informacje na temat ładowania danych ze źródeł nieobsługiwanych przez federację usługi Lakehouse, zobacz Opcje formatu danych.

Odświeżanie zmaterializowanego widoku

Operacja REFRESH odświeża zmaterializowany widok, aby odzwierciedlić najnowsze zmiany w tabeli podstawowej. Operacja jest domyślnie synchroniczna, co oznacza, że polecenie blokuje działanie do czasu ukończenia operacji odświeżania. Aby odświeżyć zmaterializowany widok, użyj instrukcji REFRESH MATERIALIZED VIEW . Aby uzyskać szczegółowe informacje na temat składni i parametrów języka SQL dla tego polecenia, zobacz ODŚWIEŻANIE (ZMATERIALIZOWANY WIDOK lub TABELA PRZESYŁANIA STRUMIENIOWEGO). Aby dowiedzieć się więcej o typach zmaterializowanych widoków, które mogą być odświeżane przyrostowo, zobacz Odświeżanie przyrostowe dla zmaterializowanych widoków.

Aby przesłać instrukcję odświeżania, użyj edytora SQL w interfejsie użytkownika usługi Azure Databricks, notesu dołączonego do usługi SQL Warehouse, interfejsu wiersza polecenia SQL usługi Databricks lub interfejsu API SQL usługi Databricks.

Tylko właściciel może REFRESH zmaterializować widok.

Poniższy przykład odświeża mv1 zmaterializowany widok:

REFRESH MATERIALIZED VIEW mv1;

W jaki sposób są odświeżane widoki zmaterializowane w usłudze Databricks?

Zmaterializowane widoki automatycznie tworzą potoki delta live tables i używają ich do przetwarzania operacji odświeżania. Odświeżanie jest zarządzane przez potok Delta Live Tables, a aktualizacja jest monitorowana przez magazyn SQL Usługi Databricks używany do tworzenia zmaterializowanego widoku. Zmaterializowane widoki można aktualizować przy użyciu potoku Delta Live Tables, który jest uruchamiany zgodnie z harmonogramem. Zobacz Wyzwalane a tryb potoku ciągłego.

Uwaga

Środowisko uruchomieniowe delta Live Tables nie może wykryć zmian w źródłach danych innych niż delta. Tabela jest nadal regularnie aktualizowana, ale z wyższym domyślnym interwałem wyzwalacza, aby zapobiec nadmiernej ponownej kompilacji, spowalniając wszelkie operacje przetwarzania przyrostowego wykonywane na obliczeniach.

Domyślnie operacje odświeżania są wykonywane synchronicznie. Można również ustawić operację odświeżania, która ma być wykonywana asynchronicznie. Można to ustawić za pomocą polecenia refresh. Zobacz ODŚWIEŻANIE (ZMATERIALIZOWANY WIDOK lub TABELA PRZESYŁANIA STRUMIENIOWEGO) Zachowanie skojarzone z każdym podejściem jest następujące:

  • Synchroniczne: synchroniczne odświeżanie uniemożliwia kontynuowanie innych operacji do momentu ukończenia odświeżania. Jeśli wynik jest potrzebny do następnego kroku, na przykład podczas sekwencjonowania operacji odświeżania w narzędziach orkiestracji, takich jak Zadania usługi Databricks, użyj synchronicznego odświeżania. Aby zorganizować zmaterializowane widoki za pomocą zadania, użyj typu zadania SQL . Zobacz Planowanie i organizowanie przepływów pracy.
  • Asynchroniczne: odświeżanie asynchroniczne uruchamia zadanie w tle w obliczeniach tabel delta Live Tables po rozpoczęciu zmaterializowanego odświeżania widoku, co umożliwia zwrócenie polecenia przed zakończeniem ładowania danych. Ten typ odświeżania może zaoszczędzić na kosztach, ponieważ operacja nie musi przechowywać pojemności obliczeniowej w magazynie, w którym inicjowane jest polecenie. Jeśli odświeżanie stanie się bezczynne i nie są uruchomione żadne inne zadania, magazyn może zostać zamknięty, podczas gdy odświeżanie używa innych dostępnych zasobów obliczeniowych. Ponadto operacje odświeżania asynchronicznego obsługują równoległe uruchamianie wielu operacji.

Niektóre zapytania można odświeżać przyrostowo. Zobacz Odświeżanie przyrostowe dla zmaterializowanych widoków. Jeśli nie można wykonać odświeżania przyrostowego, zamiast tego jest wykonywane pełne odświeżanie.

Planowanie zmaterializowanych odświeżeń widoku

Możesz skonfigurować zmaterializowany widok SQL usługi Databricks w celu automatycznego odświeżania na podstawie zdefiniowanego harmonogramu. Aby ustawić harmonogram, wykonaj jedną z następujących czynności:

Po utworzeniu harmonogramu nowe zadanie usługi Databricks jest automatycznie skonfigurowane do przetwarzania aktualizacji.

Aby wyświetlić harmonogram, wykonaj jedną z następujących czynności:

  • Uruchom instrukcję DESCRIBE EXTENDED z edytora SQL w interfejsie użytkownika usługi Azure Databricks.
  • Użyj Eksploratora wykazu, aby wyświetlić zmaterializowany widok. Harmonogram jest wyświetlany na karcie Przegląd w obszarze Stan odświeżania. Zobacz Co to jest Eksplorator wykazu?.

Wyświetlanie stanu zmaterializowanego odświeżania widoku

Uwaga

Ponieważ potok delta Live Tables zarządza zmaterializowanymi odświeżeniami widoku, występuje opóźnienie spowodowane czasem uruchamiania potoku. Ten czas może znajdować się w sekundach do minut oprócz czasu wymaganego do przeprowadzenia odświeżania.

Stan zmaterializowanego odświeżania widoku można wyświetlić, wyświetlając potok, który zarządza zmaterializowanym widokiem w interfejsie użytkownika tabel delta Live Tables lub wyświetlając informacje odświeżania zwrócone przez DESCRIBE EXTENDED polecenie dla zmaterializowanego widoku.

Historię odświeżania zmaterializowanego widoku można również wyświetlić, wysyłając zapytanie do dziennika zdarzeń tabel delta Live Tables. Zobacz Wyświetlanie historii odświeżania dla zmaterializowanego widoku.

Monitorowanie przebiegów przy użyciu historii zapytań

Możesz użyć strony historii zapytań, aby uzyskać dostęp do szczegółów zapytań i profilów zapytań, które mogą pomóc w identyfikowaniu słabych zapytań i wąskich gardeł w potoku Delta Live Tables używanym do uruchamiania aktualizacji tabeli przesyłania strumieniowego. Aby zapoznać się z omówieniem rodzaju informacji dostępnych dla historii zapytań i profilów zapytań, zobacz Historia zapytań i Profil zapytania.

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej. Administratorzy obszaru roboczego mogą włączyć tę funkcję na stronie Podglądy . Zobacz Zarządzanie wersjami zapoznawcza usługi Azure Databricks.

Wszystkie instrukcje związane z zmaterializowanymi widokami są wyświetlane w historii zapytań. Filtr listy rozwijanej Instrukcja umożliwia wybranie dowolnego polecenia i sprawdzenie powiązanych zapytań. Po REFRESH wszystkich CREATE instrukcjach następuje instrukcja wykonywana asynchronicznie w potoku delty tabel na żywo. Instrukcje REFRESH zwykle zawierają szczegółowe plany zapytań, które zapewniają wgląd w optymalizację wydajności.

Aby uzyskać dostęp do REFRESH instrukcji w interfejsie użytkownika historii zapytań, wykonaj następujące kroki:

  1. Kliknij Ikona historii na lewym pasku bocznym, aby otworzyć interfejs użytkownika historii zapytań.
  2. Zaznacz pole wyboru REFRESH z filtru rozwijanego Instrukcja.
  3. Kliknij nazwę instrukcji zapytania, aby wyświetlić szczegóły podsumowania, takie jak czas trwania zapytania i zagregowane metryki.
  4. Kliknij pozycję Zobacz profil zapytania, aby otworzyć profil zapytania. Aby uzyskać szczegółowe informacje na temat nawigowania po profilu zapytania, zobacz Profil zapytania.
  5. Opcjonalnie użyj linków w sekcji Źródło zapytania, aby otworzyć powiązane zapytanie lub potok.

Uwaga

Zmaterializowany widok musi być skonfigurowany do uruchamiania przy użyciu kanału w wersji zapoznawczej . Zobacz Ustawianie kanału środowiska uruchomieniowego.

Zobacz CREATE MATERIALIZED VIEW (TWORZENIE ZMATERIALIZOWANEGO WIDOKU).

Wyświetlanie stanu odświeżania w interfejsie użytkownika tabel na żywo usługi Delta

Domyślnie potok Delta Live Tables, który zarządza zmaterializowanym widokiem, nie jest widoczny w interfejsie użytkownika delta Live Tables. Aby wyświetlić potok w interfejsie użytkownika tabel delta Live Tables, musisz uzyskać bezpośredni dostęp do linku do strony szczegółów potoku potoku. Aby uzyskać dostęp do linku:

  • Skopiuj i wklej link wyświetlany w wierszu Latest Refresh tabeli zwróconej przez instrukcję DESCRIBE EXTENDED .
  • Na karcie Pochodzenie dla zmaterializowanego widoku kliknij pozycję Potoki, a następnie kliknij link potoku.

W przypadku poleceń asynchronicznych REFRESH przesłanych przy użyciu edytora SQL w interfejsie użytkownika usługi Azure Databricks możesz wyświetlić stan odświeżania, korzystając z linku wyświetlanego na panelu Wyniki .

Zatrzymywanie aktywnego odświeżania

Aby zatrzymać aktywne odświeżanie w interfejsie użytkownika tabel na żywo delty, na stronie Szczegóły potoku kliknij przycisk Zatrzymaj , aby zatrzymać aktualizację potoku. Odświeżanie można również zatrzymać za pomocą interfejsu wiersza polecenia usługi Databricks lub post /api/2.0/pipelines/{pipeline_id}/stop w interfejsie API potoków.

Aktualizowanie definicji zmaterializowanego widoku

Aby zaktualizować definicję zmaterializowanego widoku, należy najpierw usunąć, a następnie ponownie utworzyć zmaterializowany widok.

Usuwanie zmaterializowanego widoku

Uwaga

Aby przesłać polecenie w celu usunięcia zmaterializowanego widoku, musisz być właścicielem tego zmaterializowanego widoku.

Aby usunąć zmaterializowany widok, użyj instrukcji DROP VIEW . Aby przesłać instrukcję DROP , możesz użyć edytora SQL w interfejsie użytkownika usługi Azure Databricks, interfejsie wiersza polecenia SQL usługi Databricks lub interfejsie API SQL usługi Databricks. Poniższy przykład pominie mv1 zmaterializowany widok:

DROP MATERIALIZED VIEW mv1;

Opisywanie zmaterializowanego widoku

Aby pobrać kolumny i typy danych dla zmaterializowanego widoku, użyj instrukcji DESCRIBE . Aby pobrać kolumny, typy danych i metadane, takie jak właściciel, lokalizacja, czas tworzenia i stan odświeżania dla zmaterializowanego widoku, użyj polecenia DESCRIBE EXTENDED. Aby przesłać instrukcję DESCRIBE , użyj edytora SQL w interfejsie użytkownika usługi Azure Databricks, interfejsie wiersza polecenia SQL usługi Databricks lub interfejsie API SQL usługi Databricks.

Zmienianie właściciela zmaterializowanego widoku

Jeśli jesteś administratorem magazynu metadanych i administratorem obszaru roboczego, możesz zmienić właściciela zmaterializowanego widoku. Zmaterializowane widoki automatycznie tworzą potoki delta Live Tables i używają ich do przetwarzania zmian. Aby zmienić zmaterializowanego właściciela widoków, wykonaj następujące czynności:

  • Na karcie Pochodzenie dla zmaterializowanego widoku kliknij pozycję Potoki, a następnie kliknij link potoku.
  • Menu Kebab Kliknij menu kebab po prawej stronie nazwy potoku, a następnie kliknij pozycję Uprawnienia. Spowoduje to otwarcie okna dialogowego uprawnień.
  • Kliknij przycisk x po prawej stronie nazwy bieżącego właściciela, aby usunąć bieżącego właściciela.
  • Zacznij wpisywać, aby filtrować listę dostępnych użytkowników. Kliknij użytkownika, który powinien być nowym właścicielem potoku.
  • Kliknij przycisk Zapisz , aby zapisać zmiany i zamknąć okno dialogowe.

Wszystkie zasoby potoku, w tym zmaterializowane widoki zdefiniowane w potoku, są własnością nowego właściciela potoku. Wszystkie przyszłe aktualizacje są uruchamiane przy użyciu tożsamości nowego właściciela.

Kontrola dostępu do zmaterializowanych widoków

Zmaterializowane widoki obsługują zaawansowane mechanizmy kontroli dostępu do obsługi udostępniania danych, jednocześnie unikając uwidaczniania potencjalnie prywatnych danych. Zmaterializowany właściciel widoku może udzielić SELECT uprawnień innym użytkownikom. Użytkownicy z dostępem SELECT do zmaterializowanego widoku nie potrzebują SELECT dostępu do tabel, do których odwołuje się zmaterializowany widok. Ta kontrola dostępu umożliwia udostępnianie danych podczas kontrolowania dostępu do danych bazowych.

Udzielanie uprawnień do zmaterializowanego widoku

Aby udzielić dostępu do zmaterializowanego widoku, użyj instrukcji GRANT :

GRANT
  privilege_type [, privilege_type ] ...
  ON <mv_name> TO principal;

Privilege_type może być:

  • SELECT — użytkownik może SELECT zmaterializować widok.
  • REFRESH — użytkownik może REFRESH zmaterializować widok. Operacje odświeżania są uruchamiane przy użyciu uprawnień właściciela.

Poniższy przykład tworzy zmaterializowany widok i przyznaje użytkownikowi uprawnienia wyboru i odświeżania:

CREATE MATERIALIZED VIEW <mv_name> AS SELECT * FROM <base_table>;
GRANT SELECT ON <mv_name> TO user;
GRANT REFRESH ON <mv_name> TO user;

Odwoływanie uprawnień z zmaterializowanego widoku

Aby odwołać dostęp z zmaterializowanego widoku, użyj instrukcji REVOKE :

REVOKE
  privilege_type [, privilege_type ]
  ON <name> FROM principal;

Gdy SELECT uprawnienia w tabeli bazowej zostaną odwołane od zmaterializowanego właściciela widoku lub dowolnego innego użytkownika, któremu udzielono SELECT uprawnień do zmaterializowanego widoku, albo tabela podstawowa zostanie porzucona, zmaterializowany właściciel widoku lub użytkownik, któremu udzielono dostępu, nadal może wykonać zapytanie dotyczące zmaterializowanego widoku. Jednak występuje następujące zachowanie:

  • Zmaterializowany właściciel widoku lub inni, którzy stracili dostęp do zmaterializowanego widoku, nie może już REFRESH tak zmaterializować widoku, a zmaterializowany widok stanie się nieaktualny.
  • W przypadku automatycznego z harmonogramem kolejna zaplanowana REFRESH awaria lub nie zostanie uruchomiona.

Poniższy przykład odwołuje SELECT uprawnienie z elementu mv1:

REVOKE SELECT ON mv1 FROM user1;

Włączanie zestawienia danych zmian

Zestawienie danych zmian jest wymagane w tabelach podstawowych zmaterializowanych widoków, z wyjątkiem niektórych zaawansowanych przypadków użycia. Aby włączyć zestawienie danych zmian w tabeli podstawowej, ustaw delta.enableChangeDataFeed właściwość tabeli przy użyciu następującej składni:

ALTER TABLE table1 SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

Wyświetlanie historii odświeżania dla zmaterializowanego widoku

Aby wyświetlić stan REFRESH operacji w zmaterializowanym widoku, w tym bieżących i przeszłych odświeżeń, wykonaj zapytanie w dzienniku zdarzeń usługi Delta Live Tables:

SELECT
  *
FROM
  event_log(TABLE(<fully-qualified-table-name>))
WHERE
  event_type = "update_progress"
ORDER BY
  timestamp desc;

Zastąp <fully-qualified-table-name> w pełni kwalifikowaną nazwą zmaterializowanego widoku, w tym wykazem i schematem.

Zobacz Co to jest dziennik zdarzeń tabel delta live?.

Ograniczenia

  • Aby uzyskać informacje o wymaganiach dotyczących zasobów obliczeniowych i obszarów roboczych, zobacz Wymagania.
  • Zmaterializowane widoki nie obsługują kolumn tożsamości ani kluczy zastępczych.
  • Jeśli zmaterializowany widok używa agregacji sumy w NULLkolumnie -able i tylko NULL wartości pozostają w tej kolumnie, zmaterializowane widoki wynikowa wartość agregacji wynosi zero zamiast NULL.
  • Nie można odczytać zestawienia danych zmian z zmaterializowanego widoku.
  • Zapytania dotyczące podróży czasowych nie są suportowane na zmaterializowane widoki.
  • Pliki bazowe obsługujące zmaterializowane widoki mogą zawierać dane z tabel nadrzędnych (w tym możliwe dane osobowe), które nie są wyświetlane w zmaterializowanej definicji widoku. Te dane są automatycznie dodawane do bazowego magazynu w celu obsługi przyrostowego odświeżania zmaterializowanych widoków. Ponieważ podstawowe pliki zmaterializowanego widoku mogą spowodować ujawnienie danych z tabel nadrzędnych, które nie są częścią zmaterializowanego schematu widoku, usługa Databricks zaleca, aby nie udostępniać bazowego magazynu niezaufanym użytkownikom podrzędnym. Załóżmy na przykład, że definicja zmaterializowanego widoku zawiera klauzulę COUNT(DISTINCT field_a) . Mimo że zmaterializowana definicja widoku zawiera tylko klauzulę agregacji COUNT DISTINCT , pliki bazowe będą zawierać listę rzeczywistych field_awartości .