Sdílet prostřednictvím


ZMĚNA EXTERNÍHO DATOVÉHO ZDROJE (Transact-SQL)

Platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)koncový bod analýzy SQL ve službě Microsoft FabricWarehouse v databázi Microsoft FabricSQL v Microsoft Fabric

Upraví externí zdroj dat použitý k vytvoření externí tabulky, který se používá pro funkce PolyBase a virtualizace dat. Externím zdrojem dat může být Hadoop nebo Azure Blob Storage (WASBS) pro SQL SERVER a Azure Blob Storage (WASBS) nebo Azure Data Lake Storage (ABFSS/ADL) pro Azure Synapse Analytics.

Od verze SQL Server 2022 (16.x) se už nepodporují externí zdroje dat Hadoop. Také se změnily předpony Azure Blob Storage a Azure Data Lake Gen2, viz následující tabulka:

Externí zdroj dat Od K
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL konvence syntaxe

Syntaxe

Upravte externí zdroj dat. Syntaxe pro SQL Server (2016, 2017 a 2019) a Systém analytických platforem (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
    }  
    [;]  

Upravte externí zdroj dat odkazující na úložiště objektů blob v Azure. Syntaxe pro SQL Server (2017 a 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 ] 

Upravte externí zdroj dat odkazující na úložiště objektů blob v Azure. Syntaxe pro SQL Server 2022 a novější verze

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

Upravte externí zdroj dat odkazující na Azure Data Lake Storage (ADLS) Gen2. Syntaxe pro SQL Server 2022 a novější verze

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

Upravte externí zdroj dat odkazující na Azure Blob Storage nebo Azure Data Lake Storage. Syntaxe pouze vyhrazeného fondu SQL služby 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 ] 

Argumenty

data_source_name

Určuje uživatelem definovaný název zdroje dat. Název musí být jedinečný.

UMÍSTĚNÍ

Poskytuje protokol připojení, cestu a port k externímu zdroji dat. Platné možnosti umístění najdete v tématu CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = "<IP adresa; Port>'

Nevztahuje se na Azure Synapse Analytics a SQL Server 2022 (16.x))

Určuje umístění Hadoop Resource Manageru. Pokud zadáte, může se optimalizátor dotazů rozhodnout, že bude předem zpracovávat data pro dotaz PolyBase pomocí výpočetních funkcí Hadoopu. Jedná se o rozhodnutí na základě nákladů. Označuje se jako predikát pushdown, což může výrazně snížit objem dat přenášených mezi Hadoopem a SQL, a tím zlepšit výkon dotazů.

KVALIFIKACE = Credential_Name

Určuje pojmenované přihlašovací údaje. Viz CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYP = [ HADOOP | BLOB_STORAGE ] **

Platí pro: POUZE SQL Server 2017 (14.x) a SQL Server 2019 (15.x).

Pouze v případě hromadných operací LOCATION musí být platná adresa URL úložiště objektů blob v Azure. Na konec / adresy URL neukládejte LOCATIONparametry, název souboru ani sdílený přístupový podpis.

Přihlašovací údaje, které použijete, musí být vytvořeny jako SHARED ACCESS SIGNATURE identita. Další informace o sdílených přístupových podpisech najdete v tématu Použití sdílených přístupových podpisů (SAS).

Poznámky

Najednou je možné upravit pouze jeden zdroj. Souběžné žádosti o změnu stejného zdroje způsobí, že jeden příkaz počká. Různé zdroje je však možné upravovat současně. Tento příkaz může běžet souběžně s jinými příkazy.

Ve službě Azure Synapse Analytics se připojení k externím zdrojům dat odkazující na Úložiště objektů blob Azure nebo Azure Data Lake Storage podporují pouze ve vyhrazeném fondu SQL.

Povolení

Vyžaduje oprávnění ALTER ANY EXTERNAL DATA SOURCE.

Důležité

Oprávnění ALTER ANY EXTERNAL DATA SOURCE uděluje každému objektu objektu externího zdroje dat možnost vytvářet a upravovat všechny objekty externího zdroje dat, a proto také umožňuje přístup ke všem přihlašovacím údajům v databázi s vymezeným oborem databáze. Toto oprávnění musí být považováno za vysoce privilegované, a proto musí být uděleno pouze důvěryhodným objektům zabezpečení v systému.

Příklady

Následující příklad změní umístění a umístění Resource Manageru existujícího zdroje dat.

Nevztahuje se na 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'
    ;

Následující příklad změní přihlašovací údaje pro připojení k existujícímu zdroji dat.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

Následující příklad změní přihlašovací údaje na nové UMÍSTĚNÍ. Tento příklad je externím zdrojem dat vytvořeným pro Azure Synapse Analytics.

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