Qliksense开发⼊门可视化BI报表开发⼊门
最近开发公司的BI可视化报表,接触了Qlik报表⼯具,使⽤过程中发现⽹上⼊门教程很少,因此写⼀篇⼊门开发经历。啥也不说,先上⼀个已经开发完成的需求中的其中⼀个展⽰页⾯截图:
如上图, Qlik这个⼯具直接实现,Qlik是收费可视化BI中排⾏前三的⼯具了,能和微软的BI⼀拼⾼下,使⽤感觉还是不错的,⼏亿的数据分析,我⽤过最长半个⼩时就出结果,个⼈感觉还可以,听说收费很贵,估计⼩公司⽤的很少.
进⼊正题:
Qlik报表开发主要有两个流程:
1、把数据导⼊到qlik,可以从MySQL、Oracle、CSV等各种地⽅导⼊,具体⽅法官⽅⽂档介绍,以后会简单的分享下Oracle导⼊
2、开发展⽰逻辑,把导⼊的数据展⽰到前端进⾏可视化,这个可视化是qlik⾃带了的,只需要配置开发简单的判断条件就⾏了
接下来进⾏单独说明:
把数据导⼊到qlik,官⽅⽂档中称之为脚本函数。注意(敲⼩⿊板了),官⽅⽂档中对于脚本代码开发,分为两类:
1、可视化脚本开发
2、脚本开发
在搜索脚本语法、关键字、函数的时候,请注意,不是所有的语法、函数、关键字都是两个通⽤的。可视化脚本开发主要是在应⽤程序视图中开发可视化图像脚本,基本上就是进⾏条件筛选。
专题网页代码模板⽽脚本开发,是值得把数据导⼊到qlik后,会在qlik中⽣成报表的基础数据,所有的可视化数据分析基础数据都是来源于导⼊数据后qlik⽣成的基础数据。所以这⾥的脚本开发,作⽤是怎么定义你的基础数据。
有的新⼿童鞋可能迷糊什么叫定义你的基础数据?qlik加载的数据不⼀定⾮得和数据库表结构完全⼀致,可以指加载所需的部分数据,这样可以减少数据分析所需时间。所以qlik的基础数据是要⽤脚本来定义的,脚本的⽬的就是⽣成你所需要的基础数据。
所以,重要的事情说三遍、这是要考的哦,脚本分为两类,⼀是定义基础数据的脚本、⼆是定义可视化筛选条件的脚本。
产⽣的问题就是:当你在官⽅⽂档搜索函数、关键字、语法等⽤于脚本的情况,请看清楚你所搜索的内容适合于哪种脚本,很多函数是两个脚本都能⽤的,也有很多函数是两个脚本不通⽤的:
如图,我搜索⽉份的函数,弹出来的选择是:脚本和图表函数,这就代表脚本开发可⽤、可视化脚本开发可⽤,也有只是⼀个能⽤的,所以要看清楚哦
上⾯基本上已经说明qlik发开流程了:
1、加载数据
2、筛选⽣成基础数据
3、可视化数据开发⽣成BI可视化报表
脚本开发(不是可视化脚本):
接下来我就具体举例说明,数据来源于Oracle数据库,其他的格式⼊⽂件、MySQL等都差不多,就不特殊介绍了。
1、要获得Oracle的元数据:
常用m函数语法介绍soothingLIB CONNECT TO '数据库链接信息';
⽤这个就能链接数据库了
mysql入门基础教程2、当连接上数据库后,需要筛选出所需数据,在Oracle中我们⽤select,在qlik中也有select,但是qlik中有另⼀个参数load,⽤法和select⼀样,区别是load可以直接读⽂件,⽽select必须要接lib链接数据库,不能直接读⽂件,所以这⾥常⽤的是load参数,⽤法和select ⼀样,由于load优点,后续我都⽤load from语句。
3、load到数据库数据后,数据是缓存到内存⾥⾯的,如果需要持久化,需要⽤store 数据 into ⽂件名,这样就能把数据持久话到本地。
4、变量的声明是⽤let
LET A = 1;
声明了⼀个变量A值为1,
当然LET A后⾯可以赋值函数⽅法,⽐如LET A=date(now(1),'YYYY-MM'),这就把当前时间按照YYYY-MM格式赋值给了A;
使⽤变量$(A),直接放在所需地⽅就⾏了
5、循环,for i to A;i是⾃定义循环起始变量,默认定义为1,后续A是需要循环的值,可以是确定值的变量。
按照以上⽅法已经可已写出⼀个循环写⼊数据的基准⽂件了。这样我们就确定了基准数据,注意基准数据没事不要⽤聚合函数等进⾏聚合,(不要瞎聚合)这⾥需要的就是明细数据,聚合结果是在可视化⾥⾯开发了,在基准数据瞎聚合往往会让可视化开发出的结果出错,所以脚本开发where筛选条件只需要确定哪些数据就⾏了,不要什么order by,sum,group等瞎搞。
可视化脚本开发:
可视化脚本开发就好玩了,基本上就是页⾯点点点,或者⽤⼀些函数来聚合筛选下数据,⼤多数也是页⾯点击,如截图:
这⾥的 Fx字段可以点进去,
点进去就可以编辑表达式,⼀般都是编辑⼀些简单的筛选条件,⽽聚合在哪⾥实现呢?可视化界⾯有两个参数,⼀是维度、⼆是度量,维度就是参考标准,度量就是筛选⽅式了,⽤什么聚合函数,处理⽅法之类的就在度量⾥⾯选择,绝⼤多数聚合⽅式都有选项(收费好处),并不需要⼈⼯开发,特殊就也有编辑表达式界⾯,按照所需需求开发就⾏了。
最后展⽰出来,就是完美的可视化BI报表了.不懂函数、关键字、语法的,在官⽹⾥⾯搜索,基本都能搜索出来,注意分辨使⽤场景就⾏。分享⼀段我的可视化基准数据脚本
let v_year=year(now(1));
let v_month=num(month(now(1)));
let v_mon = '$(v_month)';
for i = 1 to v_mon;
let v_dataname = '$(v_year)'&'-0'&'$(i)';
let v_data =QVDCreateTime([lib://事实表/商品订单_$(v_dataname).qvd]); let v_data_sp =QVDCreateTime([lib://事实表/SP订单_$(v_dataname).qvd]);
datatable:
load
订单编号,
下单时间,
客户编号,
订单状态,
积分⾦额,
兑换数量,
商品编号,
1 as 订单类型
from [lib://事实表/商品订单_$(v_dataname).qvd](qvd);
Concatenate
load
订单编号,
下单时间,
客户编号,
订单状态,
1 as 兑换数量,
积分⾦额,
商品ID as 商品编号,
2 as 订单类型
from [lib://事实表/SP订单_$(v_dataname).qvd](qvd);
// store datatable into [lib://事实表/商品订单_$(v_dataname11).qvd](qvd); next i;
left keep
load查看cpu信息 linux
商品编号,
商品分类ID
from [lib://维度表/商品基础信息.qvd] (qvd);
left keep
load
商品分类ID,
商品⼀类名称
from
[lib://维度表/商品分类信息.qvd] (qvd);
inner keep
load
客户编号
from
[lib://维度表/客户基础信息.qvd] (qvd)
where 客户所属省份='⼴东' and Match(客户所属地市,
'⼴州市',
'汕尾市',
'阳江市',
'揭阳市',
'茂名市',
'江门市',
'韶关市',opacity词根
'惠州市',
'梅州市',
'汕头市',
'深圳市',
'珠海市',
'佛⼭市',
'肇庆市',
'湛江市',
'湛江市', '中⼭市', '河源市', '清远市', '云浮市', '潮州市', '东莞市')>0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论