アカウント認証に加えて、MaxCompute の AccessKeys を使用して Table Store のデータにアクセスすることができます。
準備
ターゲットの Table Store リソースを所有するアカウントの AccessKey 認証情報 (つまり、 AccessKeyId および AccessKeySecret) を取得します。 AccessKey が Resource Access Management (RAM) ユーザー用である場合、Table Store リソースを操作するには、RAM ユーザーに少なくとも次の許可が付与されている必要があります。
{
"Version": "1",
"Statement": [
{
"Action": [
"ots:ListTable",
"ots:DescribeTable",
"ots:GetRow",
"ots:PutRow",
"ots:UpdateRow",
"ots:DeleteRow",
"ots:GetRange",
"ots:BatchGetRow",
"ots:BatchWriteRow",
"ots:ComputeSplitPointsBySize"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
-- 他の権限も定義できます。
AccessKeys を使用して MaxCompute に Table Store へのアクセスを許可する
アカウント認証とは異なり、外部テーブルを作成するときは AccessKey 情報を "LOCATION"
節の中で特定する必要があります。
LOCATION 'tablestore://${AccessKeyId}:${AccessKeySecret}@${InstanceName}. ${Region}.ots-internal.aliyuncs.com'
以下の情報が MaxCompute がアクセスしなければならないものであると仮定します。
AccessKeyId | AccessKeySecret | インスタンス名 | リージョン | ネットワークモード |
---|---|---|---|---|
abcd | 1234 | cap1 | cn-hangzhou | イントラネットアクセス |
外部テーブルを作成するステートメントは次のとおりです。
CREATE EXTERNAL TABLE ads_log_ots_pt_external
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double ,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
WITH SERDEPROPERTIES (
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption',
'tablestore.table.name'='vehicle_track'
)
LOCATION 'tablestore://abcd:1234@cap1.cn-hangzhou.ots-internal.aliyuncs.com'
データへのアクセスの詳細については、 「1 つのアカウントで MaxCompute が Table Store にアクセスできるようにする」のステップ 3 「外部テーブルを介した Table Store のデータへのアクセス」をご参照ください。