Поделиться через


ИЗМЕНИТЬ ВНЕШНИЙ ИСТОЧНИК ДАННЫХ (Transact-SQL)

Применимо к: SQL Server 2016 (13.x) и более поздних версий Управляемогоэкземпляра Базы данных SQL AzureAzure Synapse Analytics Analytics PlatformSystem (PDW)SQL вхранилище Microsoft Fabric вбазе данных SQL Microsoft Fabric в Microsoft Fabric

Изменяет внешний источник данных, используемый для создания внешней таблицы, используемой для функций виртуализации данных PolyBase и данных. Внешний источник данных может быть Hadoop или Хранилище BLOB-объектов Azure (WASBS) для SQL SERVER и Хранилище BLOB-объектов Azure (WASBS) или Azure Data Lake Storage (ABFSS/ADL) для Azure Synapse Analytics.

Начиная с SQL Server 2022 (16.x), внешние источники данных Hadoop больше не поддерживаются. Кроме того, Хранилище BLOB-объектов Azure и префиксы Azure Data Lake 2-го поколения, см. в следующей таблице:

Внешний источник данных С дт. По
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Соглашения о синтаксисе Transact-SQL

Синтаксис

Изменение внешнего источника данных. Синтаксис для SQL Server (2016, 2017 и 2019) и системы платформы аналитики (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
    }  
    [;]  

Измените внешний источник данных, указывающий на хранилище BLOB-объектов Azure. Синтаксис для SQL Server (2017 и 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 ] 

Измените внешний источник данных, указывающий на хранилище BLOB-объектов Azure. Синтаксис для SQL Server 2022 и более поздних версий.

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

Измените внешний источник данных, указывающий на Azure Data Lake Storage (ADLS) 2-го поколения. Синтаксис для SQL Server 2022 и более поздних версий.

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

Измените внешний источник данных, указывающий на хранилище BLOB-объектов Azure или Azure Data Lake Storage. Синтаксис только для выделенного пула SQL 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 ] 

Аргументы

data_source_name

Задает определенное пользователем имя для источника данных. Имя должно быть уникальным.

МЕСТОПОЛОЖЕНИЕ

Предоставляет протокол подключения, путь и порт к внешнему источнику данных. Допустимые параметры расположения см. в разделе CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = IP-адрес<; Порт>

Не применяется к Azure Synapse Analytics и SQL Server 2022 (16.x))

Указывает расположение Hadoop Resource Manager. Если аргумент указан, оптимизатор запросов может выбрать предварительную обработку данных для запросов PolyBase с помощью вычислительных мощностей Hadoop. Это решение, принимаемое на основе стоимости. Оно называется передачей предиката и может значительно сократить объем данных, передаваемых между Hadoop и SQL, повышая производительность запросов.

КВАЛИФИКАЦИЯ = Credential_Name

Указывает именованные учетные данные. См. CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

ТИП = [ HADOOP | BLOB_STORAGE ] **

Применимо к: ТОЛЬКО SQL Server 2017 (14.x) и SQL Server 2019 (15.x).

Только для массовых операций — LOCATION должен быть допустимым URL-адресом хранилища больших двоичных объектов Azure. Не помещайте /в конец URL-адреса параметры подписи, имени файла или подписанного LOCATION URL-адреса.

Учетные данные, которые вы используете, должны быть созданы в SHARED ACCESS SIGNATURE качестве удостоверения. Дополнительные сведения о подписанных URL-адресах см. в статье Использование подписанных URL-адресов.

Замечания

Одновременно можно изменить только один источник. Параллельные запросы на изменение того же источника приводят к помещению одной инструкции в режим ожидания. Однако одновременно можно изменять разные источники. Эта инструкция может выполняться параллельно с другими инструкциями.

В Azure Synapse Analytics подключения к внешним источникам данных, указывающим на Хранилище BLOB-объектов Azure или хранилище Azure Data Lake, поддерживаются только в выделенном пуле SQL.

Разрешения

Требуется разрешение ALTER ANY EXTERNAL DATA SOURCE.

Внимание

Разрешение ALTER ANY EXTERNAL DATA SOURCE предоставляет любому субъекту возможность создания и изменения объекта внешнего источника данных и, таким образом, также предоставляет возможность доступа ко всем учетным данным уровня базы данных в базе данных. Это разрешение следует рассматривать как высоко привилегированное, поэтому его следует предоставлять только доверенным субъектам в системе.

Примеры

В следующем примере изменяется расположение и расположение Resource Manager существующего источника данных.

Не применяется к 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'
    ;

В следующем примере изменяются учетные данные для подключения к источнику данных.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

В следующем примере учетные данные изменяются на новое значение LOCATION. Этот пример — это внешний источник данных, созданный для Azure Synapse Analytics.

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