Sdílet prostřednictvím


Kurz: Načtení externích dat pomocí spravované identity

Tento článek vysvětluje, jak vytvořit externí tabulky nebo ingestovat data z účtů Azure Data Lake Storage (ADLS) Gen2 pomocí spravované identity.

Požadavky

K dokončení tohoto kurzu jsou potřeba následující zdroje informací:

  • Účet Azure Data Lake Storage (ADLS) Gen2
  • Pracovní prostor Azure Synapse Analytics a vyhrazený fond SQL

Udělení přístupu identitě pracovního prostoru k účtu úložiště

Každý pracovní prostor Azure Synapse Analytics automaticky vytvoří spravovanou identitu, která vám pomůže nakonfigurovat zabezpečený přístup k externím datům z vašeho pracovního prostoru. Další informace o spravovaných identitách pro Azure Synapse Analytics najdete v tématu Identita spravované služby pro Azure Synapse Analytics.

Pokud chcete spravované identitě povolit přístup k datům v účtech ADLS Gen2, musíte identitě 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, ke které externí tabulka potřebuje přístup.
  3. Vyberte Řízení přístupu (IAM) .
  4. Vyberte Přidat –> přidat přiřazení role.
  5. V seznamu rolí funkcí úloh vyberte Přispěvatel dat objektů blob služby Storage a vyberte Další.
  6. Na stránce Přidat přiřazení role vyberte + Vybrat členy. Otevře se podokno Vybrat členy .
  7. Zadejte název vaší identity pracovního prostoru. Identita pracovního prostoru je stejná jako název vašeho pracovního prostoru. Po zobrazení vyberte identitu pracovního prostoru a pak vyberte.
  8. Na stránce Přidat přiřazení role se ujistěte, že seznam členů obsahuje požadovaný účet ID Microsoft Entra. Po ověření vyberte Zkontrolovat a přiřadit.
  9. Na potvrzovací stránce zkontrolujte změny a vyberte Zkontrolovat a přiřadit.

Vaše identita pracovního prostoru je teď členem role Přispěvatel dat objektů blob služby Storage a má přístup ke zdrojové složce.

Poznámka:

Tento postup platí také pro zabezpečené účty ADLS Gen2 nakonfigurované tak, aby omezovaly veřejný přístup. Další informace o zabezpečení účtu ADLS Gen2 najdete v tématu Konfigurace bran firewall služby Azure Storage a virtuálních sítí.

Ingestování dat pomocí funkce COPY INTO

Příkaz T-SQL COPY INTO poskytuje flexibilní příjem dat s vysokou propustností do tabulek a je primární strategií příjmu dat do vyhrazených tabulek fondu SQL. COPY INTO umožňuje uživatelům ingestovat data z externích umístění, aniž by museli vytvářet další databázové objekty, které jsou vyžadovány pro externí tabulky.

Pokud chcete příkaz spustit COPY INTO pomocí spravované identity pracovního prostoru pro ověřování, použijte následující příkaz T-SQL:

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    CREDENTIAL = (IDENTITY = 'Managed Identity'),
    [<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> je seznam všech dalších možností, které chcete poskytnout příkazu COPY INTO.

Další informace a prozkoumání úplné syntaxe funkce COPY INTO 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í spravované identity pro ověřování.

Vytvoření požadovaných databázových objektů

Externí tabulky vyžadují vytvoření následujících objektů:

  1. Hlavní klíč databáze, který šifruje tajný kód přihlašovacích údajů v oboru databáze
  2. Přihlašovací údaje s vymezeným oborem databáze, které používají vaši identitu pracovního prostoru
  3. Externí zdroj dat, který odkazuje na zdrojovou složku
  4. Formát externího souboru, který definuje formát zdrojových souborů
  5. Definice externí tabulky, která se používá pro dotazy

Pokud chcete postupovat podle těchto kroků, použijte editor SQL v pracovním prostoru Azure Synapse nebo preferovaného klienta SQL připojeného k vyhrazenému fondu SQL. Pojďme se na tyto kroky podívat podrobněji.

Vytvoření hlavního klíče databáze

Hlavní klíč databáze je symetrický klíč, který slouží k ochraně privátních klíčů certifikátů a asymetrických klíčů, které jsou přítomné v databázi a tajných klíčích v přihlašovacích údajích v oboru databáze. Pokud už v databázi existuje hlavní klíč, nemusíte ho vytvářet. Nahraďte <Secure Password> zabezpečeným heslem. Toto heslo slouží k šifrování hlavního klíče v databázi.

K vytvoření hlavního klíče použijte následující příkaz T-SQL:

-- Replace <Secure Password> with a secure password
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Secure Password>';

Další informace o hlavním klíči databáze najdete v tématu CREATE MASTER KEY (Transact-SQL).

Vytvoření přihlašovacích údajů s vymezeným oborem databáze

Přihlašovací údaje v oboru databáze používají vaši identitu pracovního prostoru a je potřeba k přístupu k externímu umístění, kdykoli externí tabulka vyžaduje přístup ke zdrojovým datům.

Pokud chcete vytvořit přihlašovací údaje s vymezeným oborem databáze, použijte následující příkaz. Nahraďte <CredentialName> názvem, který chcete použít pro přihlašovací údaje s vymezeným oborem databáze.

CREATE DATABASE SCOPED CREDENTIAL <CredentialName> WITH IDENTITY = 'Managed Service Identity';

Další informace o přihlašovacích údaji s vymezeným oborem databáze najdete v tématu CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

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>/',
    CREDENTIAL = <CredentialName>
);

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. Název souboru můžete zadat také v případě, že odkazujete přímo na jeden soubor.
  • <Credential> je název přihlašovacích údajů v oboru databáze, které jste vytvořili dříve.

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 FIELD_TERMINATORjsou , , STRING_DELIMITERFIRST_ROWa další podle potřeby v souladu s vašimi zdrojovými daty. Další možnosti formátování a další informace naleznete EXTERNAL FILE FORMATv tématu CREATE EXTERNAL FILE FORMAT.

Vytvoření externí tabulky

Teď, když se vytvoří všechny 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:

Nezapomeňte upravit název tabulky a schéma na požadovaný název a schéma dat ve zdrojových souborech.

Dotazování na externí tabulku

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.

Další informace a prozkoumání úplné syntaxe CREATE EXTERNAL TABLEnajdete v tématu CREATE EXTERNAL TABLE (Transact-SQL).