Freigeben über


ALTER EXTERNAL DATA SOURCE (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Ändert eine externe Datenquelle, die zum Erstellen einer externen Tabelle verwendet wird, die für PolyBase- und Datenvirtualisierungsfeatures verwendet wird. Bei der externen Datenquelle kann es sich um Hadoop oder Azure Blob Storage (WASBS) für SQL Server und Azure Blob Storage (WASBS) oder um Azure Data Lake Storage (ABFSS/ADL) für Azure Synapse Analytics handeln.

Ab SQL Server 2022 (16.x) werden externe Datenquellen von Hadoop nicht mehr unterstützt. Außerdem wurden Azure Blob Storage und Azure Data Lake Gen2-Präfixe geändert. Sie die folgende Tabelle:

Externe Datenquelle Von Beschreibung
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL-Syntaxkonventionen

Syntax

Ändern einer externen Datenquelle. Syntax für SQL Server (2016, 2017 und 2019) und 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
    }  
    [;]  

Ändern Sie eine externe Datenquelle, die auf Azure Blob Storage verweist. Syntax für SQL Server (2017 und 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 ] 

Ändern Sie eine externe Datenquelle, die auf Azure Blob Storage verweist. Syntax für SQL Server 2022 und höhere Versionen.

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

Ändern Sie eine externe Datenquelle, die auf Azure Data Lake Storage (ADLS) Gen2 verweist. Syntax für SQL Server 2022 und höhere Versionen.

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

Ändern Sie eine externe Datenquelle, die auf Azure Blob Storage oder Azure Data Lake Storage verweist. Syntax nur für dedizierten SQL-Pool für 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 ] 

Argumente

data_source_name

Gibt den benutzerdefinierten Namen für die Datenquelle an. Der Name muss eindeutig sein.

LAGERPLATZ

Stellt das Verbindungsprotokoll, den Pfad und den Port zur externen Datenquelle bereit. Weitere Informationen über gültige Speicherortoptionen finden Sie unter CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = '<IP-Adresse; Port>'

Gilt nicht für Azure Synapse Analytics und SQL Server 2022 (16.x))

Gibt den Hadoop Resource Manager-Speicherort an. Wenn angegeben, kann der Abfrageoptimierer festlegen, dass Daten für eine PolyBase-Abfrage mithilfe der Berechnungsfunktionen von Hadoop vorverarbeitet werden. Dies ist eine kostenbasierte Entscheidung. Dies wird Prädikatweitergabe genannt und kann die Menge der zwischen Hadoop und SQL übertragenen Daten deutlich reduzieren und damit die Abfrageleistung verbessern.

ANMELDEINFORMATIONEN = Credential_Name

Gibt die benannten Anmeldeinformationen an. Siehe CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

Gilt für: Nur SQL Server 2017 (14.x) und SQL Server 2019 (15.x).

Nur bei Massenvorgängen muss LOCATION die gültige URL für den Azure Blob Storage sein. Fügen /Sie am Ende der LOCATION URL keine Parameter für die Signatur für den freigegebenen Zugriff, keinen Dateinamen oder keine freigegebenen Zugriffssignaturparameter ein.

Die verwendeten Anmeldeinformationen müssen mithilfe von SHARED ACCESS SIGNATURE als Identität erstellt werden. Weitere Informationen zu SAS finden Sie unter Verwenden von Shared Access Signatures (SAS).

Bemerkungen

Es kann immer jeweils nur eine Quelle geändert werden. Gleichzeitige Anforderungen zur Änderung derselben Quelle führen dazu, dass eine Anweisung warten muss. Unterschiedliche Quellen können jedoch gleichzeitig geändert werden. Diese Anweisung kann gleichzeitig mit anderen Anweisungen ausgeführt werden.

In Azure Synapse Analytics werden Verbindungen mit externen Datenquellen, die auf Azure Blob Storage oder Azure Data Lake Storage verweisen, nur in dedizierten SQL-Pools unterstützt.

Berechtigungen

Erfordert eine ALTER ANY EXTERNAL DATA SOURCE-Berechtigung.

Wichtig

Mit der Berechtigung ALTER ANY EXTERNAL DATA SOURCE besitzt jeder Prinzipal die Fähigkeit, beliebige externe Datenquellenobjekte zu erstellen und zu ändern. Damit ist auch der Zugriff auf alle datenbankweit gültigen Anmeldeinformationen der Datenbank möglich. Da es sich hierbei um eine weitreichende Berechtigung handelt, darf sie nur vertrauenswürdigen Prinzipalen innerhalb des Systems erteilt werden.

Beispiele

Im folgenden Beispiel wird der Speicherort und der Resource Manager-Speicherort einer vorhandenen Datenquelle geändert.

Gilt nicht 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'
    ;

Im folgenden Beispiel werden die Anmeldeinformationen zur Verbindung mit einer vorhandenen Datenquelle geändert.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

Im folgenden Beispiel werden die Anmeldeinformationen in einen neuen Speicherort geändert. Bei diesem Beispiel handelt es sich um einer externe Datenquelle für Azure Synapse Analytics.

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