除了授权方式外,您还可以在 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 数据。