Esercitazione: Caricare dati esterni con Microsoft Entra ID
Questo articolo illustra come creare tabelle esterne usando il pass-through microsoft Entra ID.
Prerequisiti
Per completare questa esercitazione sono necessarie le risorse seguenti:
- Un'area di lavoro di Azure Synapse Analytics e un pool SQL dedicato
Concedere all'account MICROSOFT Entra ID l'accesso all'account di archiviazione
In questo esempio viene usato un account Microsoft Entra ID (o gruppo) per eseguire l'autenticazione ai dati di origine.
Per abilitare l'accesso ai dati negli account Azure Data Lake Storage (ADLS) Gen2, è necessario concedere all'account Microsoft Entra ID (o al gruppo) l'accesso all'account di origine. Per concedere le autorizzazioni appropriate, seguire questa procedura:
- Nel portale di Azure trovare l'account di archiviazione.
- Selezionare Archiviazione dati ->Contenitori e passare alla cartella in cui si trovano i dati di origine a cui deve accedere la tabella esterna.
- Seleziona Controllo di accesso (IAM).
- Selezionare Aggiungi -> Aggiungi assegnazione di ruolo.
- Nell'elenco dei ruoli della funzione del processo selezionare Lettore dati BLOB di archiviazione e selezionare Avanti. Se sono necessarie autorizzazioni di scrittura, selezionare Collaboratore ai dati del BLOB di archiviazione.
- Nella pagina Aggiungi assegnazione di ruolo selezionare + Seleziona membri. Viene visualizzato il riquadro Seleziona membri nell'angolo destro.
- Digitare il nome dell'account MICROSOFT Entra ID desiderato. Quando viene visualizzato, selezionare l'account desiderato e scegliere Seleziona.
- Nella pagina Aggiungi assegnazione di ruolo verificare che l'elenco dei membri includa l'account MICROSOFT Entra ID desiderato. Dopo la verifica, selezionare Rivedi e assegna.
- Nella pagina di conferma esaminare le modifiche e selezionare Rivedi e assegna.
L'account o il gruppo Microsoft Entra ID è ora membro del ruolo Lettore dati BLOB di archiviazione e ha accesso alla cartella di origine.
Inserire dati con COPY INTO
L'istruzione COPY INTO
T-SQL fornisce un inserimento dati flessibile e ad alta velocità effettiva nelle tabelle ed è la strategia principale per inserire i dati nelle tabelle del pool SQL dedicato. Consente agli utenti di inserire dati da posizioni esterne senza dover creare gli oggetti di database aggiuntivi necessari per le tabelle esterne.
L'istruzione COPY INTO
usa l'argomento CREDENTIAL
per specificare il metodo di autenticazione utilizzato per connettersi all'account di origine. Tuttavia, quando si esegue l'autenticazione usando l'ID Microsoft Entra o un account di archiviazione pubblico, CREDENTIAL
non è necessario specificare . Per eseguire l'istruzione usando l'autenticazione COPY INTO
ENTRA ID, usare il comando T-SQL seguente:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
[<CopyIntoOptions>]
);
Dove:
<TableName>
è il nome della tabella in cui inserire i dati.<AccountName>
è il nome dell'account ADLS Gen2.<Container>
è il nome del contenitore all'interno dell'account di archiviazione in cui sono archiviati i dati di origine<Folder>
è la cartella (o il percorso con sottocartelle) in cui i dati di origine vengono archiviati all'interno del contenitore. È anche possibile specificare un nome file se punta direttamente a un singolo file.<CopyIntoOptions>
è l'elenco di tutte le altre opzioni che si desidera fornire all'istruzioneCOPY INTO
.
Per altre informazioni ed esplorare la sintassi completa, vedere COPY INTO (Transact-SQL).
Eseguire query sui dati in ADLS Gen2 usando tabelle esterne
Le tabelle esterne consentono agli utenti di eseguire query sui dati dagli account Azure Data Lake Storage (ADLS) Gen2 senza dover prima inserire dati. Gli utenti possono creare una tabella esterna che punta ai file in un contenitore ADLS Gen2 ed eseguirne una query esattamente come una normale tabella utente.
I passaggi seguenti descrivono il processo per creare una nuova tabella esterna che punta ai dati in ADLS Gen2 usando l'autenticazione Entra ID.
Creare gli oggetti di database necessari
Per le tabelle esterne è necessario creare gli oggetti seguenti:
- Origine dati esterna che punta alla cartella di origine
- Formato di file esterno che definisce il formato dei file di origine
- Definizione di tabella esterna usata per le query
Per seguire questa procedura, è necessario usare l'editor SQL nell'area di lavoro di Azure Synapse o il client SQL preferito connesso al pool SQL dedicato. Esaminiamo in dettaglio questi passaggi.
Creare un'origine dati esterna.
Il passaggio successivo consiste nel creare un'origine dati esterna che specifica dove risiedono i dati di origine usati dalla tabella esterna.
Per creare l'origine dati esterna, usare il comando T-SQL seguente:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);
Dove:
<ExternalDataSourceName>
è il nome da usare per l'origine dati esterna.<AccountName>
è il nome dell'account ADLS Gen2.<Container>
è il nome del contenitore all'interno dell'account di archiviazione in cui sono archiviati i dati di origine.<Folder>
è la cartella (o il percorso con sottocartelle) in cui i dati di origine vengono archiviati all'interno del contenitore.
Per altre informazioni sulle origini dati esterne, vedere CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Creare il formato di file esterno
Il passaggio successivo consiste nel creare il formato di file esterno. Specifica il layout effettivo dei dati a cui fa riferimento la tabella esterna.
Per creare il formato di file esterno, usare il comando T-SQL seguente. Sostituire <FileFormatName>
con il nome da usare per il formato di file esterno.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
In questo esempio, modificare i parametri, ad FIELD_TERMINATOR
esempio , STRING_DELIMITER
, FIRST_ROW
e altri in base alle esigenze in base ai dati di origine. Per altre opzioni di formattazione e per altre informazioni, vedere CREATE EXTERNAL FILE FORMAT (Transact-SQL).
Creare la tabella esterna
Ora che vengono creati gli oggetti necessari che contengono i metadati per accedere in modo sicuro ai dati esterni, è possibile creare la tabella esterna. Per creare la tabella esterna, usare il comando T-SQL seguente:
-- 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>
);
Dove:
<ExternalTableName>
è il nome da usare per la tabella esterna.<Path>
è il percorso dei dati di origine, rispetto alla posizione specificata nell'origine dati esterna.<ExternalDataSourceName>
è il nome dell'origine dati esterna creata.<FileFormatName>
è il nome del formato di file esterno creato.
Assicurarsi di modificare il nome e lo schema della tabella in base al nome desiderato e allo schema dei dati nei file di origine.
Eseguire una query sulla tabella esterna
A questo punto, vengono creati tutti i metadati necessari per accedere alla tabella esterna. Per testare la tabella esterna, usare una query come l'esempio T-SQL seguente per convalidare il lavoro:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Se tutti gli elementi sono stati configurati correttamente, verranno visualizzati i dati dei dati di origine in seguito a questa query.
Per altre informazioni su CREATE EXTERNAL TABLE
, vedere CREATE EXTERNAL TABLE (Transact-SQL).