数据存储在OSS后,有多种查询分析的方法,包括阿里云MaxCompute、DataLakeAnalytics产品等Severless查询分析服务,也能够自建Spark、Presto、Imapla应用来分析OSS上的数据。数据库
本文,介绍基于OSS+DataLakeAnalytics+QuickBI,实现对数据的存储、Serverless化的Ad-hoc查询、可视化BI的实验。less
本次实验,主要介绍,如何使用OSS+DataLakeAnalytics+QuickBI,实现对数据的存储、交互式查询分析、输出BI报表的总体数据处理流程。适用于,日志、交易记录查询分析和报表输出等场景。异步
OSS服务:测试
1.开通OSS服务https://www.aliyun.com/product/ossui
DataLakeAnalytics服务:阿里云
1.申请DataLakeAnalytics的试用资格
备注:目前DataLakeAnalytics公测中,需提交公测申请,开通试用。DataLakeAnalytics支持查询分析OSS上的CSV、JSON、Parquet、ORC、AVRO、RCFile等数据文件。spa
准备数据3d
登陆控制台, 并建立目录rest
建立华东1区域的OSS测试Bucket。日志
备注:Bucket名称是全局惟一,若是提示名称已存在,请更换一个Bucket名称。
建立目录(建议目录以下):
建立目录workshop_sh/trade, workshop_sh/user
下载模拟数据(该数据本次实验的模拟数据)
http://testdatasample.oss-cn-hangzhou.aliyuncs.com/workshop_sh/workshop_sh.zip
将下载的将交易记录和开户信息数据,分别上传到trade、user目录
点击“登陆数据库”,输入开通服务时分配的用户名和密码,登陆Data Lake Analytics控制台。
公测期间的分配的用户名、密码,开通服务的消息中能够查看
建立Schema
输入建立SCHEMA的语句,点击“同步执行”。
CREATE SCHEMA my_schema_name WITH DBPROPERTIES ( CATALOG = 'oss', LOCATION = 'oss://Bucket名称/测试数据目录/' );
注意:
建立表
在“数据库”的下拉框中,选择刚刚您建立的schema。
而后在SQL文本框中输入建表语句以下,并点击同步执行。其中,Location替换为您的Bucket和测试数据的路径
1.建立交易记录表:
说明:LOCATION 'oss://Bucket名称/交易记录表目录/'
实验中,替换LOCATION 'oss://您的OSS存储空间名称/workshop_sh/user/'。如:oss://workshopsh20180608100/workshop_sh/user
CREATE EXTERNAL TABLE tradelist_csv ( t_userid STRING COMMENT '用户ID', t_dealdate STRING COMMENT '申请时间', t_businflag STRING COMMENT '业务代码', t_cdate STRING COMMENT '确认日期', t_date STRING COMMENT '申请日期', t_serialno STRING COMMENT'申请序号', t_agencyno STRING COMMENT'销售商编号', t_netno STRING COMMENT'网点编号', t_fundacco STRING COMMENT'基金帐号', t_tradeacco STRING COMMENT'交易帐号', t_fundcode STRING COMMENT'基金代码', t_sharetype STRING COMMENT'份额类别', t_confirmbalance DOUBLE COMMENT'确认金额', t_tradefare DOUBLE COMMENT'交易费', t_backfare DOUBLE COMMENT'后收手续费', t_otherfare1 DOUBLE COMMENT'其余费用1', t_remark STRING COMMENT'备注' ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFIlE LOCATION 'oss://testdatasample/workshop_sh/trade/';
2.建立开户信息表:
说明:LOCATION 'oss://Bucket名称/开户信息表目录/'
实验中,替换LOCATION 'oss://您的OSS存储空间名称/workshop_sh/user/'。 如:oss://workshopsh20180608100/workshop_sh/user
CREATE EXTERNAL TABLE userinfo ( u_userid STRING COMMENT '用户ID', u_accountdate STRING COMMENT '开户时间', u_gender STRING COMMENT '性别', u_age INT COMMENT '年龄', u_risk_tolerance INT COMMENT '风险承受能力,1-10,10为最高级', u_city STRING COMMENT'所在城市', u_job STRING COMMENT'工做类别, A-K', u_income DOUBLE COMMENT'年收入(万)' ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFIlE LOCATION 'oss://testdatasample/workshop_sh/user/';
3.建表完毕后,刷新页面,在左边导航条中能看到schema(实验时选择您建立的schema)下的2张表
1.查询交易机构SXS_0010,在0603至0604的100条交易记录
SELECT * FROM tradelist_csv WHERE t_cdate >= '2018-06-03' and t_cdate <= '2018-06-04' and t_agencyno = 'SXS_0010' limit 100;
显示执行结果
2.查询各城市、男性女性人群,购买的基金总额(多表Join查询)
SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance FROM tradelist_csv , userinfo where u_userid = t_userid GROUP BY u_city, u_gender ORDER BY sum_balance DESC;
异步执行查询,将查询结果,以CSV格式,输出到OSS上
点击“执行状态”,可看到该异步查询任务的执行状态
主要分为:“RUNNING”,“SUCCESS”,“FAILURE”。
点击“刷新”,当STATUS变为“SUCCESS”时,能够查看到查询结果输出到OSS的文件路径。
查看导出OSS的结果文件
建立数据源
说明:
建立数据集
说明
输入SQL(输入前述实验步骤的SQL),并保存(如保存为“citygender”)
建立仪表盘
说明
关于更多如何使用DataLakeAnalytics+QuickBI,对存储在OSS上数据进行查询分析,以及输出BI报表,请参考DataLakeAnalytics、QuickBI的产品介绍。
本文做者:whj.
本文为云栖社区原创内容,未经容许不得转载。