Delen via


Zelfstudie: Externe gegevens laden met Behulp van Microsoft Entra ID

In dit artikel wordt uitgelegd hoe u externe tabellen maakt met behulp van Microsoft Entra ID Passthrough.

Vereisten

De volgende resources zijn vereist om deze zelfstudie te voltooien:

  • Een Azure Synapse Analytics-werkruimte en een toegewezen SQL-pool

Geef het Microsoft Entra ID-account toegang tot het opslagaccount

In dit voorbeeld wordt een Microsoft Entra ID-account (of groep) gebruikt om te verifiëren bij de brongegevens.

Als u toegang tot gegevens in ADLS Gen2-accounts (Azure Data Lake Storage) wilt inschakelen, moet u uw Microsoft Entra ID-account (of groep) toegang geven tot het bronaccount. Voer de volgende stappen uit om de juiste machtigingen te verlenen:

  1. Zoek uw opslagaccount in Azure Portal.
  2. Selecteer Gegevensopslag -> Containers en navigeer naar de map waar de brongegevens waarnaar de externe tabel toegang nodig heeft, is.
  3. Klik op Toegangsbeheer (IAM) .
  4. Selecteer Toevoegen -> Roltoewijzing toevoegen.
  5. Selecteer Storage Blob Data Reader in de lijst met functierollen voor de taak en selecteer Volgende. Als schrijfmachtigingen nodig zijn, selecteert u Inzender voor opslagblobgegevens.
  6. Selecteer + Leden selecteren op de pagina Roltoewijzing toevoegen. Het deelvenster Leden selecteren wordt geopend in de rechterhoek.
  7. Typ de naam van het gewenste Microsoft Entra ID-account. Wanneer dit wordt weergegeven, kiest u het gewenste account en kiest u Selecteren.
  8. Controleer op de pagina Roltoewijzing toevoegen of de lijst met leden uw gewenste Microsoft Entra ID-account bevat. Zodra dit is geverifieerd, selecteert u Beoordelen en toewijzen.
  9. Controleer de wijzigingen op de bevestigingspagina en selecteer Beoordelen en toewijzen.

Het Microsoft Entra ID-account of de groep is nu lid van de rol Opslagblobgegevenslezer en heeft toegang tot de bronmap.

Gegevens opnemen met COPY INTO

De COPY INTO T-SQL-instructie biedt flexibele gegevensopname met hoge doorvoer in uw tabellen en is de primaire strategie voor het opnemen van gegevens in uw toegewezen SQL-pooltabellen. Hiermee kunnen gebruikers gegevens van externe locaties opnemen zonder dat ze een van de extra databaseobjecten hoeven te maken die vereist zijn voor externe tabellen.

De COPY INTO instructie gebruikt het CREDENTIAL argument om de verificatiemethode op te geven die wordt gebruikt om verbinding te maken met het bronaccount. Bij verificatie met behulp van Microsoft Entra-id of een openbaar opslagaccount CREDENTIAL hoeft u echter niet op te geven. Als u de COPY INTO instructie wilt uitvoeren met behulp van Entra ID-verificatie, gebruikt u de volgende T-SQL-opdracht:

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    [<CopyIntoOptions>]
);

Hierin:

  • <TableName> is de naam van de tabel waarin gegevens moeten worden opgenomen.
  • <AccountName> is uw ADLS Gen2-accountnaam.
  • <Container> is de naam van de container in uw opslagaccount waarin de brongegevens worden opgeslagen
  • <Folder> is de map (of het pad met submappen) waarin de brongegevens in uw container worden opgeslagen. U kunt ook een bestandsnaam opgeven als u rechtstreeks naar één bestand verwijst.
  • <CopyIntoOptions> is de lijst met andere opties die u aan de COPY INTO instructie wilt verstrekken.

Zie COPY INTO (Transact-SQL) voor meer informatie en de volledige syntaxis.

Query's uitvoeren op gegevens in ADLS Gen2 met behulp van externe tabellen

Met externe tabellen kunnen gebruikers query's uitvoeren op gegevens uit AdLS Gen2-accounts (Azure Data Lake Storage) zonder dat ze eerst gegevens hoeven op te nemen. Gebruikers kunnen een externe tabel maken die verwijst naar bestanden in een ADLS Gen2-container en deze opvragen, net als een gewone gebruikerstabel.

In de volgende stappen wordt het proces beschreven voor het maken van een nieuwe externe tabel die verwijst naar gegevens in ADLS Gen2, met behulp van Entra ID-verificatie.

De vereiste databaseobjecten maken

Voor externe tabellen moeten de volgende objecten worden gemaakt:

  1. Een externe gegevensbron die verwijst naar de bronmap
  2. Een externe bestandsindeling die de indeling van de bronbestanden definieert
  3. Een externe tabeldefinitie die wordt gebruikt voor query's

Als u deze stappen wilt uitvoeren, moet u de SQL-editor gebruiken in de Azure Synapse-werkruimte of de sql-client van uw voorkeur die is verbonden met uw toegewezen SQL-pool. Laten we deze stappen in detail bekijken.

De externe gegevensbron maken

De volgende stap bestaat uit het maken van een externe gegevensbron die aangeeft waar de brongegevens zich bevinden die door de externe tabel worden gebruikt.

Gebruik de volgende T-SQL-opdracht om de externe gegevensbron te maken:

CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);

Hierin:

  • <ExternalDataSourceName> is de naam die u wilt gebruiken voor uw externe gegevensbron.
  • <AccountName> is uw ADLS Gen2-accountnaam.
  • <Container> is de naam van de container in uw opslagaccount waarin de brongegevens worden opgeslagen.
  • <Folder> is de map (of het pad met submappen) waarin de brongegevens in uw container worden opgeslagen.

Zie CREATE EXTERNAL DATA SOURCE (Transact-SQL) voor meer informatie over externe gegevensbronnen.

De externe bestandsindeling maken

De volgende stap bestaat uit het maken van de externe bestandsindeling. Hiermee geeft u de werkelijke indeling op van de gegevens waarnaar wordt verwezen door de externe tabel.

Gebruik de volgende T-SQL-opdracht om de externe bestandsindeling te maken. Vervang <FileFormatName> door de naam die u wilt gebruiken voor de externe bestandsindeling.

CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = True
    )
);

In dit voorbeeld past u de parameters zoals FIELD_TERMINATOR, STRING_DELIMITER, FIRST_ROWen andere parameters aan, indien nodig in overeenstemming met uw brongegevens. Zie CREATE EXTERNAL FILE FORMAT (Transact-SQL) voor meer opmaakopties en meer informatie.

De externe tabel maken

Nu de benodigde objecten met de metagegevens voor veilige toegang tot externe gegevens zijn gemaakt, is het tijd om de externe tabel te maken. Gebruik de volgende T-SQL-opdracht om de externe tabel te maken:

-- 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>
);

Hierin:

Zorg ervoor dat u de tabelnaam en het schema aanpast aan de gewenste naam en het schema van de gegevens in uw bronbestanden.

Een query uitvoeren op de externe tabel

Op dit moment worden alle metagegevens gemaakt die nodig zijn voor toegang tot de externe tabel. Als u uw externe tabel wilt testen, gebruikt u een query zoals het volgende T-SQL-voorbeeld om uw werk te valideren:

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

Als alles goed is geconfigureerd, ziet u de gegevens uit uw brongegevens als gevolg van deze query.

Zie CREATE EXTERNAL TABLE (Transact-SQL) voor meer informatie overCREATE EXTERNAL TABLE.