本文介绍如何在DLA中实现跨云账号快速分析OSS数据,即通过阿里云账号A查询分析阿里云账号B中的OSS数据。
前提条件
- 通过阿里云B账号开通OSS服务,并上传测试数据,详情请参见开通OSS服务。
本示例在OSS Bucket的
TPC-H/customer
目录中上传测试数据customer.tbl。 - 通过阿里云账号A完成开通DLA服务等准备工作。
实施步骤
步骤一:新建RAM角色
-
使用阿里云账号B登录RAM控制台。
-
在左侧导航栏,单击RAM角色管理。
-
单击新建RAM角色。
-
可信实体类型选择阿里云服务,单击下一步。
-
自定义角色名称和备注,授信服务选择物联网。
-
单击完成新建RAM角色。
步骤二:修改RAM角色的信任策略
-
使用阿里云账号B登录RAM控制台。
-
在左侧导航栏,单击RAM角色管理。
-
找到创建的RAM角色名称,单击角色名。
-
单击信任策略管理页签,然后单击修改信任策略,将
"iot.aliyuncs.com"
替换为<阿里云账号A的账号ID>@openanalytics.aliyuncs.com
,例如111111111@openanalytics.aliyuncs.com
,其中111111111
为阿里云账号A的账号ID。 -
单击确认,手动复制角色基本信息中的ARN信息,后续DLA中创建Schema时需使用ARN信息。
步骤三:为RAM角色添加OSS权限
-
使用阿里云账号B登录RAM控制台。
-
在左侧导航栏,单击RAM角色管理
-
找到创建的RAM角色名称,单击角色名。
-
单击添加权限,如果您只需在DLA中只读访问OSS数据,则添加
AliyunOSSReadOnlyAccess
策略即可;如果您需要在DLA中执行NSERT OVERWRITE等数据更新操作,则添加AliyunOSSFullAccess
策略,然后单击确定。
经过上述操作,阿里云账号A已经具备在DLA中创建OSS(阿里云账号B所有) Schema和表的权限。
步骤四:创建OSS Schema
-
使用阿里云账号ADLA控制台。
-
单击左侧导航栏的登录DMS,输入DLA数据库账号和密码登录DMS,通过以下SQL创建OSS Schema。
,然后单击您也可以通过MySQL命令行工具、客户端或者程序代码连接DLA,然后创建Schema。
CREATE SCHEMA tpch_schema1 with DBPROPERTIES( catalog='oss', location = 'oss://your-oss-bucket-name/TPC-H/', cross_account_accessing_arn= 'acs:ram::14069264740****:role/for-dla-cross-account' );
-
在tpch_schema1中创建CUSTOMER表对应的外表。
CREATE EXTERNAL TABLE customer ( `c_custkey` int, `c_name` string, `c_address` string, `c_nationkey` int, `c_phone` string, `c_acctbal` double, `c_mktsegment` string, `c_comment` string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS `TEXTFILE` LOCATION 'oss://your-oss-bucket-name/TPC-H/customer'
外表创建成功后,您就可以查询表数据,实现跨云账号访问OSS数据。
在文档使用中是否遇到以下问题
更多建议
匿名提交