Udostępnij za pośrednictwem


ALTER EXTERNAL DATA SOURCE (Transact-SQL)

Dotyczy: SQL Server 2016 (13.x) i nowszych Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Modyfikuje zewnętrzne źródło danych używane do tworzenia tabeli zewnętrznej używanej do obsługi technologii PolyBase i funkcji wirtualizacji danych. Zewnętrzne źródło danych to Hadoop lub Azure Blob Storage (WASBS) dla programu SQL SERVER i usługi Azure Blob Storage (WASBS) lub Azure Data Lake Storage (ABFSS/ADL) dla usługi Azure Synapse Analytics.

Począwszy od programu SQL Server 2022 (16.x), zewnętrzne źródła danych usługi Hadoop nie są już obsługiwane. Ponadto zmieniono prefiksy usługi Azure Blob Storage i Azure Data Lake Gen 2, zapoznaj się z następującą tabelą:

Zewnętrzne źródło danych Źródło Do
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL konwencje składni

Składnia

Modyfikowanie zewnętrznego źródła danych. Składnia dla programów SQL Server (2016, 2017 i 2019) i 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
    }  
    [;]  

Zmodyfikuj zewnętrzne źródło danych wskazujące usługę Azure Blob Storage. Składnia dla programu SQL Server (2017 i 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 ] 

Zmodyfikuj zewnętrzne źródło danych wskazujące usługę Azure Blob Storage. Składnia dla programu SQL Server 2022 i nowszych wersji.

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

Zmodyfikuj zewnętrzne źródło danych wskazujące na usługę Azure Data Lake Storage (ADLS) Gen2. Składnia dla programu SQL Server 2022 i nowszych wersji.

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

Zmodyfikuj zewnętrzne źródło danych wskazujące usługę Azure Blob Storage lub Azure Data Lake Storage. Składnia tylko dedykowanej puli SQL usługi 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 (w programowaniu)

data_source_name

Określa nazwę zdefiniowaną przez użytkownika dla źródła danych. Nazwa musi być unikatowa.

LOKALIZACJA

Udostępnia protokół łączności, ścieżkę i port do zewnętrznego źródła danych. Aby uzyskać prawidłowe opcje lokalizacji, zobacz CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = "<Adres IP; Port>"

Nie dotyczy usług Azure Synapse Analytics i SQL Server 2022 (16.x))

Określa lokalizację usługi Hadoop Resource Manager. Po określeniu optymalizator zapytań może zdecydować się na wstępne przetwarzanie danych dla zapytania PolyBase przy użyciu możliwości obliczeniowych usługi Hadoop. Jest to decyzja oparta na kosztach. Nazywane wypychaniem predykatu może to znacząco zmniejszyć ilość danych przesyłanych między usługą Hadoop i bazą danych SQL, a tym samym zwiększyć wydajność zapytań.

CREDENTIAL = Credential_Name

Określa nazwane poświadczenia. Zobacz CREATE DATABASE SCOPED CREDENTIAL (CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

Dotyczy: Tylko programy SQL Server 2017 (14.x) i SQL Server 2019 (15.x).

Tylko w przypadku operacji zbiorczych LOCATION adres URL usługi Azure Blob Storage musi być prawidłowy. Nie umieszczaj /parametrów , nazwy pliku ani sygnatury dostępu współdzielonego na końcu LOCATION adresu URL.

Używane poświadczenia należy utworzyć przy użyciu SHARED ACCESS SIGNATURE jako tożsamości. Aby uzyskać więcej informacji na temat sygnatur dostępu współdzielonego, zobacz Używanie sygnatur dostępu współdzielonego (SAS).

Uwagi

Jednocześnie można modyfikować tylko jedno źródło. Współbieżne żądania modyfikowania tego samego źródła powodują oczekiwanie jednej instrukcji. Jednak różne źródła można modyfikować w tym samym czasie. Ta instrukcja może działać współbieżnie z innymi instrukcjami.

W usłudze Azure Synapse Analytics połączenia z zewnętrznymi źródłami danych wskazującym na usługę Azure Blob Storage lub Azure Data Lake Storage są obsługiwane tylko w dedykowanej puli SQL.

Uprawnienia

Wymaga uprawnienia ALTER ANY EXTERNAL DATA SOURCE.

Ważne

Uprawnienie ALTER ANY EXTERNAL DATA SOURCE przyznaje każdemu podmiotowi zabezpieczeń możliwość tworzenia i modyfikowania dowolnego zewnętrznego obiektu źródła danych, a w związku z tym przyznaje również możliwość dostępu do wszystkich poświadczeń w zakresie bazy danych. To uprawnienie musi być uznawane za wysoce uprzywilejowane i dlatego musi zostać przyznane tylko zaufanym podmiotom zabezpieczeń w systemie.

Przykłady

Poniższy przykład zmienia lokalizację i lokalizację usługi Resource Manager istniejącego źródła danych.

Nie dotyczy programu 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'
    ;

Poniższy przykład zmienia poświadczenia w celu nawiązania połączenia z istniejącym źródłem danych.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

Poniższy przykład zmienia poświadczenie na nową lokalizację. W tym przykładzie jest zewnętrzne źródło danych utworzone dla usługi Azure Synapse Analytics.

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