変更する外部データ ソース (TRANSACT-SQL)ALTER EXTERNAL DATA SOURCE (Transact-SQL)

適用対象: ○SQL Server (2016 以降) XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2016) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

外部テーブルを作成するために使用する外部データ ソースを変更します。Modifies an external data source used to create an external table. 外部データ ソースは、Hadoop または Azure blob ストレージ (WASB) にすることができます。The external data source can be Hadoop or Azure blob storage (WASB).

構文Syntax

-- Modify an external data source
-- Applies to: SQL Server (2016 or later)
ALTER EXTERNAL DATA SOURCE data_source_name SET
    {   
        LOCATION = 'server_name_or_IP' [,] |
        RESOURCE_MANAGER_LOCATION = <'IP address;Port'> [,] |
        CREDENTIAL = credential_name
    }  
    [;]  

-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server (starting with 2017)
ALTER EXTERNAL DATA SOURCE data_source_name
    SET
        LOCATION = 'https://storage_account_name.blob.core.windows.net'
        [, CREDENTIAL = credential_name ] 

引数Arguments

data_source_name: データ ソースのユーザー定義の名前を指定します。data_source_name Specifies the user-defined name for the data source. 名前は一意である必要があります。The name must be unique.

LOCATION = 'server_name_or_IP': サーバーまたは IP アドレスの名前を指定します。LOCATION = 'server_name_or_IP' Specifies the name of the server or an IP address.

RESOURCE_MANAGER_LOCATION = '<IP address;Port>': Hadoop リソース マネージャーの場所を指定します。RESOURCE_MANAGER_LOCATION = '<IP address;Port>' Specifies the Hadoop Resource Manager location. 指定した場合、クエリ オプティマイザーは Hadoop の計算の機能を使用して、PolyBase クエリのデータを事前処理こともできます。When specified, the query optimizer might choose to pre-process data for a PolyBase query by using Hadoop's computation capabilities. これは、コストベースの判断です。This is a cost-based decision. 述語のプッシュ ダウンが呼び出されると、この Hadoop と SQL の間で転送されるデータ量を大幅に削減し、クエリのパフォーマンス向上します。Called predicate pushdown, this can significantly reduce the volume of data transferred between Hadoop and SQL, and therefore improve query performance.

CREDENTIAL = Credential_Name: 名前付きの資格情報を指定します。CREDENTIAL = Credential_Name Specifies the named credential. CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)」を参照してください。See CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

TYPE = BLOB_STORAGETYPE = BLOB_STORAGE
適用対象: SQL Server 2017 (14.x)SQL Server 2017 (14.x)」を参照してください。Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x). 一括操作の場合のみ、LOCATION は Azure BLOB ストレージの有効な URL にする必要があります。For bulk operations only, LOCATION must be valid the URL to Azure Blob storage. /、ファイル名、共有アクセス署名パラメーターを LOCATION URL の末尾に入れないでください。Do not put /, file name, or shared access signature parameters at the end of the LOCATION URL. 使用される資格情報は、SHARED ACCESS SIGNATURE を使用して ID として作成する必要があります。The credential used, must be created using SHARED ACCESS SIGNATURE as the identity. Shared Access Signature に関する詳細については、「Shared Access Signature (SAS) を使用」を参照してください。For more information on shared access signatures, see Using Shared Access Signatures (SAS).

RemarksRemarks

一度に 1 つのソースを変更できます。Only single source can be modified at a time. 同時実行の要求を同じソースを変更するには、待機する 1 つのステートメントが発生します。Concurrent requests to modify the same source cause one statement to wait. ただし、さまざまなソースは、同時に変更できます。However, different sources can be modified at the same time. このステートメントは、他のステートメントと同時実行できます。This statement can run concurrently with other statements.

アクセス許可Permissions

任意の外部データ ソースの ALTER 権限が必要です。Requires ALTER ANY EXTERNAL DATA SOURCE permission.

重要

ALTER ANY EXTERNAL DATA SOURCE 権限は、あらゆる外部データ ソース オブジェクトを作成し、変更する能力をプリンシパルに与えます。そのため、データベース上のすべてのデータベース スコープ資格情報にアクセスする能力も与えます。The ALTER ANY EXTERNAL DATA SOURCE permission grants any principal the ability to create and modify any external data source object, and therefore, it also grants the ability to access all database scoped credentials on the database. この権限は特権として考える必要があります。したがって、システム内の信頼できるプリンシパルにのみ与える必要があります。This permission must be considered as highly privileged, and therefore must be granted only to trusted principals in the system.

使用例Examples

次の例では、既存のデータ ソースのリソース マネージャーの場所と場所を変更します。The following example alters the location and resource manager location of an existing data source.

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

次の例では、既存のデータ ソースへの接続に資格情報を変更します。The following example alters the credential to connect to an existing data source.

ALTER EXTERNAL DATA SOURCE hadoop_eds SET
   CREDENTIAL = new_hadoop_user
    ;