Teilen über


Tabellen in Fabric Data Warehouse

Gilt für:✅ Warehouse in Microsoft Fabric

In diesem Artikel werden die wichtigsten Konzepte zum Entwerfen von Tabellen in Microsoft Fabric erläutert.

In Tabellen werden Daten logisch in Zeilen und Spalten angeordnet. Jede Zeile stellt einen eindeutigen Datensatz und jede Spalte ein Feld im Datensatz dar.

  • In Warehouse sind Tabellen Datenbankobjekte, die alle Transaktionsdaten enthalten.

Bestimmen der Tabellenkategorie

In einem Sternschema werden Daten in Faktentabellen und Dimensionstabellen organisiert. Einige Tabellen werden für die Integration oder das Staging von Daten verwendet, bevor sie in eine Fakten- oder Dimensionstabelle verschoben werden. Wenn Sie eine Tabelle entwerfen, entscheiden Sie, ob die Tabellendaten in einer Faktentabelle, eine Dimensionstabelle oder eine Integrationstabelle gehören. Diese Entscheidung bestimmt die geeignete Tabellenstruktur.

  • Faktentabellen enthalten quantitative Daten, die häufig in einem transaktionalen System generiert und dann in das Data Warehouse geladen werden. Beispielsweise generiert ein Einzelhandelsunternehmen täglich Verkaufstransaktionen und lädt dann die Daten zur Analyse in eine Faktentabelle in ein Data Warehouse.

  • Dimensionstabellen enthalten Attributdaten, die sich ändern können, es in der Regel jedoch nur selten tun. Beispielsweise werden der Name und die Adresse eines Kunden in einer Dimensionstabelle gespeichert und nur aktualisiert, wenn sich das Profil des Kunden ändert. Damit eine Faktentabelle nicht zu groß wird, kann darauf verzichtet werden, den Namen und die Adresse des Kunden in jede Zeile der Faktentabelle aufzunehmen. Stattdessen kann eine Kunden-ID von der Faktentabelle und der Dimensionstabelle gemeinsam genutzt werden. Die beiden Tabellen können mithilfe einer Abfrage verknüpft werden, um das Profil eines Kunden den Transaktionen zuzuordnen.

  • Integrationstabellen werden für das Integrieren oder Staging von Daten verwendet. Sie können z. B. Daten in eine Stagingtabelle laden, Transformationen für die Daten in der Stagingumgebung durchführen und die Daten dann in eine Produktionstabelle einfügen.

In einer Tabelle werden Daten in OneLake als Teil des Warehouses gespeichert. Die Tabelle und die Daten werden unabhängig davon beibehalten, ob eine Sitzung geöffnet ist.

Tabellen im Lager

Zum Anzeigen der Tabellenorganisation könnten Sie fact, dim und int als Präfixe für die Tabellennamen verwenden. Die folgende Tabelle zeigt einige der Schema- und Tabellennamen für das Data Warehouse-Beispiel WideWorldImportersDW.

Name der Quelltabelle für „WideWorldImportersDW“ Tabellentyp Name der Data Warehouse-Tabelle
Stadt Abmessung wwi.DimCity
Auftrag Fakt wwi.FactOrder
  • Tabellennamen dürfen keinen / oder \ enthalten oder mit einem . enden.

Erstellen einer Tabelle

Für Warehouse können Sie eine Tabelle als neue leere Tabelle erstellen. Alternativ können Sie eine Tabelle erstellen und mit den Ergebnissen einer SELECT-Anweisung füllen. Es folgen die T-SQL-Befehle zum Erstellen einer Tabelle.

T-SQL-Anweisung BESCHREIBUNG
TABELLE ERSTELLEN Erstellt eine leere Tabelle durch die Definition der Tabellenspalten und Optionen.
TABELLE ERSTELLEN ALS SELECT Füllt eine neue Tabelle mit den Ergebnissen einer SELECT-Anweisung. Die Spalten und Datentypen der Tabelle basieren auf den Ergebnissen der SELECT-Anweisung. Mit dieser Anweisung können Daten zum Importieren aus einer externen Tabelle ausgewählt werden.

In diesem Beispiel wird eine Tabelle mit zwei Spalten erstellt:

CREATE TABLE MyTable (col1 int, col2 int );

Schemanamen

Warehouse unterstützt die Erstellung von benutzerdefinierten Schemas. Wie in SQL Server eignen sich Schemas gut zum Gruppieren von Objekten, die auf eine ähnliche Weise verwendet werden. Mit dem folgenden Code wird ein benutzerdefiniertes Schema mit dem Namen wwi erstellt.

  • Bei Schemanamen wird die Groß-/Kleinschreibung beachtet.
  • Schemanamen dürfen keinen / oder \ enthalten oder mit einem . enden.
CREATE SCHEMA wwi;

Datentypen

Microsoft Fabric unterstützt die gängigsten T-SQL-Datentypen.

Sortierung

Fabric-Speicher werden basierend auf den Sortiereinstellungen des Arbeitsbereichs konfiguriert, wobei standardmäßig die Groß- und Kleinschreibung beachtende Sortierung (CS) Latin1_General_100_BIN2_UTF8 verwendet wird. Beim Erstellen eines neuen Lagers wird die Kollation des Arbeitsbereichs verwendet. Weitere Informationen finden Sie unter Data Warehouse-Sortierung.

Unterstützte Lagersortierungen sind:

  • Latin1_General_100_BIN2_UTF8 (Standardwert)
  • Latin1_General_100_CI_AS_KS_WS_SC_UTF8

Sie können ein Lager mit einer nicht standardmäßigen Sortierung mithilfe der REST-API erstellen. Weitere Informationen finden Sie unter Anleitung: Erstellen eines Lagers mit schreibungsunabhängiger (CI)-Sortierung.

Sobald die Sortierung während der Datenbankerstellung festgelegt wurde, erben alle nachfolgenden Objekte (Tabellen, Spalten usw.) diese Standardsortierung. Nachdem ein Lager erstellt wurde, kann die Sortiereinstellung nicht mehr geändert werden.

Statistik

Der Abfrageoptimierer verwendet beim Erstellen des Plans für die Ausführung einer Abfrage Statistiken auf Spaltenebene. Um die Abfrageleistung zu verbessern, ist es wichtig, über Statistiken für einzelne Spalten zu verfügen, insbesondere für in Abfrageverknüpfungen verwendete Spalten. Warehouse unterstützt die automatische Erstellung von Statistiken.

Die Aktualisierung der Statistiken erfolgt nicht automatisch. Führen Sie die Statistikaktualisierung durch, wenn eine erhebliche Anzahl von Zeilen hinzugefügt oder geändert wurde. Aktualisieren Sie Statistiken z. B. nach einem Ladevorgang. Weitere Informationen finden Sie unter Statistics in Fabric Data Warehouse.

Primärschlüssel, Fremdschlüssel und eindeutiger Schlüssel

Für Lager,PRIMARY KEY und UNIQUE-Einschränkungen werden nur unterstützt, wenn NONCLUSTERED und NOT ENFORCED beide verwendet werden.

FOREIGN KEY wird nur unterstützt, wenn NOT ENFORCED verwendet wird.

#temp Tabellen

Temporäre Tabellen mit Sitzungsbereich (#temp) können in Fabric Data Warehouse erstellt werden.

Diese Tabellen existieren nur innerhalb der Sitzung, in der sie erstellt werden, und bestehen für die Dauer dieser Sitzung. Sie sind für andere Benutzer oder Sitzungen nicht sichtbar und werden automatisch vom System gelöscht, sobald die Sitzung endet oder die #temp Tabelle gelöscht wird. Auf diese Tabellen kann für alle Benutzer zugegriffen werden, ohne dass eine bestimmte Berechtigung auf Elementebene erforderlich ist.

Zwei Arten von #temp Tabellen, nicht verteilt und verteilt, können basierend auf bestimmten Anwendungsfällen erstellt werden.

  • Eine nicht verteilte #temp Tabelle (mdf-backed) ist der Standardtyp. Die Syntax zum Erstellen und Verwenden von nicht verteilten #temp Tabellen in Fabric Data Warehouse ähnelt Benutzertabellen, Sie müssen jedoch dem Namen der temporären Tabelle #das Präfix voranstellen.

     CREATE TABLE #table_name (
       Col1 data_type1,
       Col2 data_type2
     );
    
  • Verteilte Temp-Tabellen (Parquet-unterstützt) können mit dem DISTRIBUTION=ROUND_ROBIN Schlüsselwort erstellt werden.

    CREATE TABLE #table_name (
    Col1 data_type1,
    Col2 data_type2
    ) WITH (DISTRIBUTION=ROUND_ROBIN);
    

"Im vorherigen Skript sind data_type1 und data_type2 Platzhalter für unterstützte Datentypen in Fabric Data Warehouse."

Verteilte #temp Tabellen werden empfohlen, da sie an normale Benutzertabellen ausgerichtet sind; sie verfügen über unbegrenzte Speicher-, Datentypunterstützung und T-SQL-Vorgänge. Die Syntax für die Datenbearbeitung und -definition ist identisch mit Benutzertabellen in Fabric Data Warehouse, wobei dem Tabellennamen das Präfix # hinzugefügt wird.

In Fabric Data Warehouse sind temp-Tabellen nicht von Zeitreiseabfragehinweisen betroffen und geben immer die neuesten Daten in der Tabelle zurück.

Ausrichten von Quelldaten am Data Warehouse

Warehouse-Tabellen werden durch das Laden von Daten aus einer anderen Datenquelle gefüllt. Um eine erfolgreiche Auslastung zu erzielen, müssen die Anzahl und datentypen der Spalten in den Quelldaten mit der Tabellendefinition im Lager übereinstimmen.

Wenn Daten aus mehreren Datenspeichern stammen, können Sie die Daten in das Lager portieren und in einer Integrationstabelle speichern. Sobald sich Daten in der Integrationstabelle befinden, können Sie die Leistungsfähigkeit von Warehouse verwenden, um Transformationsvorgänge zu implementieren. Sobald die Daten vorbereitet sind, können Sie sie in Produktionstabellen einfügen.

Begrenzungen

Warehouse unterstützt viele, aber nicht alle Tabellenfunktionen, die in anderen Datenbanken zu finden sind.

  • Globale temporäre Tabellen werden derzeit nicht unterstützt.

Die folgende Liste enthält einige der Tabellenfunktionen, die zurzeit nicht unterstützt werden.

  • Maximal 1.024 Spalten pro Tabelle

  • Berechnete Spalten

  • Indizierte Sichten

  • Partitionierte Tabellen

  • Sequenz

  • Sparsespalten

  • Synonyme

  • Trigger

  • Eindeutige Indizes

  • Benutzerdefinierte Typen

  • Externe Tabellen

  • Warehouse-Objektmetadaten werden von Fabric Data Warehouse zwischengespeichert, um schnellen Zugriff auf Objekte und deren Definitionen zu ermöglichen. Für sehr große Lagerhäuser mit mehr als 750.000 Objekten (z. B. Tabellen, Ansichten, gespeicherte Prozeduren und Funktionen) werden Metadaten nicht mehr vom System zwischengespeichert. Stattdessen fragen Schemavorgänge den Metadatenspeicher direkt ab. Dadurch wird die Systemstabilität gewährleistet und die Cacheverhung in extrem großen Datenbanken verhindert. Schemaaktualisierungsvorgänge können jedoch im Vergleich zu kleineren Lagerhäusern länger dauern, in denen die Metadatenzwischenspeicherung aktiviert ist.

Wichtig

Bei Nutzung der Quellcodeverwaltung mit Warehouse gelten Einschränkungen in Bezug auf das Hinzufügen von Tabellenbegrenzungen oder Spalten.