阿里云ECS、datahub、RDS、ADS、OTS、MaxCompute及BI报表展示串联

上周部门做了一个培训,利用阿里云产品实现了数据从采集,到存储,开发及报表展示的全过程,实现了流计算和实时计算两个过程。在此做个学习记录。

涉及产品

ECS云服务器、DataHub、ADS、OTS、RDS,quickBI。

1.流计算

源数据:由python脚本和shell脚本模拟产生。
user表(用户信息表):用户id、星座,性别,年龄,省份等。
goods sale表:用户id、商品类别、商品种类、购买量、购买金额、点击量、加收藏夹数量、加购物车数量。

1.1数据产生

ECS是一款阿里云的云服务器。
首先要有ecs的环境。将脚本通过linux命令部署到esc上,并用contab设置定时任务。保证模拟数据能一直产生。
python脚本里通过Pydatahub包连接到datahub,生成的数据直接存储到datahub中。

1.2数据存储

在流计算页面,将datahub作为数据源,分别将ADS,OTS,RDS作为目标数据源。在导入之前,需要先在ADS,OTS,RDS建表结构。
在流计算中,源数据和目标数据的sql语句是自动生成的,但是需要再写一个

  REPLACE into table  goods_sale 
    select
    buyer_id,
    from_unixtime(create_time,'yyyyMMdd'),
    good_cate ,
    brand,
    trans_num ,
    trans_amount,
    click_cnt,
    addcart_cnt,
    collect_cnt 
    from buy_new;

这个语句是自己写的,目的是将datahub的数据写入到ads等数据库中。
注意: 权限问题

1.3报表展示

在阿里云的quickBI中,可以用ads,rds等中的数据作为数据源,做报表展示。此时数据源是实时更新的,就可以在页面展示中做到实时刷新 ,这里支持5s刷一次。
PS:要做大屏实时变化的那种,首先数据源是要实时更新的,另外报表显示的统计分析的sql语句也要实时更新的,保证取到的数据是实时变的。

2.离线计算

2.1 业务数据同步到MaxCompute(即原来的odps)

这里由于没有业务数据,就将之前在RDS中的数据作为业务数据。

  • ods层(汇聚层)
    建工作流任务,建odps表,进行数据同步,将业务数据同步到odps中。
  • adw层(仓库层)
    做一些数据清洗,转换格式的工作
  • adm层(集市层)
    根据业务问题,做一些统计分析,面向主题的。
    在这一步将数据同步到ads中,要先授权,使ads能接受ads
  • dim(集市层)
    看问题的角度

2.2报表展示

在阿里云的quickBI中,用ads中的数据作为数据源,做报表展示。

选择不同数据库

RDS:面向事务。存不了太大数据。类似mysql。OLTP
ADS:索引查询,比较快,存关系型数据库,要做表关联的时候就不能做ADS。类似数据透视表,但是支持数据量大可以秒级反应。存进来的时候并不能做到那么快,一旦存进来就很快。
OTS:主键列的形式,存nosql数据。

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页