开发者社区> 黑风寨1号> 正文

向分析型数据库ADS中导入数据

简介:         ADS是阿里云提供的分析性数据库,实现百亿数据毫秒级计算。         在使用ADS进行分析之前,需要先将数据导入到ADS中。 1 两种方法        ADS导入分为两种:批量导入和实时导入。这两种导入方式,是在建表的时候确定的。 1.1 批量导入
+关注继续查看

        ADS是阿里云提供的分析性数据库,实现百亿数据毫秒级计算。

        在使用ADS进行分析之前,需要先将数据导入到ADS中。

1 两种方法

        ADS导入分为两种:批量导入和实时导入。这两种导入方式,是在建表的时候确定的。

1.1 批量导入

        建表的时候,需要指定updateType='batch'

        批量导入目前仅支持数据源为ODPS表的导入,且要求ADS中的字段名称和ODPS表中的字段名称一致。步骤如下:

        1)在ODPS准备数据

                 a) 如果表不存在,在ODPS建立表,比如Table_A

                 b) 向表中导入数据

                 c) 给用户ALIYUN$garuda_build@aliyun.com赋权。这个用户是阿里云(公有云)指定的用户,

                如果需要从ODPSADS导入数据,就需要给这个用户赋权。操作如下:

add user ALIYUN$garuda_build@aliyun.com;--如果用户不存在,需要先建立
grant describe,select on table Table_A to user ALIYUN$garuda_build@aliyun.com;--将需要导出的表的descibe,select权限赋给用户

处理上述的赋权之外,还需要确认ODPS是否打开了项目保护。如果打开项目保护,此时数据只允许在项目内流动,无法流出到项目外,自然无法导入到ADS

查看是否打开项目保护的命令如下:

show SecurityConfiguration;

如果ProjectProtection=true,这说明项目保护已经打开,此时需要做一些额外的权限操作:

要么将项目保护关闭,要么设置ExceptionPolicy。

具体操作参考:项目空间的数据保护设置

(https://help.aliyun.com/document_detail/27929.html?spm=5176.doc27930.6.225.hNQZZI)

         2)在ADS中操作

               SQL语法如下:

LOAD DATA FROM 'sourcepath' [IN VERSION dataVersion] [OVERWRITE] INTO TABLE tablename [PARTITION (partition_name,...)]

               sourcepath格式如下:

odps://<project>/<table>/[<partition-1=v1>/.../<partition-n=vn>]

               在这里,具体的命令如下:

LOAD DATA FROM 'odps://project_test/Table_A' OVERWRITE INTO TABLE ads_test_01.Table_A

1.2 实时导入

       建表的时候,需要指定updateType='realtime'

         SQL语法如下:

  INSERT [IGNORE] 
     INTO tbl_name (col1,col2...) 
VALUES (value1, value2...), (value1, value2...)....

       因为实时表都有主键,如果发生主键冲突,默认执行覆盖行为;

     如果使用INSERT IGNORE语法,则丢弃新插入的数据,保留原有数据。

 

2 使用DataX导入

       DataX中实现了插件adswriter。adswriter支持上面的2中更新方式。

2.1 批量更新

        设置"writeMode":"insert", 具体设置参考https://github.com/alibaba/DataX/tree/master/adswriter

        上面讲到了,ads目前仅支持数据源为ODPS表的导入。

         adswriter的实现方式是,首先将其它数据源的数据保存到odps中的临时表中,然后在讲odps中的数据导入到ads中。

         需要注意权限问题:因为导入到odps中的是临时表,现在adswriter还没有对临时表赋权descibe,select给用户ALIYUN$garuda_build@aliyun.com,所以会导入失败。

         因为实现不知道建立的表的名字是什么,所以在进行权限设置时,使用policy的方式。

       adswriter建立的临时表是以ads数据库名称为前缀,所以,可以建立如下策略:

{
"Version": "1",
"Statement":
 [{
    "Effect":"Allow",
    "Principal":"ALIYUN$garuda_build@aliyun.com",
    "Action":["odps:Describe","odps:Select"],
    "Resource":"acs:odps:*:projects/project_test/tables/ads_test*"
}]
}

2.2 实时更新

         设置"writeMode":"insert", 具体设置参考https://github.com/alibaba/DataX/tree/master/adswriter


3 不同用户间的数据导入

          如果想将用户AODPS中的数据导入到用户BADS中,需要做一些权限设置。

          因为为了保护用户的数据安全,ADS目前仅允许导入操作者为Proejct Owner的ODPS Project的数据,

        或者操作者为ODPS Table的创建者。

          赋权的过程如下:

          a) 在用户AODPS中,添加用户B

          b) 在用户AODPS中,给用户B赋权:比如建表、查询等的权限

          c) 使用用户B登录ODPS,然后切换到用户A的项目空间下

          d) 切换之后,建立表TableA

          e) AODPS中的数据导入到TableA

          f) 然后执行批量导入

        这些步骤还是 挺麻烦的,不过是可以将不同用户下的数据导入到ADS中的

4 总结

      在导入过程中 ,出现问题最多的就是权限问题。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!
阿里云数据库 InfluxDB® 版已于近日正式启动商业化 。 InfluxDB 是 DBengine 网站时序数据库类目排名第一的数据库产品,广泛应用于互联网基础资源监控,容器监控,业务运营监控分析,物联网设备远程实时监控,工业安全生产监控,生产质量评估和故障回溯。
3253 0
【数道云大数据】Hadoop大数据技术有什么市场价值?2019年Hadoop大数据技术7大应用领域
由于国家对大数据、AI等等技术的关注,在多次发展规划中都提高了大数据技术,因此大数据技术对于这个时代的发展来说至关重要,大数据也正处于发展期、巩固期,基于已有的技术去完善和不断的发展大数据技术产品,满足互联网不符按发在的需求,使国家的技术产业得到进步和发展。
971 0
重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB
POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术。POLARDB不但满足了公有云计算环境下用户业务快速弹性扩展的刚性需求,同时也满足了互联网环境下用户对数据库服务器高可用的需求。
3226 0
《Spark与Hadoop大数据分析》——1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色
本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第1章,第1.1节,作者 [美]文卡特·安卡姆(Venkat Ankam),译 吴今朝,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1384 0
云时代下的数据库存储——运筹帷幄的阿里云数据库MongoDB
2018年1月17-25日,NoSQL数据库直播大讲堂峰会顺利结束,阿里云数据库团队为大家带来了一场别开生面的知识盛会,给大家带来深度的数据库技术及产品分享。本文是《ApsaraDB for MongoDB》演讲整理,主要讲解了阿里云数据库MongoDB全面的产品体系介绍以及阿里云数据库MongoDB在备份、监控、安全等方面所做的一些优化细节的具体剖析。
6754 0
【Quartz】持久化到数据库【五】
原文:【Quartz】持久化到数据库【五】   前言     我们做到这里已经对Quartz定时器组件已经是学会了基本的使用了。但是我们有没有想过任务开启之后万一断掉了,当机了我们怎么办,你是否还想继续执行原先的任务。
1032 0
11
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载