Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:✅ SQL-adatbázis a Microsoft Fabricben
Az SQL Database in Fabric adatvirtualizálása lehetővé teszi a OneLake-ben tárolt külső adatok lekérdezését A T-SQL használatával.
Adatvirtualizálási szintaxissal Transact-SQL (T-SQL) lekérdezéseket hajthat végre olyan fájlokon, amelyek a OneLake-ben gyakran használt adatformátumokban tárolják az adatokat. Ezeket az adatokat összekapcsolásokkal kombinálhatja helyileg tárolt relációs adatokkal. Az adatvirtualizálással átláthatóan és írásvédett módban férhet hozzá a külső adatokhoz, miközben azok az eredeti formátumukban és helyükön maradnak.
Szemantika
A Fabric SQL Database a következő adatvirtualizálási képességeket támogatja:
- HOZZON LÉTRE ADATBÁZIS LÉPTÉKŰ HITELESSÉGI ADATOKAT
- HOZZÁ EGY KÜLSŐ ADATFORRÁST
- KÜLSŐ FÁJLFORMÁTUM LÉTREHOZÁSA
- KÜLSŐ TÁBLA LÉTREHOZÁSA
- OPENROWSET (NAGY MENNYISÉGŰ)
- VÁLASSZA A .. Az OPENROWSET lekérdezésből
- Metaadat-függvények: filename(), filepath(), sp_describe_first_result_set()
Authentication
A Fabric Lakehouses hitelesítése Microsoft Entra-azonosító átengedési hitelesítést használ.
A fájlok Fabric OneLake-ből való eléréséhez a felhasználó identitásának engedéllyel kell rendelkeznie a Lakehouse-hoz és a fájlhelyhez is.
Permissions
A felhasználóknak olvasási hozzáféréssel kell rendelkezniük a OneLake fájlokhoz vagy mappákhoz, amit a Microsoft Entra ID átengedése biztosít.
Támogatott fájltípusok
- Parquet
- CSV
- A JSON-fájlformátum közvetetten támogatott a CSV fájlformátum megadásával, ahol a lekérdezések minden dokumentumot külön sorként adnak vissza. A sorokat JSON_VALUE ésOPENJSON használatával elemezheti tovább.
Támogatott adatforrások
Jelenleg csak a Fabric Lakehouse támogatott natív módon. A OneLake-parancsikonok azonban különböző külső forrásokra is kiterjedhetnek, például az Azure Blob Storage-ra, az Azure Data Lake Gen2-re, a Dataverse-ra, az Amazon S3-ra, az Amazon S3-kompatibilisre, a Google Cloud Storage-ra, a nyilvános HTTPS-ra stb.
A Fabric parancsikonjaival kapcsolatos további információkért lásd: Adatforrások egyesítése OneLake parancsikonokkal.
A lakehouse ABFSS-fájljának helyének megkeresése
Fabric Lakehouse adatforrás létrehozásához meg kell adnia a munkaterület azonosítóját, a bérlőt és a Lakehouse ID-t. Egy tóház ABFSS-fájlhelyének megkeresése:
- Nyissa meg a Fabric portált.
- Lépjen a Lakehouse-hoz.
- Lépjen a kívánt mappahelyre.
- Válassza ki
..., majd a Tulajdonságok opciót. - Másold ki az ABFS útvonalat, ami valami ilyesmiben néz ki:
abfss://<workspace ID>@<Tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/.
Korlátozások
- A KÜLSŐ CSV-táblákat séma-minősített nevek használatával kell lekérdezni, például
dbo.Customer_CSV. -
BULK INSERTjelenleg csak akkor támogatott, ha együtt használják a következővelOPENROWSET (BULK): .
Példák
Ezek a példaszkriptek egy Cold_Lake nevű Fabric Lakehouse-t használnak, amely a Contoso üzlet és ügyféladatait tárolja parquet- és csv-fájlokban.
A. Parquet-fájl lekérdezése OPENROWSET használatával
Az alábbi példa bemutatja a mintaadatok parquet-fájlból való lekérésének OPENROWSET használatát.
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. CSV-fájl lekérdezése OPENROWSET használatával
Az alábbi példa bemutatja a mintaadatok CSV-fájlból való lekérésének OPENROWSET használatát.
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. Külső adatforrás létrehozása
Az alábbi példa bemutatja, hogyan hozhat létre külső adatforrást a külső táblák és parancsok egyszerűsítése érdekében, például OPENROWSET:
CREATE EXTERNAL DATA SOURCE [Cold_Lake]
WITH (
LOCATION = 'abfss://<workspace ID>@<tenant>.dfs.fabric.microsoft.com/<lakehouse ID>/Files/');
Egy külső adatforrás létrehozásával egyszerűbbé OPENROWSETteheti például a következőket:
-- 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. Külső tábla létrehozása Parquet számára
Az alábbi minta bemutatja, hogyan állíthat be külső fájlformátumot, majd hogyan hozhat létre egy külső táblát kifejezetten parquet-adatokhoz.
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. Külső tábla létrehozása CSV-hez
Az alábbi minta bemutatja, hogyan állíthat be külső fájlformátumot, és hogyan hozhat létre egy külső táblát kifejezetten CSV-adatokhoz.
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. Adatok betöltése AZ OPENROWSET használatával
Az alábbi minta bemutatja, hogyan lehet adatokat OPENROWSET segítségével betölteni egy új táblába.
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;
Meglévő táblához a INSERT INTO használható a tábla feltöltéséhez a OPENROWSET-ből.
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. Metaadatfüggvények használata – sp_describe_first_result_set
A sp_describe_first_result_set függvény a OPENROWSET (BULK) függvénnyel kombinálva használható a külső fájlséma becsléséhez. Az CREATE TABLE és CREATE EXTERNAL TABLE utasításokhoz, valamint a további adatfeltáráshoz azonosíthatja a sémát.
A sp_describe_first_result_set függvény az adatok mintáját használja a séma becsléséhez. Ha a minta nem reprezentatív, pontatlan eredményeket adhat. Ha a séma már ismert, adja meg a WITH záradékban.
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';
További információért lásd: sp_describe_first_result_set().
H. Metaadatfüggvények használata – fájlnév() és filepath()
A Fabric SQL database emellett lehetővé teszi a feltárást a mappák és a fájlok között, valamint a dinamikus lekérdezések létrehozását, amelyek az OPENROWSET-el kombinálva virtuális oszlopokként is használhatók az adatokhoz több almappában lévő adatfájlokban.
Az alábbi példa az összes parquet-fájlt és annak helyét sorolja fel.
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;
További információ: filename() és filepath().