Självstudie: Läsa in externa data med Hjälp av Microsoft Entra-ID
I den här artikeln beskrivs hur du skapar externa tabeller med hjälp av Microsoft Entra ID-genomströmning.
Förutsättningar
Följande resurser krävs för att slutföra den här självstudien:
- En Azure Synapse Analytics-arbetsyta och en dedikerad SQL-pool
Ge Microsoft Entra-ID-kontot åtkomst till lagringskontot
I det här exemplet används ett Microsoft Entra-ID-konto (eller grupp) för att autentisera till källdata.
Om du vill aktivera åtkomst till data på Azure Data Lake Storage-konton (ADLS) Gen2 måste du ge ditt Microsoft Entra-ID-konto (eller grupp) åtkomst till källkontot. Följ dessa steg för att bevilja rätt behörigheter:
- Leta reda på ditt lagringskonto i Azure Portal.
- Välj Datalagring –> Containrar och navigera till den mapp där källdata som den externa tabellen behöver åtkomst till finns.
- Välj Åtkomstkontroll (IAM) .
- Välj Lägg till –> Lägg till rolltilldelning.
- I listan över jobbfunktionsroller väljer du Lagringsblobdataläsare och väljer Nästa. Om skrivbehörigheter behövs väljer du Lagringsblobdatadeltagare.
- På sidan Lägg till rolltilldelning väljer du + Välj medlemmar. Fönstret Välj medlemmar öppnas i det högra hörnet.
- Ange namnet på önskat Microsoft Entra-ID-konto. När du visar det väljer du önskat konto och väljer Välj.
- På sidan Lägg till rolltilldelning kontrollerar du att listan med medlemmar innehåller ditt önskade Microsoft Entra-ID-konto. När du har verifierat väljer du Granska + tilldela.
- Granska ändringarna på bekräftelsesidan och välj Granska + tilldela.
Microsoft Entra-ID-kontot eller -gruppen är nu medlem i rollen Storage Blob Data Reader och har åtkomst till källmappen.
Mata in data med COPY INTO
T-SQL-instruktionen COPY INTO
ger flexibel datainmatning med högt dataflöde i dina tabeller och är den primära strategin för att mata in data i dina dedikerade SQL-pooltabeller. Det gör att användare kan mata in data från externa platser utan att behöva skapa något av de extra databasobjekt som krävs för externa tabeller.
Instruktionen COPY INTO
CREDENTIAL
använder argumentet för att ange den autentiseringsmetod som används för att ansluta till källkontot. Men när du autentiserar med Microsoft Entra-ID eller till ett offentligt lagringskonto CREDENTIAL
behöver du inte anges. Om du vill köra -instruktionen COPY INTO
med entra-ID-autentisering använder du följande T-SQL-kommando:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
[<CopyIntoOptions>]
);
Där:
<TableName>
är namnet på tabellen som data ska matas in i.<AccountName>
är ditt ADLS Gen2-kontonamn.<Container>
är namnet på containern i ditt lagringskonto där källdata lagras<Folder>
är mappen (eller sökvägen med undermappar) där källdata lagras i containern. Du kan också ange ett filnamn om du pekar direkt på en enda fil.<CopyIntoOptions>
är listan över andra alternativ som du vill ange för -instruktionenCOPY INTO
.
Mer information och utforska den fullständiga syntaxen finns i KOPIERA TILL (Transact-SQL).
Fråga efter data på ADLS Gen2 med hjälp av externa tabeller
Med externa tabeller kan användare köra frågor mot data från Azure Data Lake Storage (ADLS) Gen2-konton utan att behöva mata in data först. Användare kan skapa en extern tabell som pekar på filer i en ADLS Gen2-container och köra frågor mot den precis som en vanlig användartabell.
Följande steg beskriver processen för att skapa en ny extern tabell som pekar på data på ADLS Gen2 med hjälp av Entra ID-autentisering.
Skapa nödvändiga databasobjekt
Externa tabeller kräver att följande objekt skapas:
- En extern datakälla som pekar på källmappen
- Ett externt filformat som definierar formatet för källfilerna
- En extern tabelldefinition som används för frågor
Om du vill följa de här stegen måste du använda SQL-redigeraren på Azure Synapse-arbetsytan, eller den SQL-klient som är ansluten till din dedikerade SQL-pool. Nu ska vi titta närmare på de här stegen.
Skapa den externa datakällan
Nästa steg är att skapa en extern datakälla som anger var källdata som används av den externa tabellen finns.
Använd följande T-SQL-kommando för att skapa den externa datakällan:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);
Där:
<ExternalDataSourceName>
är det namn som du vill använda för din externa datakälla.<AccountName>
är ditt ADLS Gen2-kontonamn.<Container>
är namnet på containern i ditt lagringskonto där källdata lagras.<Folder>
är mappen (eller sökvägen med undermappar) där källdata lagras i containern.
Mer information om externa datakällor finns i SKAPA EXTERN DATAKÄLLA (Transact-SQL).
Skapa det externa filformatet
Nästa steg är att skapa det externa filformatet. Den anger den faktiska layouten för de data som refereras till av den externa tabellen.
Använd följande T-SQL-kommando för att skapa det externa filformatet. Ersätt <FileFormatName>
med det namn som du vill använda för ditt externa filformat.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
I det här exemplet justerar du parametrar som FIELD_TERMINATOR
, STRING_DELIMITER
, FIRST_ROW
och andra efter behov i enlighet med dina källdata. Mer formateringsalternativ och mer information finns i SKAPA EXTERNT FILFORMAT (Transact-SQL).
Skapa den externa tabellen
Nu när de nödvändiga objekten som innehåller metadata för säker åtkomst till externa data har skapats är det dags att skapa den externa tabellen. Använd följande T-SQL-kommando för att skapa den externa tabellen:
-- 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>
);
Där:
<ExternalTableName>
är det namn som du vill använda för den externa tabellen.<Path>
är sökvägen till källdata i förhållande till den plats som anges i den externa datakällan.<ExternalDataSourceName>
är namnet på den externa datakälla som du skapade.<FileFormatName>
är namnet på det externa filformat som du skapade.
Se till att justera tabellnamnet och schemat till önskat namn och schemat för data i källfilerna.
Fråga den externa tabellen
Nu skapas alla metadata som krävs för att komma åt den externa tabellen. Om du vill testa den externa tabellen använder du en fråga, till exempel följande T-SQL-exempel för att verifiera ditt arbete:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Om allt har konfigurerats korrekt bör du se data från dina källdata som ett resultat av den här frågan.
Mer information om CREATE EXTERNAL TABLE
finns i CREATE EXTERNAL TABLE (Transact-SQL).