アカウント認証に加えて、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 のデータへのアクセス」をご参照ください。