Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak vytvořit externí tabulky pomocí Microsoft Entra ID passthrough.
Požadavky
K dokončení tohoto kurzu jsou potřeba následující zdroje informací:
- An Azure Synapse Analytics workspace and a dedicated SQL pool
Dejte účtu Microsoft Entra ID přístup k účtu úložiště.
Tento příklad používá účet Microsoft Entra ID (nebo skupinu) k ověření ke zdrojovým datům.
Pokud chcete povolit přístup k datům v účtech Azure Data Lake Storage (ADLS) Gen2, musíte svému účtu Microsoft Entra ID (nebo skupině) udělit přístup ke zdrojovému účtu. Pokud chcete udělit správná oprávnění, postupujte takto:
- Na webu Azure Portal vyhledejte svůj účet úložiště.
- Vyberte Úložiště dat –> Kontejnery a přejděte do složky, kde zdrojová data, ke které externí tabulka potřebuje přístup.
- Vyberte Řízení přístupu (IAM) .
- Select Add -> Add role assignment.
- In the list of job function roles, select Storage Blob Data Reader and select Next. If write permissions are needed, select Storage Blob Data Contributor.
- In the Add role assignment page, select + Select members. The Select members pane opens in the right-hand corner.
- Zadejte název požadovaného účtu Microsoft Entra ID. Po zobrazení vyberte požadovaný účet a zvolte Vybrat.
- Na stránce Přidat přiřazení role se ujistěte, že seznam členů obsahuje vámi požadovaný účet Microsoft Entra ID. Po ověření vyberte Zkontrolovat a přiřadit.
- Na potvrzovací stránce zkontrolujte změny a vyberte Zkontrolovat a přiřadit.
The Microsoft Entra ID account or group is now a member of the Storage Blob Data Reader role and has access to the source folder.
Ingestování dat pomocí funkce COPY INTO
The COPY INTO T-SQL statement provides flexible, high-throughput data ingestion into your tables, and is the primary strategy to ingest data into your dedicated SQL pool tables. Umožňuje uživatelům ingestovat data z externích umístění, aniž by museli vytvářet další databázové objekty potřebné pro externí tabulky.
Tento COPY INTO příkaz používá CREDENTIAL argument k určení metody ověřování použité pro připojení ke zdrojovému účtu. However, when authenticating using Microsoft Entra ID or to a public storage account, CREDENTIAL doesn't need to be specified. Pokud chcete pomocí ověřování Entra ID spustit příkaz COPY INTO, použijte následující příkaz T-SQL:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
[<CopyIntoOptions>]
);
Kde:
-
<TableName>je název tabulky, do které se mají ingestovat data. -
<AccountName>je název vašeho účtu ADLS Gen2. -
<Container>je název kontejneru v rámci vašeho účtu úložiště, ve kterém jsou uložena zdrojová data. -
<Folder>je složka (nebo cesta s podsložkami), ve které jsou zdrojová data uložená ve vašem kontejneru. Název souboru můžete zadat také v případě, že odkazujete přímo na jeden soubor. -
<CopyIntoOptions>is the list of any other options you wish to provide to theCOPY INTOstatement.
Další informace a prozkoumání úplné syntaxe najdete v tématu COPY INTO (Transact-SQL).
Dotazování dat na ADLS Gen2 pomocí externích tabulek
Externí tabulky umožňují uživatelům dotazovat se na data z účtů Azure Data Lake Storage (ADLS) Gen2 bez nutnosti ingestovat data jako první. Uživatelé mohou vytvořit externí tabulku, která odkazuje na soubory v kontejneru ADLS Gen2, a dotazovat se na ni stejně jako běžná uživatelská tabulka.
Následující kroky popisují proces vytvoření nové externí tabulky odkazující na data v ADLS Gen2 pomocí ověřování Entra ID.
Vytvoření požadovaných databázových objektů
Externí tabulky vyžadují vytvoření následujících objektů:
- Externí zdroj dat, který odkazuje na zdrojovou složku
- Formát externího souboru, který definuje formát zdrojových souborů
- Definice externí tabulky, která se používá pro dotazy
Pokud chcete postupovat podle těchto kroků, musíte použít editor SQL v pracovním prostoru Azure Synapse nebo upřednostňovaný klient SQL připojený k vyhrazenému fondu SQL. Pojďme se na tyto kroky podívat podrobněji.
Vytvoření externího zdroje dat
Dalším krokem je vytvoření externího zdroje dat, který určuje umístění zdrojových dat používaných externí tabulkou.
K vytvoření externího zdroje dat použijte následující příkaz T-SQL:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);
Kde:
-
<ExternalDataSourceName>je název, který chcete použít pro externí zdroj dat. -
<AccountName>je název vašeho účtu ADLS Gen2. -
<Container>je název kontejneru v rámci vašeho účtu úložiště, ve kterém jsou uložena zdrojová data. -
<Folder>je složka (nebo cesta s podsložkami), ve které jsou zdrojová data uložená ve vašem kontejneru.
Další informace o externích zdrojích dat najdete v tématu VYTVOŘENÍ EXTERNÍHO ZDROJE DAT (Transact-SQL).
Vytvoření formátu externího souboru
Dalším krokem je vytvoření formátu externího souboru. Určuje skutečné rozložení dat odkazovaných externí tabulkou.
K vytvoření formátu externího souboru použijte následující příkaz T-SQL. Nahraďte <FileFormatName> názvem, který chcete použít pro formát externího souboru.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
V tomto příkladu upravte parametry, jako jsou FIELD_TERMINATOR, STRING_DELIMITER, FIRST_ROW a další podle potřeby v souladu s vašimi zdrojovými daty. Další možnosti formátování a další informace najdete v tématu CREATE EXTERNAL FILE FORMAT (Transact-SQL).
Vytvoření externí tabulky
Teď, když se vytvoří potřebné objekty, které obsahují metadata pro bezpečný přístup k externím datům, je čas vytvořit externí tabulku. K vytvoření externí tabulky použijte následující příkaz T-SQL:
-- 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>
);
Kde:
-
<ExternalTableName>je název, který chcete použít pro externí tabulku. -
<Path>je cesta ke zdrojovým datům vzhledem k umístění zadanému v externím zdroji dat. -
<ExternalDataSourceName>je název externího zdroje dat, který jste vytvořili. -
<FileFormatName>je název formátu externího souboru, který jste vytvořili.
Nezapomeňte upravit název tabulky a schéma na požadovaný název a schéma dat ve zdrojových souborech.
Query the external table
V tomto okamžiku se vytvoří všechna metadata potřebná pro přístup k externí tabulce. K otestování externí tabulky použijte k ověření vaší práce dotaz, například následující ukázku T-SQL:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Pokud bylo všechno správně nakonfigurované, měli byste v důsledku tohoto dotazu vidět data ze zdrojových dat.
Pro více informací o CREATE EXTERNAL TABLE, viz CREATE EXTERNAL TABLE (Transact-SQL).