Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na:✅databáza SQL v službe Microsoft Fabric
Dôležitý
Táto funkcia je ukážky.
Virtualizácia dát v SQL databáze v Fabric umožňuje dotazovanie externých dát uložených v OneLake pomocou T-SQL.
Vďaka syntaxi virtualizácie dát môžete vykonávať Transact-SQL (T-SQL) dotazy na súbory, ktoré ukladajú dáta v bežných dátových formátoch v OneLake. Tieto dáta môžete kombinovať s lokálne uloženými relačnými údajmi pomocou spojov. Vďaka virtualizácii dát môžete transparentne pristupovať k externým dátam v režime iba na čítanie, pričom ich zachovávate v pôvodnom formáte a umiestnení.
Syntax
Fabric SQL databáza podporuje nasledujúce možnosti virtualizácie dát:
- VYTVORENIE PRIHLASOVACÍCH ÚDAJOV PODĽA ROZSAHU DATABÁZY
- VYTVORIŤ EXTERNÝ ZDROJ DÁT
- VYTVORENIE EXTERNÉHO FORMÁTU SÚBORU
- VYTVORIŤ EXTERNÚ TABUĽKU
- OPENROWSET (OBJEM)
- Funkcie metadát: názov súboru(), cesta k súboru(), sp_describe_first_result_set()
Overovanie
Autentifikácia do Fabric Lakehouses používa passthrough autentifikáciu Microsoft Entra ID.
Prístup k súborom z Fabric OneLake vyžaduje, aby identita používateľa mala povolenie na Lakehouse aj umiestnenie súboru.
Povolenia
Používatelia musia mať prístup k súboru alebo priečinku READ v OneLake, ktorý je vynútený prostredníctvom Microsoft Entra ID passthrough.
Podporované typy súborov
- Parquet
- CSV
- Formát súboru JSON je nepriamo podporovaný špecifikovaním formátu CSV, kde dotazy vracajú každý dokument ako samostatný riadok. Riadky môžete ďalej analyzovať pomocou JSON_VALUE a OPENJSON.
Podporované zdroje údajov
Iba Fabric Lakehouse je momentálne podporovaný natívne. Avšak skratky OneLake môžu byť použité na rozšírenie rôznych externých zdrojov, ako sú Azure Blob Storage, Azure Data Lake Gen2, Dataverse, Amazon S3, Amazon S3 Compatible, Google Cloud Storage, verejný https a ďalšie.
Pre viac informácií o Fabric Shortcuts pozri Unify data sources with OneLake shortcuts.
Ako nájsť polohu ABFSS súboru pri jazernom dome
Na vytvorenie dátového zdroja Fabric Lakehouse musíte poskytnúť workspace ID, tenant a lakehouse ID. Ak chcete nájsť polohu jazerného domu v súbore ABFSS:
- Choď do portálu Textil.
- Navigujte sa k svojmu jazernému domu.
- Prejdite na požadované miesto priečinka.
- Vyberte a
...potom Vlastnosti. - Skopírujte cestu ABFS, ktorá vyzerá asi takto:
abfss://<workspace ID>@<Tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/.
Limitations
- Externé tabuľky CSV musia byť dotazované pomocou názvov kvalifikovaných pre schému, napríklad
dbo.Customer_CSV. -
BULK INSERTje momentálne podporovaný len vtedy, keď sa používa v kombinácii s .OPENROWSET (BULK)
Príklady
Nasledujúce ukážkové skripty používajú Fabric Lakehouse s názvom Cold_Lake Fabric Lakehouse, ktorý hostí údaje o obchode a zákazníkovi Contoso v parquet a csv súboroch.
Odpoveď: Dotaz na súbor parketu pomocou OPENROWSET
Nasledujúci príklad demonštruje použitie na OPENROWSET získanie vzorkových dát zo súboru Parquet.
SELECT TOP 100 *
FROM OPENROWSET(
BULK 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/Contoso/customer.parquet',
FORMAT = 'parquet'
) AS customer_dataset;
B. Dotaz na CSV súbor pomocou OPENROWSET
Nasledujúci príklad demonštruje použitie na OPENROWSET získanie vzorkových dát z CSV súboru.
SELECT *
FROM OPENROWSET(
BULK 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/Contoso/customer.csv',
FORMAT = 'CSV',
FIRST_ROW = 2
) WITH (
CustomerKey INT,
GeoAreaKey INT,
StartDT DATETIME2,
EndDT DATETIME2,
Continent NVARCHAR(50),
Gender NVARCHAR(10),
Title NVARCHAR(10),
GivenName NVARCHAR(100),
MiddleInitial VARCHAR(2),
Surname NVARCHAR(100),
StreetAddress NVARCHAR(200),
City NVARCHAR(100),
State NVARCHAR(100),
StateFull NVARCHAR(100),
ZipCode NVARCHAR(20),
Country_Region NCHAR(2),
Country_Region_Full NVARCHAR(100),
Birthday DATETIME2,
Age INT,
Occupation NVARCHAR(100),
Company NVARCHAR(100),
Vehicle NVARCHAR(100),
Latitude DECIMAL(10,6),
Longitude DECIMAL(10,6)
) AS customer_dataset;
C. Vytvoriť externý zdroj dát
Nasledujúci príklad ukazuje, ako vytvoriť externý dátový zdroj na zjednodušenie externých tabuliek a príkazov ako OPENROWSET:
CREATE EXTERNAL DATA SOURCE [Cold_Lake]
WITH (
LOCATION = 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/');
S vytvoreným externým zdrojom dát môžete zjednodušiť OPENROWSET, napríklad:
-- USING DATA SOURCE WITH OPENROWSET
SELECT TOP 100 * FROM OPENROWSET
(BULK '/customer.parquet'
, FORMAT = 'parquet'
, DATA_SOURCE = 'Cold_Lake' )
AS Customer_dataset;
-- USING DATA SOURCE WITH OPENROWSET
SELECT TOP 100 *
FROM OPENROWSET(
BULK '/customer.csv',
FORMAT = 'CSV',
DATA_SOURCE = 'Cold_Lake',
FIRST_ROW = 2
) WITH (
CustomerKey INT,
GeoAreaKey INT,
StartDT DATETIME2,
EndDT DATETIME2,
Continent NVARCHAR(50),
Gender NVARCHAR(10),
Title NVARCHAR(10),
GivenName NVARCHAR(100),
MiddleInitial VARCHAR(2),
Surname NVARCHAR(100),
StreetAddress NVARCHAR(200),
City NVARCHAR(100),
State NVARCHAR(100),
StateFull NVARCHAR(100),
ZipCode NVARCHAR(20),
Country_Region NCHAR(2),
Country_Region_Full NVARCHAR(100),
Birthday DATETIME2,
Age INT,
Occupation NVARCHAR(100),
Company NVARCHAR(100),
Vehicle NVARCHAR(100),
Latitude DECIMAL(10,6),
Longitude DECIMAL(10,6)
) AS customer_dataset;
D. Vytvorte externý stôl pre parket
Nasledujúca ukážka ukazuje, ako nastaviť externý formát súboru a potom vytvoriť externú tabuľku špeciálne pre parketové dáta.
CREATE EXTERNAL FILE FORMAT Parquetff WITH (FORMAT_TYPE=PARQUET);
CREATE EXTERNAL TABLE [ext_product](
[ProductKey] [int] NULL,
[ProductCode] [nvarchar](255) NULL,
[ProductName] [nvarchar](500) NULL,
[Manufacturer] [nvarchar](50) NULL,
[Brand] [nvarchar](50) NULL,
[Color] [nvarchar](20) NULL,
[WeightUnit] [nvarchar](20) NULL,
[Weight] DECIMAL(20, 5) NULL,
[Cost] DECIMAL(20, 5) NULL,
[Price] DECIMAL(20, 5) NULL,
[CategoryKey] [int] NULL,
[CategoryName] [nvarchar](30) NULL,
[SubCategoryKey] [int] NULL,
[SubCategoryName] [nvarchar](50) NULL)
WITH
(LOCATION = '/product.parquet'
,DATA_SOURCE = [Cold_Lake]
,FILE_FORMAT = Parquetff);
SELECT * FROM [dbo].[ext_product]
E. Vytvoriť externú tabuľku pre CSV
Nasledujúca ukážka ukazuje, ako nastaviť externý formát súboru a vytvoriť externú tabuľku špeciálne pre CSV dáta.
CREATE EXTERNAL FILE FORMAT [CSVFileFormat]
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
FIRST_ROW = 2
)
);
CREATE EXTERNAL TABLE ext_customer_csv (
CustomerKey INT NOT NULL,
GeoAreaKey INT NOT NULL,
StartDT DATETIME2 NOT NULL,
EndDT DATETIME2 NOT NULL,
Continent VARCHAR(50) NOT NULL,
Gender VARCHAR(10) NOT NULL,
Title VARCHAR(10) NOT NULL,
GivenName VARCHAR(100) NOT NULL,
MiddleInitial VARCHAR(2) NOT NULL,
Surname VARCHAR(100) NOT NULL,
StreetAddress VARCHAR(200) NOT NULL,
City VARCHAR(100) NOT NULL,
State VARCHAR(100) NOT NULL,
StateFull VARCHAR(100) NOT NULL,
ZipCode VARCHAR(20) NOT NULL,
Country_Region CHAR(2) NOT NULL
)
WITH (
LOCATION = '/customer.csv'
, DATA_SOURCE = Cold_Lake
, FILE_FORMAT = CSVFileFormat
);
SELECT * FROM [dbo].[ext_customer_csv];
F. Ingest dát pomocou OPENROWSET
Nasledujúca ukážka ukazuje, ako OPENROWSET možno použiť na spracovanie dát do novej tabuľky:
SELECT *
INTO tb_store
FROM OPENROWSET
(BULK 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/Contoso/store.parquet'
, FORMAT = 'parquet' )
AS STORE;
Pre existujúcu tabuľku môže byť použitá na INSERT INTO vyplnenie tabuľky z OPENROWSET:
INSERT INTO tb_store
SELECT TOP 100 * FROM OPENROWSET
(BULK ' abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/contoso/store.parquet'
, FORMAT = 'parquet' )
AS STORE;
G. Používajte funkcie metadát - sp_describe_first_result_set
Funkciu sp_describe_first_result_set možno použiť v kombinácii s na OPENROWSET (BULK) odhad schémy externého súboru. Môžete identifikovať schému pre vyjadrenia CREATE TABLE or CREATE EXTERNAL TABLE a pre ďalšie skúmanie dát.
Funkcia sp_describe_first_result_set využíva vzorku dát na odhad schémy. Ak vzorka nie je reprezentatívna, môže priniesť nepresné výsledky. Ak je schéma už známa, špecifikujte ju pomocou WITH klauzuly.
EXEC sp_describe_first_result_set N'
SELECT * FROM OPENROWSET(
BULK ''abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/Contoso/store.parquet'',
FORMAT = ''parquet''
) AS DATA';
Pre viac informácií pozri sp_describe_first_result_set().
H. Použite funkcie metadát - filename() a filepath()
Fabric SQL databáza tiež sprístupňuje a filename() funguje filepath() na prieskum priečinkov a súborov, ako aj na dynamické vytváranie dotazov, ktoré je možné použiť aj pre virtuálne stĺpce v kombinácii s OPENROWSET pre dátové súbory naprieč viacerými podpriečinkami.
Nasledujúci príklad uvádza všetky parketové súbory a ich umiestnenie.
SELECT
r.filename() as file_name
, r.filepath() as full_path
FROM OPENROWSET
(BULK 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/*/*.parquet',
FORMAT = 'parquet'
) AS r
GROUP BY r.filename(), r.filepath()
ORDER BY file_name;
Pre viac informácií pozri filename() a filepath().