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.
Ez a cikk ismerteti, hogyan hozhat létre külső táblákat, vagy hogyan tölthet be adatokat Azure Data Lake Storage (ADLS) Gen2-fiókokból felügyelt identitás használatával.
Előfeltételek
Az oktatóanyag elvégzéséhez a következő erőforrások szükségesek:
- An Azure Data Lake Storage (ADLS) Gen2 account
- Azure Synapse Analytics-munkaterület és dedikált SQL-készlet
Give the workspace identity access to the storage account
Minden Azure Synapse Analytics-munkaterület automatikusan létrehoz egy felügyelt identitást, amely segít a munkaterületről származó külső adatokhoz való biztonságos hozzáférés konfigurálásában. Ha többet szeretne megtudni az Azure Synapse Analytics felügyelt identitásairól, látogasson el az Azure Synapse Analytics felügyeltszolgáltatás-identitására.
To enable your managed identity to access data on ADLS Gen2 accounts, you need to give your identity access to the source account. A megfelelő engedélyek megadásához kövesse az alábbi lépéseket:
- Az Azure portálon keresse meg a tárolói fiókot.
- Válassza az Adattárolás –> Tárolók lehetőséget, és keresse meg azt a mappát, amelyhez a külső tábla forrásadatainak hozzáférésre van szüksége.
- Válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
- Válassza a Hozzáadás –> Szerepkör-hozzárendelés hozzáadása lehetőséget.
- A feladatfüggvény-szerepkörök listájában válassza a Storage Blob Data Közreműködője lehetőséget, majd a Tovább lehetőséget.
- A Szerepkör-hozzárendelés hozzáadása lapon válassza a + Tagok kiválasztása lehetőséget. Megnyílik a Tagok kijelölése panel.
- Írja be a munkaterületi identitás nevét. A munkaterület identitása megegyezik a munkaterület nevével. When displayed, pick your workspace identity, then Select.
- A Szerepkör hozzárendelése oldalon győződjön meg arról, hogy a taglista tartalmazza a kívánt Microsoft Entra-azonosító fiókját. Az ellenőrzés után válassza a Véleményezés + hozzárendelés lehetőséget.
- A megerősítést kérő lapon tekintse át a módosításokat, és válassza a Véleményezés + hozzárendelés lehetőséget.
A munkaterület identitása mostantól tagja a Storage Blob-adatszolgáltató szerepkörnek, és hozzáfér a forrásmappához.
Note
Ezek a lépések a nyilvános hozzáférés korlátozására konfigurált ADLS Gen2-fiókokra is vonatkoznak. If your storage account is associated with a secured ADLS Gen2 account or associated with a VNet, the external table or COPY INTO command must use a managed identity. Az ADLS Gen2-fiók biztonságossá tételéről további információt az Azure Storage-tűzfalak és virtuális hálózatok konfigurálása című témakörben talál.
Adatok betöltése a COPY INTO használatával
A T-SQL COPY INTO utasítás rugalmas, nagy átviteli sebességű adatbetöltést biztosít a táblákba, és az elsődleges stratégia az adatok dedikált SQL-készlettáblákba való betöltésére.
COPY INTO lehetővé teszi a felhasználók számára, hogy külső helyekről származó adatokat használjanak anélkül, hogy létre kellene hozniuk a külső táblákhoz szükséges további adatbázis-objektumokat.
Ha egy munkaterület által felügyelt identitással szeretné futtatni az COPY INTO utasítást hitelesítéshez, használja a következő T-SQL-parancsot:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
CREDENTIAL = (IDENTITY = 'Managed Identity'),
[<CopyIntoOptions>]
);
Where:
-
<TableName>annak a táblának a neve, amelybe adatokat töltünk be -
<AccountName>is your ADLS Gen2 account name -
<Container>annak a tárolónak a neve a tárfiókban, ahol a forrásadatokat tárolják -
<Folder>az a mappa (vagy almappákkal rendelkező elérési út), ahol a forrásadatok a tárolóban vannak tárolva. Ha közvetlenül egyetlen fájlra mutat, megadhatja a fájl nevét is. -
<CopyIntoOptions>a COPY INTO utasításhoz megadni kívánt egyéb lehetőségek listája.
További információkért és a COPY INTO teljes szintaxisának megismeréséhez tekintse meg a COPY INTO (Transact-SQL) című témakört.
Adatok lekérdezése az ADLS Gen2-ben külső táblák használatával
A külső táblák lehetővé teszik a felhasználók számára, hogy adatokat kérdezhessenek le az Azure Data Lake Storage (ADLS) Gen2-fiókokból anélkül, hogy először be kellene vennie az adatokat. A felhasználók létrehozhatnak egy külső táblát, amely egy ADLS Gen2-tároló fájljaira mutat, és ugyanúgy kérdezhetők le, mint egy normál felhasználói tábla.
Az alábbi lépések azt ismertetik, hogyan hozható létre egy új külső tábla, amely az ADLS Gen2 adataira mutat egy felügyelt identitás használatával a hitelesítéshez.
A szükséges adatbázis-objektumok létrehozása
A külső táblák létrehozásához a következő objektumok szükségesek:
- Adatbázis főkulcsa, amely titkosítja az adatbázis hatókörébe tartozó hitelesítő adatok titkos kulcsát
- A database scoped credential that uses your workspace identity
- Külső adatforrás, amely a forrásmappára mutat
- Külső fájlformátum, amely meghatározza a forrásfájlok formátumát
- Lekérdezésekhez használt külső tábladefiníció
Az alábbi lépések végrehajtásához használja az SQL-szerkesztőt az Azure Synapse-munkaterületen, vagy a dedikált SQL-készlethez csatlakoztatott elsődleges SQL-ügyfelet. Nézzük meg részletesen ezeket a lépéseket.
Az adatbázis főkulcsának létrehozása
Az adatbázis főkulcsa szimmetrikus kulcs az adatbázisban található tanúsítványok és aszimmetrikus kulcsok titkos kulcsainak, valamint az adatbázis hatókörébe tartozó hitelesítő adatok titkos kulcsainak védelmére. Ha már van mesterkulcs az adatbázisban, nem kell újat létrehoznia. Cserélje le <Secure Password> biztonságos jelszóra. Ez a jelszó az adatbázis főkulcsának titkosítására szolgál.
Főkulcs létrehozásához használja a következő T-SQL-parancsot:
-- Replace <Secure Password> with a secure password
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Secure Password>';
Az adatbázis-főkulcsról további információt a CREATE MASTER KEY (Transact-SQL) című témakörben talál.
Az adatbázis hatókörébe tartozó hitelesítő adatok létrehozása
Az adatbázis hatókörébe tartozó hitelesítő adatok a munkaterület identitását használják, és a külső hely eléréséhez akkor van szükség, amikor a külső tábla hozzáférést igényel a forrásadatokhoz.
Az adatbázis hatókörébe tartozó hitelesítő adatok létrehozásához használja az alábbi parancsot. Cserélje le <CredentialName> az adatbázis hatókörébe tartozó hitelesítő adatokhoz használni kívánt nevet.
CREATE DATABASE SCOPED CREDENTIAL <CredentialName> WITH IDENTITY = 'Managed Service Identity';
Az adatbázis hatókörébe tartozó hitelesítő adatokkal kapcsolatos további információkért lásd: CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
A külső adatforrás létrehozása
A következő lépés egy külső adatforrás létrehozása, amely meghatározza, hogy a külső tábla által használt forrásadatok hol találhatók.
A külső adatforrás létrehozásához használja a következő T-SQL-parancsot:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/',
CREDENTIAL = <CredentialName>
);
Where:
-
<ExternalDataSourceName>a külső adatforráshoz használni kívánt név. -
<AccountName>is your ADLS Gen2 account name. -
<Container>a tároló neve a tárfiókon belül, ahol a forrásadatokat tárolják. -
<Folder>az a mappa (vagy almappákkal rendelkező elérési út), ahol a forrásadatok a tárolóban vannak tárolva. Ha közvetlenül egyetlen fájlra mutat, megadhatja a fájl nevét is. -
<Credential>is the name of the database scoped credential you created earlier.
A külső adatforrásokról további információt a CREATE EXTERNAL DATA SOURCE (Transact-SQL) című témakörben talál.
A külső fájlformátum létrehozása
A következő lépés a külső fájlformátum létrehozása. Meghatározza a külső tábla által hivatkozott adatok tényleges elrendezését.
A külső fájlformátum létrehozásához használja a következő T-SQL-parancsot. Cserélje le <FileFormatName> a külső fájlformátumhoz használni kívánt névre.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
Ebben a példában a forrásadatoknak megfelelően módosítsa az olyan paramétereket, mint például a FIELD_TERMINATOR, STRING_DELIMITER, FIRST_ROW, és más hasonló elemeket. További formázási beállításokért és további információkért EXTERNAL FILE FORMATlásd a KÜLSŐ FÁJLFORMÁTUM LÉTREHOZÁSA című témakört.
A külső tábla létrehozása
Most, hogy létrejött az összes szükséges objektum, amely a metaadatokat tárolja a külső adatok biztonságos eléréséhez, ideje létrehozni a külső táblát. A külső tábla létrehozásához használja a következő T-SQL-parancsot:
-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
Col1 INT,
Col2 NVARCHAR(100),
Col4 INT
)
WITH
(
LOCATION = '<Path>',
DATA_SOURCE = <ExternalDataSourceName>,
FILE_FORMAT = <FileFormatName>
);
Where:
- A
<ExternalTableName>az a név, amit a külső táblához használni szeretne. -
<Path>a forrásadatok elérési útja a külső adatforrásban megadott helyhez viszonyítva. -
<ExternalDataSourceName>a korábban létrehozott külső adatforrás neve. -
<FileFormatName>a korábban létrehozott külső fájlformátum neve.
Ügyeljen arra, hogy a tábla nevét és sémáját a forrásfájlokban lévő adatok kívánt nevéhez és sémájához igazítsa.
Query the external table
Ekkor létrejön a külső tábla eléréséhez szükséges összes metaadat. A külső tábla teszteléséhez használjon egy lekérdezést, például a következő T-SQL-mintát a munka ellenőrzéséhez:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Ha minden megfelelően lett konfigurálva, a lekérdezés eredményeként látnia kell a forrásadatokból származó adatokat.
A további információkért és a teljes szintaxis megismeréséhez lásd: CREATE EXTERNAL TABLE, CREATE EXTERNAL TABLE (Transact-SQL).