Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Koskee Microsoft Fabricin SQL-tietokantaa✅
Tärkeää
Tämä ominaisuus on esikatseluvaiheessa.
Datan virtualisointi SQL-tietokannassa Fabricissa mahdollistaa ulkoisen datan kyselyt OneLakeen T-SQL:llä.
Datavirtualisointisyntaksin avulla voit suorittaa Transact-SQL (T-SQL) kyselyä tiedostoissa, jotka tallentavat dataa yleisissä OneLake-tiedostomuodoissa. Voit yhdistää tämän datan paikallisesti tallennettuun relaatiotietoon käyttämällä liitoksia. Datavirtualisoinnin avulla voit läpinäkyvästi käyttää ulkoista dataa vain luku -tilassa, säilyttäen sen alkuperäisessä muodossaan ja sijainnissaan.
Syntax
Fabric SQL Database tukee seuraavia datavirtualisointiominaisuuksia:
- LUO TIETOKANNAN LAAJAMITTAINEN TUNNISTE
- LUO ULKOINEN TIETOLÄHDE
- LUO ULKOINEN TIEDOSTOMUOTO
- LUO ULKOINEN TAULUKKO
- OPENROWSET (BULK)
- Metatietofunktiot: filename(), filepath(), sp_describe_first_result_set()
Todentaminen
Fabric Lakehousesin tunnistautuminen käyttää Microsoft Entra ID:n läpikäyntitunnistautumista.
Tiedostojen käyttäminen Fabric OneLakesta vaatii käyttäjän henkilöllisyydeltä luvan sekä Lakehouseen että tiedoston sijaintiin.
Käyttöoikeudet
Käyttäjillä on oltava LUKE-oikeus tiedostoon tai kansioon OneLakessa, mikä toteutetaan Microsoft Entra ID:n läpipääsyn kautta.
Tuetut tiedostotyypit
- Parquet
- CSV
- JSON-tiedostomuotoa tuetaan epäsuorasti määrittämällä CSV-tiedostomuoto, jossa kyselyt palauttavat jokaisen asiakirjan erillisenä rivinä. Voit jäsentää rivejä tarkemmin käyttämällä JSON_VALUE :ää ja OPENJSONia.
Tuetut tietolähteet
Tällä hetkellä vain Fabric Lakehouse on natiivisti tuettu. OneLaken pikanäppäimiä voidaan kuitenkin käyttää laajentamaan erilaisiin ulkoisiin lähteisiin, kuten Azure Blob Storage, Azure Data Lake Gen2, Dataverse, Amazon S3, Amazon S3 Compatible, Google Cloud Storage, julkinen HTTPS ja monet muut.
Lisätietoja Fabric-pikakuvakkeista löytyy kohdasta Yhdistä tietolähteet OneLake-pikakuvakkeilla.
Kuinka löytää järvimajan ABFSS-tiedoston sijainti
Fabric Lakehouse -tietolähteen luomiseksi sinun täytyy antaa työtilan ID, vuokralainen ja järvitalo-ID. Löytääksesi järvimajan ABFSS-tiedoston sijainnin:
- Mene Fabric-portaalille.
- Navigoi Lakehousellesi.
- Siirry haluttuun kansion sijaintiin.
- Valitse
...ja sitten Ominaisuudet. - Kopioi ABFS-polku, joka näyttää suunnilleen tältä:
abfss://<workspace ID>@<Tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/.
Limitations
- CSV-ulkoiset taulut täytyy hakea skeema-määritellyillä nimillä, esimerkiksi
dbo.Customer_CSV. -
BULK INSERTon tällä hetkellä tuettu vain, kun sitä käytetään yhdessä kanssaOPENROWSET (BULK).
Esimerkit
Seuraavat esimerkkiskriptit käyttävät Fabric Lakehouse -nimeä Cold_Lake , joka isännöi Contoso-kauppa- ja asiakastietoja parquet- ja csv-tiedostoina.
V. Kysy parquet-tiedostoa OPENROWSET:llä
Seuraava esimerkki havainnollistaa, miten OPENROWSET käytetään esimerkkidatan hakemiseen Parquet-tiedostosta.
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. Kysy CSV-tiedostoa OPENROWSETilla
Seuraava esimerkki havainnollistaa, miten CSV-tiedostosta OPENROWSET haetaan näytedataa.
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. Luo ulkoinen tietolähde
Seuraava esimerkki näyttää, miten ulkoinen tietolähde luodaan ulkoisten taulukoiden ja komentojen yksinkertaistamiseksi, kuten OPENROWSET:
CREATE EXTERNAL DATA SOURCE [Cold_Lake]
WITH (
LOCATION = 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/');
Kun ulkoinen tietolähde luodaan, voit yksinkertaistaa OPENROWSET, esimerkiksi:
-- 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. Luo ulkoinen taulukko parketille
Seuraava esimerkki osoittaa, miten ulkoinen tiedostomuoto asetetaan ja sitten luodaan ulkoinen taulukko erityisesti parkettidatalle.
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. Luo ulkoinen taulukko CSV:lle
Seuraava esimerkki osoittaa, miten ulkoinen tiedostomuoto asetetaan ja ulkoinen taulukko luodaan erityisesti CSV-datalle.
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. Datan vastaanotto OPENROWSET-menetelmällä
Seuraava esimerkki osoittaa, miten OPENROWSET dataa voidaan siirtää uuteen taulukkoon:
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;
Olemassa olevalle taululle voidaan INSERT INTO käyttää taulukon täyttämiseen :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. Käytä metatietofunktioita – sp_describe_first_result_set
Funktiota sp_describe_first_result_set voidaan käyttää yhdessä OPENROWSET (BULK) ulkoisen tiedostoskeeman arviointiin. Voit tunnistaa skeeman or-lauseille CREATE TABLECREATE EXTERNAL TABLE ja jatkotutkimuksia varten.
Funktio sp_describe_first_result_set käyttää otosta datasta skeeman arvioimiseen. Jos otos ei ole edustava, se voi antaa epätarkkoja tuloksia. Jos skeema on jo tiedossa, määrittele se lauseen WITH kautta.
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';
Lisätietoja löytyy osoitteesta sp_describe_first_result_set().
H. Käytä metatietofunktioita - filename() ja filepath()
Fabric SQL -tietokanta tarjoaa filename()filepath() myös toimintoja kansioiden ja tiedostojen tutkimiseen sekä dynaamiseen kyselyjen luomiseen, joita voidaan käyttää virtuaalisarakkeina yhdessä OPENROWSET-tiedostojen kanssa useiden alikansioiden välillä.
Seuraava esimerkki listaa kaikki parkettitiedostot ja niiden sijainnit.
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;
Lisätietoja löytyy osoitteista filename() ja filepath().