Aracılığıyla paylaş


HARICI VERI KAYNAĞINI DEĞIŞTIR (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'teki Microsoft Fabric SQL veritabanındaKi Microsoft FabricAmbarı'ndakiSQL analiz uç noktası

PolyBase ve veri sanallaştırma özellikleri için kullanılan dış tablo oluşturmak için kullanılan dış veri kaynağını değiştirir. Dış veri kaynağı, SQL SERVER için Hadoop veya Azure Blob Depolama (WASBS) ve Azure Blob Depolama (WASBS) veya Azure Synapse Analytics için Azure Data Lake storage (ABFSS/ADL) olabilir.

SQL Server 2022'den (16.x) başlayarak Hadoop dış veri kaynakları artık desteklenmiyor. Ayrıca Azure Blob Depolama ve Azure Data Lake 2. Nesil ön ekleri değiştirildiğinde aşağıdaki tabloya bakın:

Dış Veri Kaynağı Kaynak İçin
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Transact-SQL söz dizimi kuralları

Sözdizimi

Dış veri kaynağını değiştirme. SQL Server (2016, 2017 ve 2019) ve Analiz Platformu Sistemi (PDW) için sözdizimi.

-- 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
    }  
    [;]  

Azure Blob depolamayı işaret eden bir dış veri kaynağını değiştirin. SQL Server söz dizimi (2017 ve 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 ] 

Azure Blob depolamayı işaret eden bir dış veri kaynağını değiştirin. SQL Server 2022 ve sonraki sürümlerin söz dizimi.

-- 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. Nesil'e işaret eden bir dış veri kaynağını değiştirin. SQL Server 2022 ve sonraki sürümlerin söz dizimi.

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

Azure Blob Depolama'ya veya Azure Data Lake Storage'a işaret eden bir dış veri kaynağını değiştirin. Yalnızca Azure Synapse Analytics ayrılmış SQL havuzu söz dizimi.

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

Tartışmalar

data_source_name

Veri kaynağı için kullanıcı tanımlı adı belirtir. Ad benzersiz olmalıdır.

KONUM

Dış veri kaynağına bağlantı protokolü, yol ve bağlantı noktası sağlar. Geçerli konum seçenekleri için bkz. CREATE EXTERNAL DATA SOURCE (Transact-SQL).

RESOURCE_MANAGER_LOCATION = '<IP adresi; Bağlantı noktası>'

Azure Synapse Analytics ve SQL Server 2022 (16.x)) için geçerli değildir

Hadoop Resource Manager konumunu belirtir. Belirtildiğinde, sorgu iyileştirici Hadoop'un hesaplama özelliklerini kullanarak PolyBase sorgusu için verileri önceden işlemeyi seçebilir. Bu, maliyet tabanlı bir karardır. Koşul gönderimi olarak adlandırılan bu, Hadoop ile SQL arasında aktarılan veri hacmini önemli ölçüde azaltabilir ve bu nedenle sorgu performansını iyileştirebilir.

CREDENTIAL = Credential_Name

Adlandırılmış kimlik bilgilerini belirtir. Bkz . CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = [ HADOOP | BLOB_STORAGE ] **

Şunlar için geçerlidir: Yalnızca SQL Server 2017 (14.x) ve SQL Server 2019 (15.x).

Yalnızca toplu işlemler için Azure LOCATION Blob depolama url'sinin geçerli olması gerekir. URL'nin sonuna , /dosya adı veya paylaşılan erişim imzası parametreleri koymayın LOCATION .

Kullandığınız kimlik bilgisi, kimlik olarak kullanılarak SHARED ACCESS SIGNATURE oluşturulmalıdır. Paylaşılan erişim imzaları hakkında daha fazla bilgi için bkz. Paylaşılan Erişim İmzalarını (SAS) Kullanma.

Açıklamalar

Aynı anda yalnızca tek bir kaynak değiştirilebilir. Aynı kaynağı değiştirmek için yapılan eşzamanlı istekler bir deyimin beklemesine neden olur. Ancak, farklı kaynaklar aynı anda değiştirilebilir. Bu deyim diğer deyimlerle eşzamanlı olarak çalıştırılabilir.

Azure Synapse Analytics'te, Azure Blob depolamayı veya Azure Data Lake depolamayı işaret eden dış veri kaynaklarına bağlantılar yalnızca ayrılmış SQL havuzunda desteklenir.

İzinler

ALTER ANY EXTERNAL DATA SOURCE izni gerektirir.

Önemli

ALTER ANY EXTERNAL DATA SOURCE izni, herhangi bir sorumluya herhangi bir dış veri kaynağı nesnesi oluşturma ve değiştirme olanağı verir ve bu nedenle, veritabanındaki tüm veritabanı kapsamlı kimlik bilgilerine erişme olanağı da verir. Bu izin yüksek ayrıcalıklı olarak kabul edilmeli ve bu nedenle yalnızca sistemdeki güvenilir sorumlulara verilmelidir.

Örnekler

Aşağıdaki örnek, mevcut bir veri kaynağının konumunu ve Resource Manager konumunu değiştirir.

SQL Server 2022 (16.x) için geçerli değildir.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
     LOCATION = 'hdfs://10.10.10.10:8020',
     RESOURCE_MANAGER_LOCATION = '10.10.10.10:8032'
    ;

Aşağıdaki örnek, mevcut bir veri kaynağına bağlanmak için kimlik bilgilerini değiştirir.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;

Aşağıdaki örnek, kimlik bilgilerini yeni bir LOCATION olarak değiştirir. Bu örnek, Azure Synapse Analytics için oluşturulmuş bir dış veri kaynağıdır.

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