除了授权方式外,您还可以在 MaxCompute 中使用 AccessKey 访问表格存储的数据。

准备工作

获取表格存储资源所属账号的AccessKeyId 和 AccessKeySecret,如果该 AK 是资源所属账号的子账号,那么该子账号至少需要对表格存储相关的资源具有以下权限:

{
  "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"
	}
  ]
}

--您也可以自定义其他权限

在 MaxCompute 中使用 AccessKey 访问表格存储

同授权方式不同的是,需要在创建外表时在LOCATION中显示写入 AK 信息,其格式为:

LOCATION 'tablestore://${AccessKeyId}:${AccessKeySecret}@${InstanceName}.${Region}.ots-internal.aliyuncs.com'

假设需要访问的表格存储资源的信息为:

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'

对数据访问的操作步骤请参考使用MaxCompute访问表格存储中的步骤3.通过外部表访问 Table Store 数据。