Partager via


MODIFIER LA SOURCE DE DONNÉES EXTERNE (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures d’Azure SQL Database Azure SQLManaged InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)SQL Analytics Endpoint in Microsoft FabricWarehouse dans Microsoft FabricSQL Database dans Microsoft Fabric SQL Database dans Microsoft Fabric

Modifie une source de données externe utilisée pour créer une table externe, utilisée pour les fonctionnalités de virtualisation de données et PolyBase. La source de données externe peut être un stockage Hadoop ou Stockage Blob Azure (WASBS) pour SQL SERVER et Stockage Blob Azure (WASBS) ou Azure Data Lake (ABFSS/ADL) pour Azure Synapse Analytics.

À compter de SQL Server 2022 (16.x), les sources de données externes Hadoop ne sont plus prises en charge. En outre, les préfixes du Stockage Blob Azure et d’Azure Data Lake Gen2 ont changé (cf. tableau suivant) :

Source de données externe Du À
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Conventions de la syntaxe Transact-SQL

Syntaxe

Modifiez une source de données externe. Syntaxe pour SQL Server (2016, 2017 et 2019) et système de plateforme d’analyse (PDW).

-- Modify an external data source
-- Applies to: SQL Server (2016, 2017 and 2019) and APS
ALTER EXTERNAL DATA SOURCE data_source_name SET
    {   
        LOCATION = '<prefix>://<path>[:<port>]' [,] |
        RESOURCE_MANAGER_LOCATION = <'IP address;Port'> [,] |
        CREDENTIAL = credential_name
    }  
    [;]  

Modifiez une source de données externe pointant vers le stockage Blob Azure. Syntaxe pour SQL Server (2017 et 2019).

-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server (2017 and 2019)
ALTER EXTERNAL DATA SOURCE data_source_name
    SET
        LOCATION = 'https://storage_account_name.blob.core.windows.net'
        [, CREDENTIAL = credential_name ] 

Modifiez une source de données externe pointant vers le stockage Blob Azure. Syntaxe pour SQL Server 2022 et versions ultérieures.

-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
    SET
        LOCATION = 'abs://storage_account_name.blob.core.windows.net'
        [, CREDENTIAL = credential_name ] 

Modifiez une source de données externe pointant vers Azure Data Lake Storage (ADLS) Gen2. Syntaxe pour SQL Server 2022 et versions ultérieures.

-- Modify an external data source pointing to Azure Data Lake Storage Gen2
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
    SET
        LOCATION = 'adls://storage_account_name.dfs.core.windows.net'
        [, CREDENTIAL = credential_name ] 

Modifiez une source de données externe pointant vers stockage Blob Azure ou Azure Data Lake Storage. Syntaxe du pool SQL dédié Azure Synapse Analytics uniquement.

-- Modify an external data source pointing to Azure Blob storage or Azure Data Lake storage
-- Applies to: Azure Synapse Analytics dedicated SQL pool only
ALTER EXTERNAL DATA SOURCE data_source_name
    SET
        [LOCATION = '<location prefix>://<location path>']
        [, CREDENTIAL = credential_name ] 

Les arguments

data_source_name

Spécifie le nom défini par l’utilisateur de la source de données. Le nom doit être unique.

EMPLACEMENT

Fournit le protocole de connectivité, le chemin et le port vers la source de données externe. Pour connaître les options d’emplacement valides, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = '<Adresse IP ; Port>'

Ne s’applique pas à Azure Synapse Analytics et SQL Server 2022 (16.x))

Spécifie l’emplacement Hadoop Resource Manager. S’il est spécifié, l’optimiseur de requête peut choisir de prétraiter les données d’une requête PolyBase en utilisant les fonctionnalités de calcul d’Hadoop. C’est une décision basée sur les coûts. Appelée pushdown de prédicats, cette opération peut considérablement réduire le volume des données transférées entre Hadoop et SQL, et donc améliorer les performances des requêtes.

DIPLÔME = Credential_Name

Spécifie les informations d’identification nommées. Cf. CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

S’applique à : SQL Server 2017 (14.x) et SQL Server 2019 (15.x) uniquement.

Pour les opérations en bloc uniquement, LOCATION doit être valide dans l’URL vers le stockage Blob Azure. Ne placez pas de paramètres de signature d’accès /partagé, de nom de fichier ou d’accès partagé à la fin de l’URL LOCATION .

Les informations d’identification utilisées doivent être créées avec l’identité SHARED ACCESS SIGNATURE. Pour plus d’informations sur les signatures d’accès partagé, consultez Utilisation des signatures d’accès partagé (SAP).

Notes

Une seule une source peut être modifiée à la fois. Des demandes simultanées de modifications de la même source provoquent l’attente d’une instruction. Toutefois, différentes sources peuvent être modifiés en même temps. Cette instruction peut s’exécuter en même temps que d’autres instructions.

Dans Azure Synapse Analytics, les connexions à des sources de données externes pointant vers le Stockage Blob Azure ou Azure Data Lake Storage sont prises en charge dans le pool SQL dédié uniquement.

Autorisations

Exige l’autorisation ALTER ANY EXTERNAL DATA SOURCE.

Important

L’autorisation ALTER ANY EXTERNAL DATA SOURCE accorde à n’importe quel principal la possibilité de créer et de modifier tout objet de source de données externe. Par conséquent, elle permet également d’accéder à toutes les informations d’identification délimitées à la base de données. Cette autorisation doit être considérée comme fournissant des privilèges très élevés, et doit donc être accordée uniquement aux principaux de confiance du système.

Exemples

L’exemple suivant modifie l’emplacement d’une source de données existante ainsi que celui de son gestionnaire de ressources.

Ne s’applique pas à SQL Server 2022 (16.x).

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
     LOCATION = 'hdfs://10.10.10.10:8020',
     RESOURCE_MANAGER_LOCATION = '10.10.10.10:8032'
    ;

L’exemple suivant modifie les informations d’identification permettant de se connecter à une source de données existante.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

L’exemple suivant modifie les informations d’identification vers un nouvel emplacement. Cet exemple est une source de données externe créée pour Azure Synapse Analytics.

ALTER EXTERNAL DATA SOURCE AzureStorage_west SET
   LOCATION = 'wasbs://loadingdemodataset@updatedproductioncontainer.blob.core.windows.net',
   CREDENTIAL = AzureStorageCredential