Teilen über


Was ist eine Sicht?

Eine Ansicht ist ein schreibgeschütztes Objekt, das das Ergebnis einer Abfrage über eine oder mehrere Tabellen und Ansichten in einem Unity Catalog-Metastore ist. Sie können eine Ansicht aus Tabellen und aus anderen Ansichten in mehreren Schemata und Katalogen erstellen.

In diesem Artikel werden die Ansichten beschrieben, die Sie in Azure Databricks erstellen können, und bietet eine Erläuterung der Berechtigungen und der Computeressourcen, die zum Abfragen erforderlich sind.

Informationen zum Erstellen von Ansichten finden Sie unter:

Ansichten im Unity-Katalog

Im Unity-Katalog befinden sich Ansichten auf der dritten Ebene des dreistufigen Namespaces (catalog.schema.view):

Unity Catalog-Objektmodelldiagramm, das sich auf die Ansicht konzentriert

In einer Ansicht wird der Text einer Abfrage in der Regel anhand einer oder mehrerer Datenquellen oder Tabellen im Metaspeicher gespeichert. In Azure Databricks entspricht eine Ansicht einem Spark DataFrame, der als Objekt in einem Schema beibehalten wird. Im Gegensatz zu DataFrames können Sie Ansichten von überall in Azure Databricks abfragen, vorausgesetzt, Sie verfügen über die Berechtigung dazu. Das Erstellen einer Ansicht verarbeitet oder schreibt keine Daten. Nur der Abfragetext wird im Metaspeicher im zugehörigen Schema registriert.

Hinweis

Ansichten weisen möglicherweise unterschiedliche Ausführungssemantik auf, wenn sie von anderen Datenquellen als Delta-Tabellen gesichert werden. Databricks empfiehlt, Ansichten immer durch Verweisen auf Datenquellen mithilfe eines Tabellen- oder Ansichtsnamens zu definieren. Das Definieren von Ansichten für Datasets durch Angeben eines Pfads oder URI kann zu verwirrenden Datengovernanceanforderungen führen.

Materialisierte Sichten

Materialisierte Ansichten berechnen und aktualisieren die von der definierenden Abfrage zurückgegebenen Ergebnisse inkrementell.

Sie können materialisierte Ansichten im Unity-Katalog mithilfe von Databricks SQL registrieren oder als Teil einer Delta Live Tables-Pipeline definieren. Siehe Verwenden materialisierter Ansichten in Databricks SQL und Was ist Delta Live Tables?.

Temporäre Ansichten

Eine temporäre Ansicht hat eingeschränkten Bereich und Persistenz und ist nicht in einem Schema oder Katalog registriert. Die Lebensdauer einer temporären Ansicht unterscheidet sich je nach der verwendeten Umgebung:

  • In Notebooks und Aufträgen werden temporäre Ansichten auf der Notebook- oder Skriptebene festgelegt. Sie können nicht außerhalb des Notizbuchs verwiesen werden, in dem sie deklariert sind, und nicht mehr vorhanden, wenn das Notizbuch vom Cluster getrennt wird.
  • In Databricks SQL werden temporäre Ansichten auf der Abfrageebene festgelegt. Die temporäre Ansicht kann von mehreren Anweisungen innerhalb derselben Abfrage verwendet werden, in anderen Abfragen kann jedoch nicht darauf verwiesen werden, auch nicht auf demselben Dashboard.

Dynamische Ansichten

Dynamische Ansichten können verwendet werden, um zusätzlich zur Datenmaskierung eine Zugriffskontrolle auf Zeilen- und Spaltenebene bereitzustellen. Weitere Informationen finden Sie unter Erstellen einer dynamischen Ansicht.

Ansichten im Hive-Metaspeicher (Legacy)

Sie können Legacy-Hive-Ansichten für jede Datenquelle definieren und im älteren Hive-Metaspeicher registrieren. Databricks empfiehlt, alle legacy-Hive-Ansichten in den Unity-Katalog zu migrieren. Siehe Ansichten im Hive-Metaspeicher.

Globale Hive-Temp-Ansicht (Legacy)

Globale Temp-Ansichten sind ein älteres Azure Databricks-Feature, mit dem Sie eine temporäre Ansicht registrieren können, die für alle Workloads verfügbar ist, die für eine Computeressource ausgeführt werden. Globale Temp-Ansichten sind ein Legacy-Holdover von Hive und HDFS. Databricks empfiehlt, globale temp-Ansichten zu verwenden.

Anforderungen für das Abfragen von Ansichten

Um Ansichten zu lesen, die im Unity-Katalog registriert sind, hängen die erforderlichen Berechtigungen vom Computetyp, der Databricks-Runtime-Version und dem Zugriffsmodus ab.

Hinweis

Für alle Ansichten werden Berechtigungsprüfungen sowohl für die Ansicht selbst als auch für die zugrunde liegenden Tabellen und Ansichten ausgeführt, auf denen die Ansicht basiert. Der Benutzer, dessen Berechtigungen auf zugrunde liegende Tabellen und Ansichten überprüft werden, hängt von der Berechnung ab. Unity Catalog überprüft in den folgenden Fällen die Berechtigungen von Ansichtsbesitzer*innen für die zugrundeliegenden Daten:

  • SQL-Lagerhäuser.
  • Gemeinsam genutzte Computeressourcen.
  • Computeressourcen für Einzelbenutzer*innen auf Databricks Runtime 15.4 LTS und höher mit aktivierter feingranularer Zugriffssteuerung.

Für Einzelbenutzerberechnungen auf Databricks Runtime Version 15.3 und darunter überprüft Unity Catalog sowohl die Berechtigungen des Ansichtsinhabers als auch die Berechtigungen des Ansichtsnutzers für die zugrunde liegenden Daten.

Dieses Verhalten spiegelt sich in den unten aufgeführten Anforderungen wider. In beiden Fällen muss der Ansichtsbesitzer Berechtigungen für die zugrunde liegenden Daten verwalten, damit Benutzer auf die Ansicht zugreifen können.

  • Für alle Computeressourcen müssen Sie über SELECT für die Ansicht selbst, USE CATALOG im übergeordneten Katalog und USE SCHEMA im übergeordneten Schema verfügen. Dies gilt für alle Computetypen, die Unity Catalog unterstützen, einschließlich SQL-Warehouses, Cluster im Modus für gemeinsam genutzten Zugriff und Cluster im Modus für Einzelbenutzerzugriff auf Databricks Runtime 15.4 und höher.
  • Bei Cluster auf Databricks Runtime 15.3 und darunter, die den Modus für Einzelbenutzerzugriff verwenden, müssen Sie auch über SELECT in allen Tabellen und Ansichten verfügen, auf welche die Ansicht verweist, zusätzlich zu USE CATALOG in ihren übergeordneten Katalogen und USE SCHEMA in ihren übergeordneten Schemas.

Hinweis

Wenn Sie einen Einzelbenutzercluster für Databricks Runtime 15.4 LTS und höher verwenden und vermeiden möchten, SELECT für die zugrundeliegenden Tabellen und Ansichten zu verwenden, stellen Sie sicher, dass Ihr Arbeitsbereich für serverloses Computing aktiviert ist.

Serverless Computing übernimmt die Datenfilterung, was den Zugriff auf eine Ansicht ermöglicht, ohne dass Berechtigungen für die zugrunde liegenden Tabellen und Ansichten erforderlich sind. Beachten Sie, dass Ihnen Ressourcen für serverloses Computing in Rechnung gestellt wird, wenn Sie Einzelbenutzer-Compute zur Abfrage von Ansichten verwenden. Weitere Informationen finden Sie unter Präzise Zugriffssteuerung für die Einzelbenutzer-Compute.