Sdílet prostřednictvím


Kurz: Načtení externích dat pomocí Microsoft Entra ID

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:

  1. Na webu Azure Portal vyhledejte svůj účet úložiště.
  2. Vyberte Úložiště dat –> Kontejnery a přejděte do složky, kde zdrojová data, ke které externí tabulka potřebuje přístup.
  3. Vyberte Řízení přístupu (IAM) .
  4. Select Add -> Add role assignment.
  5. 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.
  6. In the Add role assignment page, select + Select members. The Select members pane opens in the right-hand corner.
  7. Zadejte název požadovaného účtu Microsoft Entra ID. Po zobrazení vyberte požadovaný účet a zvolte Vybrat.
  8. 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.
  9. 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 the COPY INTO statement.

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ů:

  1. Externí zdroj dat, který odkazuje na zdrojovou složku
  2. Formát externího souboru, který definuje formát zdrojových souborů
  3. 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).