Partager via


Tutoriel : charger des données externes avec Microsoft Entra ID

Cet article explique comment créer des tables externes à l’aide de l’authentification directe Microsoft Entra ID.

Prérequis

Vous avez besoin des ressources suivantes pour suivre ce tutoriel :

  • Un espace de travail Azure Synapse Analytics et un pool SQL dédié

Accorder au compte Microsoft Entra ID l’accès au compte de stockage

Cet exemple utilise un compte (ou un groupe) Microsoft Entra ID pour l’authentification auprès des données sources.

Pour activer l’accès aux données sur des comptes Azure Data Lake Storage (ADLS) Gen2, vous devez accorder à votre compte (ou groupe) Microsoft Entra ID l’accès au compte source. Pour accorder les autorisations appropriées, effectuez les étapes suivantes :

  1. Dans le portail Azure, recherchez votre compte de stockage.
  2. Sélectionnez Stockage de données ->Conteneurs, puis accédez au dossier contenant les données sources auxquelles la table externe doit accéder.
  3. Sélectionnez Contrôle d’accès (IAM) .
  4. Sélectionnez Ajouter -> Ajouter une attribution de rôle.
  5. Dans la liste des rôles de fonction de tâche, sélectionnez Lecteur des données Blob du stockage, puis Suivant.
  6. Dans la page Ajouter une attribution de rôle, sélectionnez + Sélectionner des membres. Le volet Sélectionner des membres s’ouvre dans le coin droit.
  7. Tapez le nom du compte Microsoft Entra ID souhaité. Lorsqu’il s’affiche, sélectionnez le compte souhaité et choisissez Sélectionner.
  8. Dans la page Ajouter une attribution de rôle, vérifiez que la liste des membres inclut le compte Microsoft Entra ID souhaité. Une fois la vérification effectuée, sélectionnez Vérifier + attribuer.
  9. Dans la page de confirmation, passez en revue les modifications et sélectionnez Vérifier + attribuer.

Le compte ou le groupe Microsoft Entra ID est désormais membre du rôle Lecteur des données Blob du stockage et a accès au dossier source.

Ingérer des données avec COPY INTO

L’instruction T-SQL COPY INTO fournit une ingestion des données flexible et à haut débit dans vos tables. Il s’agit de la principale stratégie d’ingestion des données dans les tables de votre pool SQL dédié. Elle permet aux utilisateurs d’ingérer des données à partir d’emplacements externes sans avoir à créer les objets de base de données supplémentaires requis pour les tables externes.

L’instruction COPY INTO utilise l’argument CREDENTIAL pour spécifier la méthode d’authentification utilisée pour se connecter au compte source. Toutefois, si vous utilisez Microsoft Entra ID ou un compte de stockage public pour l’authentification, il n’est pas nécessaire de spécifier CREDENTIAL. Pour exécuter l’instruction COPY INTO à l’aide d’une identité managée par l’espace de travail pour l’authentification, utilisez la commande T-SQL suivante :

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

Où :

  • <TableName> est le nom de la table dans laquelle ingérer des données.
  • <AccountName> est le nom de votre compte ADLS Gen2.
  • <Container> est le nom du conteneur dans votre compte de stockage où les données sources sont stockées.
  • <Folder> est le dossier (ou le chemin d’accès avec des sous-dossiers) où les données sources sont stockées dans votre conteneur. Vous pouvez également fournir un nom de fichier si vous pointez directement vers un seul fichier.
  • <CopyIntoOptions> est la liste de toutes les autres options que vous souhaitez fournir à l’instruction COPY INTO.

Pour en savoir plus et explorer la syntaxe complète, consultez COPY INTO (Transact-SQL).

Créer les objets de base de données requis

Les tables externes nécessitent la création des objets suivants :

  1. Une source de données externe qui pointe vers le dossier source
  2. Un format de fichier externe qui définit le format des fichiers sources
  3. Une définition de table externe utilisée pour les requêtes

Pour suivre ces étapes, vous devez utiliser l’éditeur SQL dans l’Espace de travail Azure Synapse ou votre client SQL préféré connecté à votre pool SQL dédié. Examinons ces étapes en détail.

Créer la source de données externe

L’étape suivante consiste à créer une source de données externe qui spécifie où résident les données sources utilisées par la table externe.

Pour créer la source de données externe, utilisez la commande T-SQL suivante :

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

Où :

  • <ExternalDataSourceName> est le nom que vous souhaitez utiliser pour votre source de données externe.
  • <AccountName> est le nom de votre compte ADLS Gen2.
  • <Container> est le nom du conteneur dans votre compte de stockage où les données sources sont stockées.
  • <Folder> est le dossier (ou le chemin d’accès avec des sous-dossiers) où les données sources sont stockées dans votre conteneur.

Pour en savoir plus sur les sources de données externes, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL).

Créer le format de fichier externe

L’étape suivante consiste à créer le format de fichier externe. Il spécifie la disposition réelle des données référencées par la table externe.

Pour créer le format de fichier externe, utilisez la commande T-SQL suivante. Remplacez <FileFormatName> par le nom que vous souhaitez utiliser pour votre format de fichier externe.

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

Dans cet exemple, ajustez les paramètres tels que FIELD_TERMINATOR, STRING_DELIMITER et FIRST_ROW en fonction des besoins, conformément à vos données sources. Pour découvrir d’autres options de mise en forme et en savoir plus, consultez CREATE EXTERNAL FILE FORMAT (Transact-SQL).

Créer la table externe

Une fois les objets nécessaires créés, ces objets contenant les métadonnées pour accéder de manière sécurisée aux données externes, il est temps de créer la table externe. Pour créer la table externe, utilisez la commande T-SQL suivante :

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

Où :

Veillez à ajuster le nom de la table et le schéma en fonction du nom souhaité et du schéma des données dans vos fichiers sources.

À ce stade, toutes les métadonnées requises pour accéder à la table externe sont créées. Pour tester votre table externe, utilisez une requête telle que celle de l’exemple T-SQL suivant pour valider votre travail :

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

Si tout a été configuré correctement, vous devriez voir les données de vos données sources à la suite de l’exécution de cette requête.

Pour plus d’informations sur CREATE EXTERNAL TABLE, consultez CREATE EXTERNAL TABLE (Transact-SQL).