您的位置:首页 > 其它

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

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

涉及产品

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数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: