Condividi tramite


Tabelle in Fabric Data Warehouse

Si applica a: Warehouse in Microsoft Fabric

Questo articolo illustra in dettaglio i concetti chiave per la progettazione di tabelle in Microsoft Fabric.

Nelle tabelle, i dati sono organizzati in modo logico in formato a righe e colonne. Ogni riga rappresenta un record univoco e ogni colonna rappresenta un campo all'interno del record.

  • In Warehouse le tabelle sono oggetti di database che contengono tutti i dati transazionali.

Determinare la categoria della tabella

Uno schema star organizza i dati in tabelle dei fatti e tabelle delle dimensioni. Alcune tabelle vengono usate per i dati di integrazione o di staging prima di spostarli in una tabella dei fatti o delle dimensioni. Quando si progetta una tabella, occorre decidere se i dati appartengono a una tabella fact, delle dimensioni o di integrazione. Questa decisione determina la struttura della tabella.

  • Le tabelle dei fatti contengono dati quantitativi che vengono comunemente generati in un sistema transazionale e quindi caricati nel data warehouse. Un'azienda di vendita al dettaglio, ad esempio, genera quotidianamente transazioni di vendita e successivamente carica i dati in una tabella fact di data warehouse per analizzarli.

  • Le tabelle delle dimensioni contengono dati di attributo che potrebbero cambiare, ma in genere cambiano raramente. Il nome e l'indirizzo di un cliente, ad esempio, vengono archiviati in una tabella delle dimensioni e aggiornati solo quando viene modificato il profilo del cliente. Per ridurre al minimo le dimensioni di una tabella dei fatti di grandi dimensioni, si può evitare di inserire il nome e l'indirizzo del cliente in ogni riga della tabella. La tabella fact e la tabella delle dimensioni possono invece condividere un ID cliente. Una query può creare un join tra le due tabelle per associare il profilo e le transazioni di un cliente.

  • Le tabelle di integrazione offrono una posizione per l'integrazione o la gestione temporanea dei dati. È ad esempio possibile caricare i dati in una tabella di staging, eseguire trasformazioni sui dati in gestione temporanea e quindi inserirli in una tabella di produzione.

Una tabella archivia i dati in OneLake come parte del magazzino. La tabella e i dati sono persistenti indipendentemente dalla presenza o meno di una sessione aperta.

Tabelle nel magazzino

Per visualizzare l'organizzazione delle tabelle, è possibile usare fact, dim o int come prefissi dei nomi delle tabelle. La tabella seguente illustra alcuni nomi di schema e tabella per il data warehouse di esempio WideWorldImportersDW .

Nome tabella sorgente WideWorldImportersDW Tipo di tabella Nome tabella data warehouse:
Città Dimensione wwi.DimCity
Ordinamento Fatto wwi.FactOrder
  • I nomi delle tabelle non possono contenere / o \ o terminare con un ..

Crea una tabella

È possibile creare una tabella come nuova tabella vuota. È inoltre possibile creare e popolare una tabella con i risultati di un'istruzione SELECT. Di seguito sono riportati i comandi T-SQL per la creazione di una tabella.

Istruzione T-SQL Descrizione
CREATE TABLE Crea una tabella vuota definendo tutte le opzioni e le colonne della tabella.
CREATE TABLE AS SELECT Popola una nuova tabella con i risultati di un'istruzione SELECT. Le colonne e i tipi di dati della tabella si basano sui risultati dell'istruzione SELECT. Per importare i dati, questa istruzione può selezionare da una tabella esterna.

Questo esempio crea una tabella con due colonne:

CREATE TABLE MyTable (col1 int, col2 int );  

Nomi schema

Warehouse supporta la creazione di schemi personalizzati. Come in SQL Server gli schemi sono un modo valido per raggruppare le tabelle usate in modo simile. Il codice seguente crea uno schema definito dall'utente denominato wwi.

  • I nomi di schemi fanno distinzione tra maiuscole e minuscole.
  • I nomi di schemi non possono contenere / o \ o terminare con un ..
CREATE SCHEMA wwi;

Tipo di dati

Microsoft Fabric supporta i tipi di dati T-SQL usati più di frequente.

Regole di confronto

Latin1_General_100_BIN2_UTF8 è le regole di confronto predefinite per tabelle e metadati.

È possibile creare un magazzino con le regole di confronto senza distinzione tra maiuscole e minuscole: Latin1_General_100_CI_AS_KS_WS_SC_UTF8. Per altre informazioni, vedere Procedura: Creare un warehouse con regole di confronto senza distinzione tra maiuscole e minuscole (CI).

Le regole di confronto supportate nell'API sono:

  • Latin1_General_100_BIN2_UTF8 (impostazione predefinita)
  • Latin1_General_100_CI_AS_KS_WS_SC_UTF8

Una volta impostate le regole di confronto durante la creazione del database, tutti gli oggetti successivi (tabelle, colonne e così via) erediteranno queste regole di confronto predefinite.

Statistiche

Quando crea il piano per l'esecuzione di una query, Query Optimizer usa le statistiche a livello di colonna. Per migliorare le prestazioni delle query, è importante avere statistiche su singole colonne, in particolare sulle colonne usate nei join delle query. Warehouse supporta la creazione automatica di statistiche.

L'aggiornamento delle statistiche non è automatico. Aggiornare le statistiche dopo l'aggiunta o la modifica di un numero significativo di righe. Aggiornare, ad esempio, le statistiche dopo un caricamento. Per altre informazioni, vedere Statistiche in Fabric Data Warehouse.

Chiave primaria, chiave esterna e chiave univoca

Per Warehouse, i vincoli PRIMARY KEY e UNIQUE sono supportati solo quando vengono usati entrambi NONCLUSTERED e NOT ENFORCED.

FOREIGN KEY è supportato solo quando viene usato NOT ENFORCED.

#temp tabelle

Le tabelle temporanee con ambito sessione (#temp) possono essere create in Fabric Data Warehouse.

Queste tabelle esistono solo all'interno della sessione in cui vengono create e durano per la durata di tale sessione. Non sono visibili ad altri utenti o sessioni e vengono eliminati automaticamente dal sistema una volta terminata la sessione o la tabella #temp viene eliminata. Queste tabelle sono accessibili a tutti gli utenti senza richiedere autorizzazioni specifiche a livello di elemento.

È possibile creare due tipi di tabelle #temp in base a casi d'uso specifici, non distribuiti e distribuiti.

  • La tabella #temp non distribuita (con supporto mdf) è il tipo predefinito. La sintassi per la creazione e l'uso di tabelle non distribuite #temp in Fabric Data Warehouse è simile alle tabelle utente, ma è necessario anteporre il nome della tabella temporanea con #.

     CREATE TABLE #table_name (
       Col1 data_type1,
       Col2 data_type2
     );
    
  • Le tabelle temporanee distribuite (con supporto Parquet) possono essere create con la DISTRIBUTION=ROUND_ROBIN parola chiave.

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

Nello script precedente, data_type1 e data_type2 sono segnaposti per i tipi di dati supportati in Fabric Data Warehouse.

Le tabelle distribuite #temp sono consigliate, in quanto sono allineate alle normali tabelle utente; hanno spazio di archiviazione illimitato, supporto dei tipi di dati e operazioni T-SQL. La sintassi per la manipolazione e la definizione dei dati è identica alle tabelle utente in Fabric Data Warehouse, con il prefisso # aggiunto al nome della tabella.

Allineare i dati di origine con il data warehouse

Le tabelle di Warehouse vengono popolate caricando i dati da un'altra origine dati. Per ottenere un caricamento corretto, il numero e i tipi di dati delle colonne nei dati di origine devono essere allineati alla definizione della tabella nel warehouse.

Se i dati provengono da più archivi dati, è possibile convertire i dati nel warehouse e archiviarlo in una tabella di integrazione. Una volta che i dati si trovano nella tabella di integrazione, è possibile usare la potenza del warehouse per implementare le operazioni di trasformazione. Dopo aver preparati i dati, è possibile inserirli nelle tabelle di produzione.

Limiti

Warehouse supporta molte delle funzionalità per tabelle offerte da altri database, ma non tutte.

  • Le tabelle temporanee globali non sono attualmente supportate.

Di seguito sono elencate alcune delle funzionalità per tabelle che non sono attualmente supportate.

  • Massimo 1024 colonne per tabella
  • Colonne calcolate
  • Viste indicizzate
  • Tabelle partizionate
  • Sequenza
  • Colonne di tipo sparse
  • Chiavi surrogate nelle sequenze numeriche con colonne Identity
  • Sinonimi
  • Trigger
  • Indici univoci
  • Tipi definiti dall'utente
  • Tabelle esterne

Importante

Esistono limitazioni per l'aggiunta di vincoli di tabella o colonne quando si usa il controllo del codice sorgente con Warehouse.