基于OSS+DataLakeAnalytics+QuickBI的Serverless的查询分析和可视化BI
基于OSS的数据查询分析和可视化BI报表
数据存储在OSS后,有多种查询分析的方法,包括阿里云MaxCompute、DataLakeAnalytics产品等Severless查询分析服务,也可以自建Spark、Presto、Imapla应用来分析OSS上的数据。
本文,介绍基于OSS+DataLakeAnalytics+QuickBI,实现对数据的存储、Serverless化的Ad-hoc查询、可视化BI的实验。
实验步骤( OSS+DataLakeAnalytics+QuickBI)
本次实验,主要介绍,如何使用OSS+DataLakeAnalytics+QuickBI,实现对数据的存储、交互式查询分析、输出BI报表的整体数据处理流程。适用于,日志、交易记录查询分析和报表输出等场景。
服务开通
OSS服务:
1.开通OSS服务https://www.aliyun.com/product/oss
DataLakeAnalytics服务:
1.申请DataLakeAnalytics的试用资格
备注:目前DataLakeAnalytics公测中,需提交公测申请,开通试用。DataLakeAnalytics支持查询分析OSS上的CSV、JSON、Parquet、ORC、AVRO、RCFile等数据文件。
操作步骤
准备数据
登录控制台, 并创建目录
创建华东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控制台
点击“登录数据库”,输入开通服务时分配的用户名和密码,登录Data Lake Analytics控制台。
公测期间的分配的用户名、密码,开通服务的消息中可以查看
创建Schema和Table
创建Schema
输入创建SCHEMA的语句,点击“同步执行”。
CREATE SCHEMA my_schema_name WITH DBPROPERTIES (
CATALOG = 'oss',
LOCATION = 'oss://Bucket名称/测试数据目录/'
);
注意:
- 您的OSS LOCATION地址,请务必以’/‘结尾以表示目录(如LOCATION=‘oss://workshopsh20180608100/workshop_sh/’)。后续建表的LOCATION所指向的数据文件,必须在这个OSS目录或者其子目录下。
- 同一个阿里云region,schema名全局唯一,实验时,请将“my_schema_name”替换为,您自定义schema名称。建议根据业务定义,如已有重名schema,在创建时会提示报错,则请换一个schema名字。
创建表
在“数据库”的下拉框中,选择刚刚您创建的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张表
SQL查询(同步执行)
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;
SQL查询(异步执行)
异步执行查询,将查询结果,以CSV格式,输出到OSS上
点击“执行状态”,可看到该异步查询任务的执行状态
主要分为:“RUNNING”,“SUCCESS”,“FAILURE”。
点击“刷新”,当STATUS变为“SUCCESS”时,可以查看到查询结果输出到OSS的文件路径。
查看导出OSS的结果文件
基于QuickBI制作数据报表
创建数据源
说明:
- 目前QuickBI只有专业版支持DataLakeAnalytics作为数据源
- 数据源-数据库地址、端口,可在DataLakeAnalytics控制台查看
- 数据源-数据库名称,使用在DataLakeAnalytics创建的SCHEMA名称
- 数据源-用户名、密码,即登录DataLakeAnalytics数据库使用的用户名/密码(初始化服务时,发送到站内信中)
创建数据集
说明
- 点击创建数据集
- 选择数据源-自定义SQL
输入SQL(输入前述实验步骤的SQL),并保存(如保存为“citygender”)
创建仪表盘
说明
- 点击创建仪表板
- 选择数据集(如citygender)
- 分别选择 值轴、类别轴、颜色分类
- 点击“刷新”
这里显示了各城市男性、女性投资者购买基金的总额
更多信息
关于更多如何使用DataLakeAnalytics+QuickBI,对存储在OSS上数据进行查询分析,以及输出BI报表,请参考DataLakeAnalytics、QuickBI的产品介绍。
本文作者:whj.
本文为云栖社区原创内容,未经允许不得转载。
基于OSS+DataLakeAnalytics+QuickBI的Serverless的查询分析和可视化BI的更多相关文章
- MySQL 慢查询日志分析及可视化结果
MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...
- mysql慢查询分析
mysql慢查询分析 Posted: 29. 08. 2014 | Author: zdz | Category: mysql MySQL 慢查询日志分析 1. pt-query-digest分析慢查 ...
- 阿里云基于OSS的云上统一数据保护方案2.0技术解析
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态.核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产.资源. 阿里云基于 ...
- 阿里云基于OSS的云上统一数据保护方案2.0正式发布
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态.核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产.资源.阿里云基于O ...
- 基于天天动听API开发在线音乐查询网站
预览图 源码下载 地址:https://github.com/bajdcc/dev/tree/master/ttpod 文件夹说明: App_Code,WCF服务 Script,离线下载的celery ...
- Hibernate一级缓存(基于查询分析)
首先我们应该弄清什么是hibernate缓存:hibernate缓存是指为了降低应用程序对物理数据源的访问频次,从而提高应用程序的运行性能的一种策略.我们要将这个跟计算机内存或者cpu的缓存区分开. ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- (转)python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
随机推荐
- compareTo)--list 根据某字段排序
Collections.sort(actList, new Comparator<Act>() { @Override public int compare(Act o1, Act o2) ...
- HTML5中类jQuery选择器querySelector和querySelectorAll的使用
支持的浏览IE8+,Firefox3.5+,Safari3.1+ Chrome和Opera 10+ 1.querySelector()方法接收一个选择符,返回第一个匹配的第一个元素,如果没有返回nul ...
- Leetcode496.Next Greater Element I下一个更大的元素1
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x 的下一个更 ...
- 理解 Python 语言中的 defaultdict
众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常 ...
- stream之累加求和
1.集合中直接包含BigDecimal元素的累加 List<Integer> list = new ArrayList<>();list.add(3);list.add(7); ...
- 傳説中的 jsonp
jsonp的由來 1 . 網頁上的東西衹要跨域了就不能傳送或者接受數據了.不管是什麽衹要是跨域.Ajax直接请求普通文件存在跨域无权限访问的问题, 2 . 但是src這個東西比較厲害了,請求哪裏都可以 ...
- 【笔记】LR11中关联设置
LR中关联建议都手动进行,自动不好用,也容易出错. 在LR中我们什么要做关联:1.关联解决的是动态数据的参数化.2.关联的数据一定是服务器响应的数据.3.服务器响应过来的数据在后面的服务还要使用. 手 ...
- Python当前进程信息 (os包)
Python当前进程信息 (os包) 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和修改进程信息的函数.学习Python的这些工具也有助于理解Linux体系. (o ...
- Asp.Net Core2.0在linux下发布
一.在linux上新建mvc项目发布 可以参考:https://segmentfault.com/a/1190000012428781 也可以看微软官方文档. 大致步骤如下: 1.在linux下安装. ...
- 2019.8.13 NOIP模拟测试19 反思总结
最早写博客的一次∑ 听说等会儿还要考试[真就两天三考啊],教练催我们写博客… 大约是出题最友好的一次[虽然我还是炸了],并且数据也非常水…忽视第三题的锅的话的确可以这么说.但是T3数据出锅就是你的错了 ...