Tipo di dati in Microsoft Fabric
Si applica a:✅ endpoint di Analisi SQL e Warehouse in Microsoft Fabric
Le tabelle in Microsoft Fabric supportano i tipi di dati T-SQL usati più di frequente.
- Per altre informazioni sulla creazione di tabelle, vedere Tabelle.
- I tipi di dati supportati di Warehouse sono diversi dai tipi di dati supportati di database SQL in Fabric.
- Per la sintassi, vedere CREATE TABLE
Tipi di dati in magazzino
Il magazzino supporta un sottoinsieme di un tipo di dati T-SQL. Ogni tipo di dati offerto è basato sul tipo di dati di SQL Server con lo stesso nome. Per altre informazioni, vedere l'articolo di riferimento per ognuno di essi nella tabella seguente.
Categoria | Tipi di dati supportati |
---|---|
Dati numerici esatti | |
Numerici approssimati | |
Data e ora | |
Stringhe di caratteri a lunghezza fissa | |
Stringhe di caratteri a lunghezza variabile |
|
Stringhe binarie |
* La precisione per datetime2 e time è limitata a 6 cifre di precisione in frazioni di secondi.
** Il tipo di dati uniqueidentifier è un tipo di dati T-SQL senza un tipo di dati corrispondente in Delta Parquet. Di conseguenza, viene archiviato come tipo binario. Magazzino supporta l'archiviazione e la lettura di colonne uniqueidentifier, ma questi valori non possono essere letti nell'endpoint di analisi SQL. La lettura di valori uniqueidentifier nel lakehouse visualizza una rappresentazione binaria dei valori originali. Di conseguenza, le funzionalità come i cross join tra Warehouse e endpoint di analisi SQL che usano una colonna uniqueidentifier non funzionano come previsto.
Il supporto per varchar (max) e varbinary (max) è attualmente in anteprima.
Per altre informazioni sui tipi di dati supportati, incluse le relative precisioni, vedere tipi di dati nelle informazioni di riferimento di CREATE TABLE.
Tipi di dati non supportati
Per i tipi di dati T-SQL attualmente non supportati, sono disponibili alcune alternative. Assicurarsi di valutare l'uso di questi tipi, in quanto il comportamento di precisione e query varia:
Tipo di dati non supportati | Alternative disponibili |
---|---|
money e smallmoney. | Usare decimal, tuttavia si noti che non è possibile memorizzare l'unità monetaria. |
datetime e smalldatetime | Usare datetime2. |
datetimeoffset | Usare datetime2, tuttavia, è possibile usare datetimeoffset per convertire i dati con CAST la funzione AT TIME ZONE (Transact-SQL). Per un esempio, vedere datetimeoffset. |
nchar e nvarchar | Usare rispettivamente char e varchar, perché non esiste un tipo di dati unicode simile in Parquet. I tipi char e varchar in regole di confronto UTF-8 possono usare più spazio di archiviazione rispetto a nchar e nvarchar per archiviare i dati unicode. Per comprendere l'impatto sull'ambiente, vedere Differenze di archiviazione tra UTF-8 e UTF-16. |
text e ntext | Usare varchar. |
Immagine | Usare varbinary. |
tinyint | Usare smallint. |
geography | Nessun equivalente. |
I tipi di dati non supportati possono comunque essere usati nel codice T-SQL per le variabili o qualsiasi uso in memoria nella sessione. La creazione di tabelle o viste che rende persistenti i dati su disco con uno di questi tipi non è consentita.
Per una guida alla creazione di una tabella in magazzino, vedere Creare tabelle.
Tipi di dati generati automaticamente nell'endpoint di analisi SQL
Le tabelle nell'endpoint di analisi SQL vengono create automaticamente ogni volta che viene creata una tabella nel lakehouse associato. I tipi di colonna nelle tabelle degli endpoint di analisi SQL sono derivati dai tipi Delta di origine.
Le regole per il mapping dei tipi Delta originali ai tipi SQL nell'endpoint di analisi SQL sono illustrate nella tabella seguente:
Tipo di dati Delta | Tipo di dati SQL (mappato) |
---|---|
LONG, BIGINT | bigint |
BOOLEAN, BOOL | bit |
INT, INTEGER | int |
TINYINT, BYTE, SMALLINT, SHORT | smallint |
DOUBLE | float |
FLOAT, REAL | real |
DATE | date |
TIMESTAMP | datetime2 |
CHAR(n) | varchar(n) con confronto Latin1_General_100_BIN2_UTF8 |
STRING, VARCHAR(n) | varchar(n) con confronto Latin1_General_100_BIN2_UTF8 |
STRING, VARCHAR(MAX) | varchar(MAX) con Latin1_General_100_BIN2_UTF8 regole di confronto |
BINARIO | varbinary(n) |
DECIMAL, DEC, NUMERIC | decimal(p,s) |
Le colonne con i tipi non elencati nella tabella non sono rappresentate come colonne di tabella nell'endpoint di analisi SQL.