Freigeben über


Was sind Lakehouse-Schemata?

Lakehouse unterstützt die Erstellung von benutzerdefinierten Schemata. Schemata ermöglichen es Ihnen, Ihre Tabellen zu gruppieren, um Daten besser zu finden, den Zugriff zu kontrollieren und vieles mehr.

Erstellen eines neuen Lakehouse-Schemas

Um die Schemaunterstützung für Ihr Lakehouse zu aktivieren, lassen Sie das Kontrollkästchen neben Lakehouse-Schemas aktiviert, wenn Sie es erstellen.

Screenshot des neuen Lakehouse-Dialogfelds.

Hinweis

Wenn Sie lieber ein Seehaus ohne Schemaunterstützung erstellen möchten, können Sie das Kontrollkästchen deaktivieren.

Sobald Sie das Lakehouse erstellt haben, finden Sie unter Tabellen ein Standardschema namens dbo. Dieses Schema ist immer vorhanden und kann nicht geändert oder entfernt werden. Um ein neues Schema zu erstellen, fahren Sie mit dem Mauszeiger über Tabellen, wählen Sie ... und wählen Sie Neues Schema. Geben Sie den Namen Ihres Schemas ein und wählen Sie Erstellen. Ihr Schema wird unter "Tabellen" in alphabetischer Reihenfolge aufgeführt.

Screenshot des Dialogfelds

Speichern von Tabellen in Lakehouse-Schemata

Um eine Tabelle in einem Schema zu speichern, benötigen einen Schemanamen. Andernfalls wird das Standard-dbo-Schema verwendet.

df.write.mode("Overwrite").saveAsTable("contoso.sales")

Sie können den Lakehouse Explorer verwenden, um Ihre Tabellen anzuordnen und Tabellennamen per Drag & Drop in verschiedene Schemata zu ziehen.

Animation des Verschiebens von Tabellen zwischen Schemas.

Achtung

Wenn Sie die Tabelle ändern, müssen Sie auch verwandte Elemente wie Notizbuchcode oder Datenflüsse aktualisieren, um sicherzustellen, dass sie am richtigen Schema ausgerichtet sind.

Verwenden mehrerer Tabellen mit Schemaverknüpfung

Um mehrere Delta-Tabellen aus einem anderen Fabric Lakehouse oder einem externen Speicher zu referenzieren, verwenden Sie eine Schema-Verknüpfung, die alle Tabellen unter dem gewählten Schema oder Ordner anzeigt. Alle Änderungen an den Tabellen im Quellverzeichnis erscheinen auch im Schema. Um eine Schema-Verknüpfung zu erstellen, bewegen Sie den Mauszeiger über Tabellen, wählen Sie ... und wählen Sie Neue Schema-Verknüpfung. Wählen Sie dann ein Schema auf einem anderen Lakehouse oder einen Ordner mit Delta-Tabellen auf Ihrem externen Speicher wie Azure Data Lake Storage (ADLS) Gen2. Dadurch wird ein neues Schema mit den referenzierten Tabellen erstellt.

Screenshot der neuen Lakehouse-Schemaverknüpfung.

Zugreifen auf Lakehouse-Schemata für Power BI-Berichte

Um Ihr semantisches Modell zu erstellen, wählen Sie einfach die Tabellen aus, die Sie verwenden möchten. Tabellen können in verschiedenen Schemata vorliegen. Wenn Tabellen aus verschiedenen Schemata den gleichen Namen haben, sehen Sie in der Modellansicht Zahlen neben den Tabellennamen.

Lakehouse-Schemata in Notebook

Wenn Sie ein schemafähiges Lakehouse im Notebook-Objekt-Explorer betrachten, werden Tabellen in Schemata angezeigt. Sie können die Tabelle in eine Codezelle ziehen und ablegen und einen Codeausschnitt abrufen, der sich auf das Schema bezieht, in dem sich die Tabelle befindet. Verwenden Sie diesen Namespace, um auf Tabellen in Ihrem Code zu verweisen: „workspace.lakehouse.schema.table“. Wenn Sie eines der Elemente auslassen, verwendet der Executor die Standardeinstellung. Wenn Sie zum Beispiel nur den Tabellennamen angeben, wird das Standardschema (dbo) aus dem Standard-Lakehouse für das Notebook verwendet.

Wichtig

Wenn Sie Schemas in Ihrem Code verwenden möchten, stellen Sie sicher, dass das Standardseehaus für das Notizbuch schemafähig ist oder kein Standardseehaus ausgewählt ist.

Arbeitsbereichübergreifende Spark SQL-Abfragen

Verwenden Sie den Namespace "workspace.lakehouse.schema.table", um auf Tabellen in Ihrem Code zu verweisen. Auf diese Weise können Sie Tabellen aus verschiedenen Arbeitsbereichen verknüpfen, wenn der Benutzer, der den Code ausführt, über die Berechtigung zum Zugreifen auf die Tabellen verfügt.

SELECT * 
    FROM operations.hr.hrm.employees as employees 
    INNER JOIN global.corporate.company.departments as departments
    ON employees.deptno = departments.deptno;

Verweisen auf nicht schemafreie Seehäuser

Wenn Sie ein schemafähiges Lakehouse oder kein Lakehouse als Standard in Ihrem Notizbuch festlegen, verwendet Spark-Code schemafähige Verweise für Tabellen. Sie können jedoch weiterhin auf Lakehouses ohne aktivierte Schemas innerhalb desselben Codes zugreifen, indem Sie auf sie als "lakehouse.table" verweisen.

Darüber hinaus ist es möglich, Tabellen aus verschiedenen Arten von Seehäusern zu verknüpfen.

SELECT * 
    FROM workspace.schemalh.schema.table as schematable 
    INNER JOIN workspace.nonschemalh.table as nonschematable
    ON schematable.id = nonschematable.id;

Um den Übergang und die Umstrukturierung vorhandener Codes zu Lakehouses mit Schema-Unterstützung zu fördern, wird die vierteilige Namenskonvention für Lakehouses ohne Schemata unterstützt. Sie können auf Tabellen als "workspace.lakehouse.dbo.table" verweisen, wobei "dbo" als Schemaname dient, selbst wenn es in einem Lakehouse, das keine Schema-Unterstützung bietet, noch nicht existiert. Mit diesem Ansatz können Sie Ihren Code ohne Ausfallzeiten aktualisieren, bevor Sie die Schemaunterstützung in Ihren Seehäusern aktivieren.

API für Lakehouse-Schemas

Um ein Lakehouse mit Schemas zu erstellen, verwenden Sie Create Lakehouse - REST-API und setzen Sie "enableSchemas": true in der creationPayload-Anfrage. Zum Auflisten von Tabellen, Schemas oder Abrufen von Tabellendetails verwenden Sie OneLake-Tabellen-APIs für Delta.

Aktivieren von Schemas für vorhandene Seehäuser

Wir unterstützen weiterhin schemalose Data Lakehouses und arbeiten an einer vollständigen Funktionsgleichheit zwischen beiden Typen. Die vollständige Interoperabilität in Spark wird ebenfalls unterstützt und ermöglicht das Abfragen und Verknüpfen verschiedener Arten von Lakehouses. In Kürze führen wir Tools ein, die es Kunden ermöglichen, den Übergang ihrer Lakehouses von nicht-schemafähigen zu schemafähigen Versionen durchzuführen, sodass Sie von erweiterten Vorteilen profitieren können, ohne Daten verschieben oder Unterbrechungen in Kauf nehmen zu müssen.

Aktuelle Einschränkungen

Es gibt noch einige Einschränkungen bei schemafähigen Lakehouses in Spark, die in den kommenden Monaten eingeführt werden.

Nicht unterstützte Features/Funktionalität Zwischenlösung
Spark-Ansichten Verwenden Sie Materizlized Lake Views.
Gemeinsames Lakehouse Erstellen Sie Verknüpfungen in einem Seehaus mit der Arbeitsbereichsrolle zu gemeinsam genutzten Lakehouse-Tabellen und greifen Sie über die Tastenkombinationen darauf zu.
Externe ADLS-Tabellen Verwenden Sie OneLake-Tastenkombinationen.
Ausgehender Zugriffsschutz Für Szenarien, die den Zugriff auf Lakehouses aus verschiedenen Arbeitsbereichen mit Spark SQL Statements umfassen, verwenden Sie bitte schemafreie Lakehouses.