Delen via


ALTER EXTERNAL DATA SOURCE (Transact-SQL)

van toepassing op: SQL Server 2016 (13.x) en hoger Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Hiermee wijzigt u een externe gegevensbron die wordt gebruikt voor het maken van een externe tabel, die wordt gebruikt voor polybase- en gegevensvirtualisatiefuncties. De externe gegevensbron kan Hadoop of Azure Blob Storage (WASBS) zijn voor SQL SERVER en Azure Blob Storage (WASBS) of Azure Data Lake Storage (ABFSS/ADL) voor Azure Synapse Analytics.

Vanaf SQL Server 2022 (16.x) worden externe Hadoop-gegevensbronnen niet meer ondersteund. Azure Blob Storage en Azure Data Lake Gen 2-voorvoegsels zijn ook gewijzigd, raadpleegt u de volgende tabel:

Externe gegevensbron Van Tot
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL syntaxis-conventies

Syntaxis

Een externe gegevensbron wijzigen. Syntaxis voor SQL Server (2016, 2017 en 2019) en Analytics Platform System (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
    }  
    [;]  

Wijzig een externe gegevensbron die verwijst naar Azure Blob Storage. Syntaxis voor SQL Server (2017 en 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 ] 

Wijzig een externe gegevensbron die verwijst naar Azure Blob Storage. Syntaxis voor SQL Server 2022 en latere versies.

-- 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 ] 

Wijzig een externe gegevensbron die verwijst naar Azure Data Lake Storage (ADLS) Gen2. Syntaxis voor SQL Server 2022 en latere versies.

-- 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 ] 

Wijzig een externe gegevensbron die verwijst naar Azure Blob Storage of Azure Data Lake Storage. Syntaxis alleen voor toegewezen SQL-pool van Azure Synapse Analytics.

-- 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 ] 

Argumenten

data_source_name

Hiermee geeft u de door de gebruiker gedefinieerde naam voor de gegevensbron op. De naam moet uniek zijn.

LOCATIE

Biedt het connectiviteitsprotocol, het pad en de poort naar de externe gegevensbron. Zie CREATE EXTERNAL DATA SOURCE (Transact-SQL) voor geldige locatieopties.

RESOURCE_MANAGER_LOCATION = '<IP-adres; Poort>'

Is niet van toepassing op Azure Synapse Analytics en SQL Server 2022 (16.x))

Hiermee geeft u de Hadoop Resource Manager-locatie. Wanneer dit is opgegeven, kan de queryoptimalisatie ervoor kiezen om gegevens vooraf te verwerken voor een PolyBase-query met behulp van de rekenmogelijkheden van Hadoop. Dit is een beslissing op basis van kosten. Pushdown predicaat wordt genoemd, dit kan het volume van gegevens dat wordt overgedragen tussen Hadoop en SQL aanzienlijk verminderen en de queryprestaties verbeteren.

CREDENTIAL = Credential_Name

Hiermee geeft u de benoemde referentie. Zie CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

Van toepassing op: ALLEEN SQL Server 2017 (14.x) en SQL Server 2019 (15.x).

Alleen voor bulkbewerkingen LOCATION moet de URL naar Azure Blob Storage geldig zijn. Plaats /geen handtekeningparameters voor gedeelde toegang aan het einde van de LOCATION URL.

De referenties die u gebruikt, moeten worden gemaakt met behulp van SHARED ACCESS SIGNATURE de identiteit. Zie Shared Access Signatures (SAS) gebruiken voor meer informatie over handtekeningen voor gedeelde toegang.

Opmerkingen

Er kan slechts één bron tegelijk worden gewijzigd. Gelijktijdige aanvragen om dezelfde bron te wijzigen, zorgen ervoor dat één instructie wacht. Verschillende bronnen kunnen echter tegelijkertijd worden gewijzigd. Deze instructie kan gelijktijdig worden uitgevoerd met andere instructies.

In Azure Synapse Analytics worden verbindingen met externe gegevensbronnen die verwijzen naar Azure Blob Storage of Azure Data Lake Storage alleen ondersteund in een toegewezen SQL-pool.

Machtigingen

Vereist ALTER ANY EXTERNAL DATA SOURCE permission.

Belangrijk

Met de machtiging ALTER ANY EXTERNAL DATA SOURCE verleent elke principal de mogelijkheid om een extern gegevensbronobject te maken en te wijzigen, waardoor het ook de mogelijkheid verleent om toegang te krijgen tot alle referenties binnen het databasebereik. Deze machtiging moet worden beschouwd als zeer bevoegd en moet daarom alleen worden verleend aan vertrouwde principals in het systeem.

Voorbeelden

In het volgende voorbeeld worden de locatie en Resource Manager-locatie van een bestaande gegevensbron gewijzigd.

Is niet van toepassing op 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'
    ;

In het volgende voorbeeld wordt de referentie gewijzigd om verbinding te maken met een bestaande gegevensbron.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

In het volgende voorbeeld wordt de referentie gewijzigd in een nieuwe LOCATIE. Dit voorbeeld is een externe gegevensbron die is gemaakt voor Azure Synapse Analytics.

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