使用AccessKey访问表格存储

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

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

准备工作

在访问控制RAM服务侧完成如下操作:

  • 已创建RAM用户并为RAM用户授予管理表格存储权限。

    警告

    阿里云账号AccessKey泄露会威胁您所有资源的安全。建议您使用RAM用户AccessKey进行操作,可以有效降低AccessKey泄露的风险。

    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"
        }
      ]
    }
    
    --您也可以自定义其他权限
    
  • 已为RAM用户创建AccessKey。具体操作,请参见创建AccessKey

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.通过外部表访问Tablestore数据。