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