説明
このステートメントは、Locationオブジェクトのプロパティを変更するために使用します。
説明
OceanBaseデータベースV4.4.x系では、V4.4.1バージョンから ALTER LOCATION ステートメントがサポートされています。
権限要件
実行権限:
ALTER LOCATIONステートメントを実行するには、現在のユーザーがCREATE LOCATION権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。認証資格権限:
提供された
ACCESSIDとACCESSKEYは、ターゲットストレージサービスへの合法的なアクセス権限を持っている必要があります。
構文
ALTER LOCATION location_name SET
{URL = 'file_path'
| CREDENTIAL = (credential_list)
};
credential_list:
ACCESSID = 'string'
ACCESSKEY = 'string'
HOST = 'string'
[S3_REGION = 'string']
[PRINCIPAL = 'string']
[KEYTAB = 'string']
[KRB5CONF = 'string']
[CONFIGS = 'string']
[USERNAME = 'string']
パラメータ説明
パラメータ |
説明 |
|---|---|
| location_name | 変更対象のLocationオブジェクト名を表します。 |
| URL = 'file_path' | 外部ストレージパスを変更するために使用します。詳細については、以下の file_path を参照してください。 |
| CREDENTIAL | HDFSまたはオブジェクトストレージへのアクセスパスを変更するために必要な情報を表します。詳細については、以下の credential_list を参照してください。 |
file_path
外部テーブルファイルの保存パスには、以下の形式があります:
ローカルパスの形式:
URL = '[file:// | sfile://] local_file_path'file://:このプロトコルヘッダーは、複数のOBServerノードで同じ論理パスのファイルに遭遇した場合、それぞれ異なるファイルとして扱われ、個別に処理されることを示します。各ノードはローカルパス下のファイルを独立して読み取ります。sfile://:このプロトコルヘッダーは、複数のOBServerノードで同じ論理パスのファイルに遭遇した場合、システムが論理パスに基づいて重複処理を行い、データを1部しか読み取らないようにすることを示します(マルチサーバーロードバランシングをサポートします)。注意
sfile://を使用する場合、システムはファイルサイズの一貫性検証を実行します。同一の論理パス下にあるファイルが異なるOBServerノード上でサイズが一致しない場合、システムはデータの不整合による結果の誤りを防ぐために、OB_INVALID_EXTERNAL_FILEエラーを返します。- V4.4.2バージョンでは、V4.4.2 BP2バージョンから
ALTER LOCATION構文のローカルURLパス形式にsfile://プロトコルヘッダーのサポートが追加されました。
local_file_path:相対パスまたは絶対パスを指定できます。
HDFSパス形式は次のとおりです:
URL = 'hdfs://localhost:port/PATH'。ここで、localhostはHDFSのアドレス、portはHDFSのポート番号、PATHはHDFS内のディレクトリパスを指します。オブジェクトストレージ(OSS/S3)パス形式は次のとおりです:
URL = '{oss | s3}://bucket/remote_file_path'。
注意
Locationオブジェクトを作成するパスには、パラメータを含めないでください。
credential_list
ACCESSID:オブジェクトストレージへのアクセスユーザーAccessKey IDを変更するために使用します。ACCESSKEY:オブジェクトストレージへのアクセスユーザーAccessKey Secretを変更するために使用します。HOST:オブジェクトストレージサービスのホストアドレスを変更するために使用します。S3_REGION:オプションです。S3オブジェクトストレージのサービスリージョンを変更するために使用します。PRINCIPAL:オプションです。ターゲットHDFSクラスタがKerberos環境を備えている場合、ログイン認証ユーザーを変更するために使用します。KEYTAB:オプションです。ターゲットHDFSクラスタがKerberos環境を備えている場合、認証キーテーブルファイルのパスを変更するために使用します。KRB5CONF:オプションです。ターゲットHDFSクラスタがKerberos環境を備えている場合、ユーザーがKerberos環境を使用するファイルのパスを変更するために使用します。CONFIGS:オプションです。ターゲットHDFSクラスタがKerberos環境を備えている場合、追加のクラスタ構成パラメータを変更するために使用します。USERNAME:オプションです。ターゲットHDFSクラスタがKerberos環境を備えている場合、ユーザーの一意の識別情報を変更するために使用します。
例
Locationオブジェクト test_location_oss の CREDENTIAL 情報を変更します。
obclient> ALTER LOCATION test_location_oss SET
CREDENTIAL = (
ACCESSID = '******'
ACCESSKEY = '******'
HOST = '******'
);
関連ドキュメント
Locationオブジェクト配下のファイルの情報表示方法については、SHOWを参照してください。