Udostępnij za pośrednictwem


Typy danych w hurtowni danych Fabric

Dotyczy:✅ punkt końcowy analizy SQL i Magazyn danych w usłudze Microsoft Fabric

Tabele w usłudze Microsoft Fabric obsługują najczęściej używane typy danych T-SQL.

Typy danych w magazynie

Magazyn obsługuje podzestaw typów danych T-SQL. Każdy oferowany typ danych jest oparty na typie danych programu SQL Server o tej samej nazwie. Aby uzyskać więcej informacji, zapoznaj się z artykułem referencyjnym dla każdego z nich w poniższej tabeli.

Kategoria Obsługiwane typy danych
Dokładne cyfry
Przybliżone wartości liczbowe
Data i godzina
Ciągi znaków o stałej długości
Ciągi znaków o zmiennej długości
Ciągi binarne

* Precyzja daty/godziny 2 i godziny jest ograniczona do 6 cyfr dokładności ułamków sekund.

** Typ danych uniqueidentifier jest typem danych T-SQL bez pasującego typu danych w Delta Parquet. W związku z tym jest on przechowywany jako typ binarny. Magazyn obsługuje przechowywanie i odczytywanie kolumn uniqueidentifier, ale te wartości nie mogą być odczytywane w punkcie końcowym usługi analitycznej SQL. Odczytywanie wartości uniqueidentifier w lakehouse wyświetla binarną reprezentację oryginalnych wartości. W związku z tym funkcje, takie jak sprzężenia krzyżowe między magazynem i punktem końcowym analizy SQL przy użyciu kolumny uniqueidentifier, nie działają zgodnie z oczekiwaniami.

Obsługa varchar (max) i varbinary (max) jest obecnie dostępna w wersji zapoznawczej dla Magazynu. Kolumny typu ciąg znaków z bazowych plików Delta Lake w usłudze One Lake są reprezentowane jako varchar(8000) zamiast varchar(max) w punkcie końcowym analizy SQL. Limit przechowywania w varchar(max) wynosi obecnie 1 MB w Fabric Data Warehouse.

Aby uzyskać więcej informacji na temat obsługiwanych typów danych, w tym ich dokładności, zobacz typy danych w dokumentacji CREATE TABLE.

Nieobsługiwane typy danych

W przypadku typów danych T-SQL, które nie są obecnie obsługiwane, dostępne są niektóre alternatywy. Upewnij się, że oceniasz użycie tych typów, ponieważ dokładność i zachowanie zapytań różnią się:

Nieobsługiwany typ danych Dostępne alternatywy
pieniądze i małe pieniądze Należy użyć decimal, jednak pamiętaj, że nie może przechowywać jednostki pieniężnej.
Datetime (data i czas) i SmallDatetime (mała data i czas) Użyj datetime2.
datetimeoffset Użyj datetime2, jednak możesz użyć datetimeoffset do konwertowania danych za pomocą CAST funkcji AT TIME ZONE (Transact-SQL). Aby zapoznać się z przykładem, zobacz datetimeoffset.
nchar i nvarchar Proponuję używać odpowiednio char oraz varchar, ponieważ w Parquet nie ma podobnego typu danych unicode. Typy char i varchar w sortowaniu UTF-8 mogą używać więcej miejsca niż nchar i nvarchar do przechowywania danych Unicode. Aby zrozumieć wpływ na środowisko, zobacz Różnice w przechowywaniu między UTF-8 a UTF-16.
tekst i ntekst Użyj varchar.
obraz Użyj varbinary.
tinyint Użyj smallint.
geografia Przechowuj dane geograficzne jako parę kolumn (szerokość geograficzna, długość geograficzna) lub kolumnę zawierającą znaną zawartość binarną i rzutuj ją na wartość geograficzną. Alternatywnie należy użyć typu varchar i przechowywać dane jako dobrze znany tekst.
geometria Przechowuj dane geometryczne jako parę kolumn (szerokość geograficzna, długość geograficzna) lub varbinary kolumnę z dobrze znaną zawartością binarną i przekształć ją na wartość geometryczną. Alternatywnie, użyj typu varchar i zapisz dane jako dobrze znany tekst.
JSON Użyj varchar.
XML Brak odpowiednika.
Typ zdefiniowany przez użytkownika (CLR) Brak odpowiednika.

Nieobsługiwane typy danych mogą być nadal używane w kodzie T-SQL dla zmiennych, parametrów lub danych wyjściowych funkcji i procedur składowanych lub dowolnego użycia w pamięci w sesji. Tworzenie tabel lub widoków, które utrwalają dane na dysku przy użyciu dowolnego z tych typów, nie jest dozwolone.

Aby zapoznać się z przewodnikiem tworzenia tabeli w magazynie, zobacz Tworzenie tabel.

Automatycznie wygenerowane typy danych w punkcie końcowym analizy SQL

Tabele w punkcie końcowym analizy SQL są tworzone automatycznie za każdym razem, gdy tabela zostanie utworzona w skojarzonej usłudze Lakehouse. Typy kolumn w tabelach zakończeń analizy SQL są pochodnymi ze źródłowych typów Delta.

Reguły mapowania oryginalnych typów delty na typy SQL w punkcie końcowym analizy SQL są wyświetlane w poniższej tabeli:

Typ danych Delta Typ danych SQL (mapowany)
long, bigint bigint
LOGICZNY, BOOL bit
INT, INT Int
TINYINT, BYTE, SMALLINT, SHORT smallint
PODWÓJNY spławik
FLOAT, REAL prawdziwy
DATA data
ZNACZNIK CZASU datetime2
CHAR(n) varchar(n) z sortowaniem Latin1_General_100_BIN2_UTF8
STRING, VARCHAR(n) varchar(n) z sortowaniem Latin1_General_100_BIN2_UTF8
STRING, VARCHAR(8000) varchar(8000) z sortowaniem Latin1_General_100_BIN2_UTF8
DWÓJKOWY varbinary(n)
DZIESIĘTNE, DEC, NUMERYCZNY decimal (p, s)

Kolumny, które mają typy, które nie są wymienione w tabeli, nie są reprezentowane jako kolumny tabeli w punkcie końcowym analizy SQL.