Dela via


ÄNDRA EXTERN DATAKÄLLA (Transact-SQL)

gäller för: SQL Server 2016 (13.x) och senare Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ändrar en extern datakälla som används för att skapa en extern tabell som används för PolyBase- och datavirtualiseringsfunktioner. Den externa datakällan kan vara Hadoop eller Azure Blob Storage (WASBS) för SQL SERVER och Azure Blob Storage (WASBS) eller Azure Data Lake Storage (ABFSS/ADL) för Azure Synapse Analytics.

Från och med SQL Server 2022 (16.x) stöds inte längre hadoop-externa datakällor. Dessutom har Azure Blob Storage och Azure Data Lake Gen 2-prefix ändrats, se följande tabell:

Extern datakälla Från Till
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL syntaxkonventioner

Syntax

Ändra en extern datakälla. Syntax för SQL Server (2016, 2017 och 2019) och 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
    }  
    [;]  

Ändra en extern datakälla som pekar på Azure Blob Storage. Syntax för SQL Server (2017 och 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 ] 

Ändra en extern datakälla som pekar på Azure Blob Storage. Syntax för SQL Server 2022 och senare versioner.

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

Ändra en extern datakälla som pekar på Azure Data Lake Storage (ADLS) Gen2. Syntax för SQL Server 2022 och senare versioner.

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

Ändra en extern datakälla som pekar på Azure Blob Storage eller Azure Data Lake Storage. Syntax för endast dedikerad SQL-pool i 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 ] 

Argumentpunkter

data_source_name

Anger det användardefinierade namnet på datakällan. Namnet måste vara unikt.

PLATS

Tillhandahåller anslutningsprotokoll, sökväg och port till den externa datakällan. Se SKAPA EXTERN DATAKÄLLA (Transact-SQL) för giltiga platsalternativ.

RESOURCE_MANAGER_LOCATION = "<IP-adress; Port>'

Gäller inte för Azure Synapse Analytics och SQL Server 2022 (16.x))

Anger platsen för Hadoop Resource Manager. När det anges kan frågeoptimeraren välja att förbearbeta data för en PolyBase-fråga med hjälp av Hadoops beräkningsfunktioner. Det här är ett kostnadsbaserat beslut. Detta kallas för predikat-pushdown och kan avsevärt minska mängden data som överförs mellan Hadoop och SQL och därmed förbättra frågeprestandan.

CREDENTIAL = Credential_Name

Anger den namngivna autentiseringsuppgiften. Se CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

Gäller för: ENDAST SQL Server 2017 (14.x) och SQL Server 2019 (15.x).

Endast för massåtgärder LOCATION måste url:en vara giltig för Azure Blob Storage. Ange /inte parametrarna , filnamn eller signatur för delad åtkomst i slutet av LOCATION URL:en.

De autentiseringsuppgifter som du använder måste skapas med hjälp av SHARED ACCESS SIGNATURE som identitet. Mer information om signaturer för delad åtkomst finns i Använda signaturer för delad åtkomst (SAS).

Anmärkningar

Endast en enda källa kan ändras i taget. Samtidiga begäranden om att ändra samma källa gör att en instruktion väntar. Olika källor kan dock ändras samtidigt. Den här instruktionen kan köras samtidigt med andra instruktioner.

I Azure Synapse Analytics stöds endast anslutningar till externa datakällor som pekar på Azure Blob Storage eller Azure Data Lake Storage i en dedikerad SQL-pool.

Behörigheter

Kräver ALTER ANY EXTERNAL DATA SOURCE permission (ÄNDRA BEHÖRIGHET FÖR EXTERN DATAKÄLLA).

Viktigt!

Behörigheten ALTER ANY EXTERNAL DATA SOURCE ger alla huvudnamn möjlighet att skapa och ändra alla externa datakällans objekt, och därför ger det också möjlighet att komma åt alla databasomfattningsautentiseringsuppgifter i databasen. Den här behörigheten måste betraktas som högprivilegierad och måste därför endast beviljas betrodda huvudnamn i systemet.

Exempel

I följande exempel ändras platsen och Resource Manager-platsen för en befintlig datakälla.

Gäller inte för 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'
    ;

I följande exempel ändras autentiseringsuppgifterna för att ansluta till en befintlig datakälla.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

I följande exempel ändras autentiseringsuppgifterna till en ny PLATS. Det här exemplet är en extern datakälla som skapats för Azure Synapse Analytics.

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