Megosztás a következőn keresztül:


Hozzáférés külső tárolóhoz SQL-készlet használatával az Azure Synapse Analyticsben

Ez a cikk azt ismerteti, hogy a felhasználók hogyan olvashatnak adatokat az Azure Storage-ban kiszolgáló nélküli SQL-készletben tárolt fájlokból. A felhasználók a következő lehetőségeket kínálják a tárterület eléréséhez:

  • OPENROW Standard kiadás T függvény, amely alkalmi lekérdezéseket tesz lehetővé az Azure Storage-fájlokon.
  • Külső tábla , amely egy előre definiált adatstruktúra, amely külső fájlokra épül.

A felhasználó különböző hitelesítési módszereket használhat, például a Microsoft Entra átengedő hitelesítését (a Microsoft Entra-tagok alapértelmezett hitelesítése) és az SAS-hitelesítést (az SQL-tagok esetében az alapértelmezett).

Fájlok lekérdezése OPENROW használatával Standard kiadás T

Az OPENROW Standard kiadás T lehetővé teszi, hogy a felhasználók külső fájlokat kérdezhessenek le az Azure Storage-on, ha hozzáféréssel rendelkeznek a tárhoz. A kiszolgáló nélküli SQL-készlethez csatlakozó felhasználóknak az alábbi lekérdezéssel kell elolvasni a fájlok tartalmát az Azure Storage-ban:

SELECT * FROM
 OPENROWSET(BULK 'https://<storage_account>.dfs.core.windows.net/<container>/<path>/*.parquet', format= 'parquet') as rows

A felhasználó a következő hozzáférési szabályokkal férhet hozzá a tárolóhoz:

  • Microsoft Entra-felhasználó – OPENROWSET a hívó Microsoft Entra-identitásával fog hozzáférni az Azure Storage-hoz, vagy névtelen hozzáféréssel fér hozzá a tárolóhoz.
  • SQL-felhasználó – OPENROWSET névtelen hozzáféréssel fér hozzá a tárolóhoz, vagy a munkaterület SAS-jogkivonatával vagy felügyelt identitásával megszemélyesíthető.

Az SQL-tagok az OPENROW Standard kiadás T használatával közvetlenül lekérdezhetik a munkaterület SAS-jogkivonatokkal vagy felügyelt identitással védett fájljait. Ha egy SQL-felhasználó végrehajtja ezt a függvényt, az engedéllyel rendelkező ALTER ANY CREDENTIAL power usernek létre kell hoznia egy kiszolgáló hatókörű hitelesítő adatot, amely megfelel a függvény URL-címének (a tároló és a tároló használatával), és hivatkozási engedélyt ad ehhez a hitelesítő adathoz az OPENROW Standard kiadás T függvény hívójának:

EXECUTE AS somepoweruser

CREATE CREDENTIAL [https://<storage_account>.dfs.core.windows.net/<container>]
 WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sas token';

GRANT REFERENCES ON CREDENTIAL::[https://<storage_account>.dfs.core.windows.net/<container>] TO sqluser

Ha nincs az URL-címnek megfelelő kiszolgálószintű HITELESÍTŐ ADAT, vagy ha az SQL-felhasználó nem rendelkezik hivatkozási engedéllyel ehhez a hitelesítő adathoz, a rendszer visszaadja a hibát. Az SQL-tagok nem tudnak megszemélyesíteni valamilyen Microsoft Entra-identitást.

Megjegyzés:

Az OPENROW Standard kiadás T ezen verziója az alapértelmezett hitelesítést használó gyors és egyszerű adatfeltárásra lett tervezve. A megszemélyesítés vagy a felügyelt identitás használatához használja az OPENROW Standard kiadás T-t a következő szakaszban ismertetett DATA_SOURCE.

Adatforrások lekérdezése az OPENROWSET használatával

AZ OPENROW Standard kiadás T lehetővé teszi, hogy a felhasználó lekérdezhesse a külső adatforráson elhelyezett fájlokat:

SELECT * FROM
 OPENROWSET(BULK 'file/path/*.parquet',
 DATA_SOURCE = MyAzureInvoices,
 FORMAT= 'parquet') as rows

A lekérdezést végrehajtó felhasználónak hozzá kell tudnia férni a fájlokhoz. A felhasználókat SAS-jogkivonattal vagy a munkaterület felügyelt identitásával kell megszemélyesíteni, ha nem tudnak közvetlenül hozzáférni a fájlokhoz a Microsoft Entra-identitásukkal vagy névtelen hozzáférésükkel.

DATABASE SCOPED CREDENTIAL meghatározza, hogyan érheti el a hivatkozott adatforrás fájljait (jelenleg SAS és felügyelt identitás). Az engedéllyel rendelkező CONTROL DATABASE power-felhasználónak létre kell hoznia DATABASE SCOPED CREDENTIAL azt a tárolót EXTERNAL DATA SOURCE , amely megadja az adatforrás és a hitelesítő adatok URL-címét, amelyet használni kell:

EXECUTE AS somepoweruser;

-- Create MASTER KEY if it doesn't exists in database
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some very strong password';

CREATE DATABASE SCOPED CREDENTIAL AccessAzureInvoices
 WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
 SECRET = '******srt=sco&amp;sp=rwac&amp;se=2017-02-01T00:55:34Z&amp;st=201********' ;

CREATE EXTERNAL DATA SOURCE MyAzureInvoices
 WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>/' ,
 CREDENTIAL = AccessAzureInvoices) ;

A hívónak az alábbi engedélyekkel kell rendelkeznie az OPENROW Standard kiadás T függvény végrehajtásához:

  • Az OPENROW végrehajtásának egyik engedélye Standard kiadás T:
    • ADMINISTER BULK OPERATIONS – lehetővé teszi a bejelentkezést az OPENROWSET függvény végrehajtásához.
    • ADMINISTER DATABASE BULK OPERATIONS – lehetővé teszi az adatbázishoz tartozó felhasználó számára az OPENROWSET függvény végrehajtását.
  • REFERENCES DATABASE SCOPED CREDENTIAL a következőben hivatkozott EXTERNAL DATA SOURCEhitelesítő adatokra: .

KÜLSŐ TÁBLA

A táblázat olvasására jogosult felhasználó az Azure Storage-mappák és -fájlok készletén létrehozott KÜLSŐ TÁBLA használatával érheti el a külső fájlokat.

A külső tábla létrehozására jogosult felhasználó (például CREATE TABLE és ALTER ANY CREDENTIAL vagy REFERENCES DATABA Standard kiadás SCOPED CREDENTIAL) az alábbi szkripttel hozhat létre egy táblát az Azure Storage-adatforrás tetején:

CREATE EXTERNAL TABLE [dbo].[DimProductexternal]
( ProductKey int, ProductLabel nvarchar, ProductName nvarchar )
WITH
(
LOCATION='/DimProduct/year=*/month=*' ,
DATA_SOURCE = AzureDataLakeStore ,
FILE_FORMAT = TextFileFormat
) ;

A táblából adatokat olvasó felhasználónak hozzá kell tudnia férni a fájlokhoz. A felhasználókat SAS-jogkivonattal vagy a munkaterület felügyelt identitásával kell megszemélyesíteni, ha nem tudnak közvetlenül hozzáférni a fájlokhoz a Microsoft Entra-identitásukkal vagy névtelen hozzáférésükkel.

A DATABA Standard kiadás SCOPED CREDENTIAL a hivatkozott adatforrás fájljainak elérését határozza meg. A CONTROL DATABA Standard kiadás engedéllyel rendelkező felhasználónak létre kell hoznia a DATABA Standard kiadás SCOPED CREDENTIAL-t, amely a tárolóhoz és a külső adatforráshoz való hozzáféréshez lesz használva, amely megadja az adatforrás ÉS a hitelesítő adatok URL-címét, amelyet használni kell:

EXECUTE AS somepoweruser;

-- Create MASTER KEY if it doesn't exists in database
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some very strong password';

CREATE DATABASE SCOPED CREDENTIAL cred
 WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
 SECRET = '******srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=201********' ;

CREATE EXTERNAL DATA SOURCE AzureDataLakeStore
 WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>' ,
 CREDENTIAL = cred
 ) ;

Külső fájlok olvasása KÜLSŐ TÁBLÁZATtal

A KÜLSŐ TÁBLA lehetővé teszi az adatforráson keresztül hivatkozott fájlokból származó adatok olvasását standard SQL Standard kiadás LECT utasítás használatával:

SELECT *
FROM dbo.DimProductsExternal

A hívónak a következő engedélyekkel kell rendelkeznie az adatok olvasásához:

  • SELECT engedély a külső táblán
  • REFERENCES DATABASE SCOPED CREDENTIAL engedély, ha DATA SOURCE rendelkezik CREDENTIAL

Permissions

Az alábbi táblázat a fent felsorolt műveletekhez szükséges engedélyeket sorolja fel.

Query Szükséges engedélyek
OPENROW Standard kiadás T(BULK) adatforrás nélkül ADMINISTER BULK OPERATIONS, ADMINISTER DATABASE BULK OPERATIONSvagy az SQL-bejelentkezéshez HIVATKOZÓ HITELESÍTŐ ADATOKnak::<AZ SAS által védett tároló URL-címének> kell lennie
OPENROW Standard kiadás T(BULK) hitelesítő adatok nélküli adatforrással ADMINISTER BULK OPERATIONS vagy ADMINISTER DATABASE BULK OPERATIONS,
OPENROW Standard kiadás T(BULK) hitelesítő adatokkal rendelkező adatforrással REFERENCES DATABASE SCOPED CREDENTIALés egy vagy több ADMINISTER BULK OPERATIONSADMINISTER DATABASE BULK OPERATIONS
CREATE EXTERNAL DATA SOURCE ALTER ANY EXTERNAL DATA SOURCE és REFERENCES DATABASE SCOPED CREDENTIAL
KÜLSŐ TÁBLA LÉTREHOZÁSA CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY EXTERNAL FILE FORMATés ALTER ANY EXTERNAL DATA SOURCE
STANDARD KIADÁS LECT FROM EXTERNAL TABLE SELECT TABLE és REFERENCES DATABASE SCOPED CREDENTIAL
CETAS Tábla létrehozása – CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY DATA SOURCEés ALTER ANY EXTERNAL FILE FORMAT. Adatok olvasása: ADMINISTER BULK OPERATIONS vagy REFERENCES CREDENTIALSELECT TABLE minden tábla/nézet/függvény alapján a lekérdezésben + R/W engedély a tárterületen

Következő lépések

Most már készen áll a következő Útmutató cikkek folytatására: