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

Tip

Microsoft Fabric Data Warehouse je relační sklad v podnikovém měřítku na základu datového jezera s architekturou připravenou pro budoucnost, integrovanou AI a novými funkcemi. Pokud s datovými sklady začínáte, začněte pracovat s Fabric Data Warehouse. Stávající úlohy fondu dedikované SQL můžou upgradovat na Fabric a získat tak přístup k novým funkcím napříč datovou vědou, analýzou v reálném čase a reportováním.

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

Prerequisites

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ý SQL fond

Dejte identitě pracovního prostoru přístup 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 pracovního prostoru. Další informace o spravovaných identitách pro Azure Synapse Analytics najdete v Spravované identitě 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 portálu Azure 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 >.
  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 poté vyberte.
  8. Na stránce Přidat přiřazení role se ujistěte, že seznam členů obsahuje 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.

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

Note

Tento postup platí také pro zabezpečené účty ADLS Gen2 nakonfigurované tak, aby omezovaly veřejný přístup. Pokud je váš účet úložiště přidružený k zabezpečenému účtu ADLS Gen2 nebo je přidružený k virtuální síti, externí tabulka nebo příkaz COPY INTO musí používat spravovanou identitu. Další informace o zabezpečení vašeho účtu ADLS Gen2 najdete v tématu Konfigurace firewallů a virtuálních sítí služby Azure Storage.

Ingestování dat pomocí funkce COPY INTO

Příkaz T-SQL COPY INTO poskytuje flexibilní, vysokokapacitní příjem dat do vašich tabulek a je hlavní strategií pro příjem dat do tabulek vašeho vyhrazeného 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.

Pro spuštění příkazu 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. Oprávnění k databázi, které používá 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ý klient SQL připojený 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řit přihlašovací údaje s vymezeným oborem databáze

Přihlašovací údaje s rozsahem databáze používají vaši identitu pracovního prostoru a jsou potřebné pro přístup 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ů s rozsahem databáze, které jste vytvořili předtím.

Další informace o externích zdrojích dat najdete v tématu CREATE EXTERNAL DATA SOURCE (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 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.

Provedení dotazu 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 TABLE najdete v tématu CREATE EXTERNAL TABLE (Transact-SQL).