Freigeben über


Konfigurieren materialisierter Ansichten in Databricks SQL

In diesem Artikel wird beschrieben, wie Sie materialisierte Ansichten in Databricks SQL konfigurieren, einschließlich der Zugriffssteuerung für die Ergebnisse. Die meisten Konfigurationen können ausgeführt werden, wenn Sie die materialisierte Ansicht mit der CREATE OR REPLACE MATERIALIZED VIEW Anweisung oder nach der Erstellung mit der ALTER TABLE Anweisung erstellen.

Beschreiben einer materialisierten Ansicht

Verwenden Sie die DESCRIBE-Anweisung, um die Spalten und Datentypen für eine materialisierte Ansicht abzurufen. Verwenden Sie DESCRIBE EXTENDED, um die Spalten, Datentypen und Metadaten wie Eigentümer, Standort, Erstellungszeit und Aktualisierungsstatus für eine materialisierte Ansicht abzurufen. Um eine DESCRIBE Anweisung zu übermitteln, verwenden Sie den SQL-Editor in der Azure Databricks-Benutzeroberfläche, die Databricks SQL CLI oder die Databricks SQL-API.

Erhalten Sie detaillierte Informationen zu materialisierten Sichten mit dem Katalog Explorer

Alternativ können Sie den Katalog-Explorer verwenden, um Details zu einer materialisierten Ansicht anzuzeigen.

  1. Klicken Sie auf das Symbol Katalog in der Randleiste.
  2. Öffnen Sie im Katalog-Explorer-Baum links den Katalog, und wählen Sie das Schema aus, in dem sich die materialisierte Ansicht befindet.
  3. Öffnen Sie das Element Tabelle unter dem ausgewählten Schema, und klicken Sie auf die materialisierte Sicht.

Von hier aus können Sie die Registerkarten unter dem materialisierten Ansichtsnamen verwenden, um Informationen zur materialisierten Ansicht anzuzeigen und zu bearbeiten, einschließlich:

  • Aktualisierungsstatus und Zeitplan
  • Sehen Sie sich die Pipelinedetails an, um den Verlauf der Aktualisierungen sowie detaillierte Protokolle für jede Aktualisierung anzuzeigen. Klicken Sie auf der Registerkarte "Übersicht" auf "Aktualisierungsdetails anzeigen", um die Pipelinedetails anzuzeigen.
  • Das Tabellenschema
  • Beispieldaten (erfordert eine aktive Berechnung)
  • Erlaubnisse
  • Linien, einschließlich Tabellen und Pipelines, von denen diese materialisierte Ansicht abhängt
  • Einblicke in die Nutzung
  • Monitore, die Sie für diese materialisierte Ansicht erstellt haben

Es gibt einige Eigenschaften der Tabelle, die im Katalog-Explorer nicht verfügbar sind. Für diese Eigenschaften oder zum programmgesteuerten Abrufen der Informationen können Sie den BEFEHL "DESCRIBE EXTENDED " verwenden.

Aktualisieren der Definition einer materialisierten Ansicht

Die Abfrage, die die materialisierte Ansicht angibt, ist ihre Definition. Um die Definition der materialisierten Ansicht zu ändern, bearbeiten Sie die Abfrage, oder erstellen Sie eine neue CREATE OR REPLACE-Abfrage MATERIALIZED VIEW mit demselben Ansichtsnamen, und führen Sie sie dann aus. Eine vollständige Aktualisierung wird durchgeführt, um die materialisierte Ansicht zu aktualisieren, und weitere Aktualisierungen verwenden die neue Definition.

Steuern des Zugriffs auf materialisierte Ansichten

Materialisierte Ansichten unterstützen umfassende Zugriffssteuerungen, um die Datenfreigabe zu ermöglichen und dabei potenziell private Daten nicht preiszugeben. Ein Besitzer einer materialisierten Sicht oder ein Benutzer mit der MANAGE-Berechtigung kann anderen Benutzern SELECT-Berechtigungen erteilen. Benutzer mit SELECT Zugriff auf die materialisierte Ansicht benötigen SELECT keinen Zugriff auf die Tabellen, auf die von der materialisierten Ansicht verwiesen wird. Diese Zugriffskontrolle ermöglicht das Teilen von Daten und steuert gleichzeitig den Zugriff auf die zugrunde liegenden Daten.

Sie können auch den Besitzer einer materialisierten Ansicht ändern.

Berechtigungen für eine materialisierte Ansicht gewähren

Verwenden Sie die GRANT Anweisung, um Zugriff auf eine materialisierte Ansicht zu gewähren:

GRANT <privilege_type> ON <mv_name> TO <principal>;

Der Privilegtyp kann eine der folgenden Optionen sein:

  • SELECT – der Benutzer kann SELECT die materialisierte Ansicht anzeigen.
  • REFRESH – der Benutzer kann REFRESH die materialisierte Ansicht anzeigen. Aktualisierungen werden mit den Berechtigungen des Besitzers ausgeführt.

Im folgenden Beispiel wird eine materialisierte Ansicht erstellt und Benutzern Auswahl- und Aktualisierungsberechtigungen gewährt:

CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;

-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;

-- Grand read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;

Widerrufen von Berechtigungen aus einer materialisierten Ansicht

Verwenden Sie die -Anweisung, um den Zugriff auf eine materialisierte Ansicht zu widerrufen.

REVOKE privilege_type ON <mv_name> FROM principal;

Wenn SELECT-Berechtigungen für eine Quelltabelle dem Besitzer der materialisierten Ansicht oder einem anderen Benutzer, die für die materialisierte Ansicht MANAGE- oder SELECT-Berechtigungen erhalten haben, widerrufen werden, oder wenn die Quelltabelle gelöscht wird, können der Besitzer der materialisierten Ansicht oder der Benutzer, dem Zugriff gewährt wurde, die materialisierte Ansicht weiterhin abfragen. Es kommt jedoch zu folgendem Verhalten:

  • Der Besitzer der materialisierten Ansicht oder andere Personen, die den Zugriff auf eine materialisierte Ansicht verloren haben, können nicht mehr auf diese materialisierte Ansicht REFRESH, und die materialisierte Ansicht wird veraltet.
  • Wenn die Automatisierung per Zeitplan erfolgt, schlägt der nächste geplante REFRESH-Vorgang fehl oder wird nicht ausgeführt.

Im folgenden Beispiel wird SELECT die read_only_user-Berechtigung entzogen:

REVOKE SELECT ON mv_name FROM read_only_user;

Ändern des Besitzers einer materialisierten Ansicht

Ein Benutzer mit MANAGE Berechtigungen für eine in Databricks SQL definierte materialisierte Ansicht kann einen neuen Besitzer über den Katalog-Explorer festlegen. Der neue Besitzer kann er selbst sein oder es handelt sich um einen Dienstprinzipal, der die Rolle „Dienstprinzipalbenutzer“ hat.

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog zum Öffnen des Katalog-Explorers.

  2. Wählen Sie die materialisierte Ansicht aus, die Sie aktualisieren möchten.

  3. Suchen Sie in der rechten Randleiste unter "Über diese materialisierte Ansicht" den Besitzer, und klicken Sie auf

    Hinweis

    Wenn Sie eine Meldung erhalten, die Sie auffordert, den Besitzer zu aktualisieren, indem Sie den Ausführen als-Benutzer in den Pipeline-Einstellungen ändern, dann wird die materialisierte Ansicht in Lakeflow Spark Declarative Pipelines und nicht in Databricks SQL definiert. Die Nachricht enthält einen Link zu den Pipeline-Einstellungen, über den Sie den Ausführen als-Benutzer ändern können.

  4. Wählen Sie einen neuen Besitzer für die materialisierte Ansicht aus.

    Besitzer haben automatisch MANAGE- und SELECT-Berechtigungen für materialisierte Ansichten, die sie besitzen. Wenn Sie einen Dienstprinzipal als Besitzer für eine materialisierte Ansicht festlegen, die Sie besitzen, und Sie nicht explizit über die Berechtigungen SELECT oder MANAGE für die materialisierte Ansicht verfügen, wird diese Änderung dazu führen, dass Sie den gesamten Zugriff auf die materialisierte Ansicht verlieren. In diesem Fall werden Sie aufgefordert, diese Berechtigungen explizit bereitzustellen.

    Wählen Sie sowohl „Verwalten erteilen“ als auch „Berechtigungen erteilen“ aus, um diese auf „Speichern“ zu setzen.

  5. Klicken Sie auf "Speichern ", um den Besitzer zu ändern.

Der Besitzer der materialisierten Ansicht wird aktualisiert. Alle zukünftigen Aktualisierungen werden mithilfe der Identität des neuen Besitzers ausgeführt.

Wenn der Besitzer Berechtigungen für Quelltabellen verliert

Wenn Sie den Besitzer ändern und der neue Besitzer keinen Zugriff auf die Quelltabellen hat (oder SELECT Berechtigungen für die zugrunde liegenden Quelltabellen widerrufen werden), können Benutzer die materialisierte Ansicht weiterhin abfragen. Aber:

  • Sie können die materialisierte Ansicht nicht REFRESH anzeigen.
  • Die nächste geplante Aktualisierung der materialisierten Ansicht schlägt fehl.

Wenn der Zugriff auf die Quelldaten verloren geht, werden Aktualisierungen verhindert, die vorhandene materialisierte Ansicht wird jedoch nicht sofort für das Lesen ungültig.

Festlegen des Laufzeitkanals

Materialisierte Ansichten, die mit SQL-Lagerhäusern erstellt werden, werden automatisch mithilfe einer Pipeline aktualisiert. Pipelines verwenden standardmäßig die Runtime im current Kanal. Lesen Sie die Versionshinweise zu Lakeflow Spark Declarative Pipelines und den Releaseupgradeprozess , um mehr über den Veröffentlichungsprozess zu erfahren.

Databricks empfiehlt die Verwendung des current Kanals für Produktionsworkloads. Neue Features werden zuerst im preview Kanal veröffentlicht. Sie können eine Pipeline auf den Vorschaukanal festlegen, um neue Features zu testen, indem Sie als Tabelleneigenschaft angeben preview . Sie können diese Eigenschaft angeben, wenn Sie die Tabelle erstellen oder nachdem die Tabelle mithilfe einer ALTER-Anweisung erstellt wurde.

Das folgende Codebeispiel zeigt, wie Sie den Kanal in einer CREATE-Anweisung auf eine Vorschau festlegen:

CREATE OR REPLACE MATERIALIZED VIEW sales
TBLPROPERTIES ('pipelines.channel' = 'preview')
  AS ...

Verwenden Sie die ALTER TABLE Anweisung, um den Kanal nach der Erstellung zu ändern:

ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');