Qlik开发总结

总体概念:

Qlik开发总结

 

 

根据思路执行步骤:

 

1、通过数据库读取数据生成qvd文件,以windows服务器为例,需要在Qlik所在的机器上配置ODBC数据库连接,然后再qlik软件中新建数据库连接才能读取

 

2、配置好连接后在qlik数据加载编辑器中需要编写数据加载逻辑,这时候数据加载并没有存在本地,需要明确使用命令store存储于本地位置形成本地qvd文件,这个qvd文件则为基准数据文件

 

3、由于qlik这时存放的数据是基准数据,而报表展示一般是筛选或者统计后的数据,所以需要再新开报表页面,加载基准数据qvd文件并编写筛选逻辑,形成bi报表文件,同样的,如果没有明确store,那么报表是存在内存里面的,由于报表的使用是时时变化的,所以报表文件一般不需要持久化存储于硬盘,qlik报表工具属于高性能BI工具,每次从基准数据中加载生成报表视图时间很短。能节约硬盘空间。

 

 

 

 

关于加载数据脚本开发:

连接数据库:windows主机得配置odbc

LIB CONNECT TO

 

举例:

LIB CONNECT TO 'MYSQL8.0_BA (admin)';

 

重命名加载的数据

[name]:

举例:

[订单]:

select

Po.orderid as 订单号,

po.create_time as 创建时间

from db_order.t_pay_order po

where po.create_Time>= now() - 1/144

;

 

格式化视图字段:

[Months]:

load

  distinct date(monthstart(创建时间),'YYYY-MM') as monthvalue

resident [订单];

 

 

 

循环:

For

举例:

for i = 1 to cnt;

  let v_month = FieldValue('monthvalue',$(i));

 

合并:

如果文件字段全部一致会自动union all成一张表,

显示指定合成:Concatenate

显示指定不合成:NoConcatenate

 

加载:

Select 或者 load 都可以,如果是从数据库加载使用select,如果是从qvd文件加载建议使用load

举例:

LOAD *

  Resident 订单

  WHERE monthstart(创建时间) = '$(v_month)'&'-01';

 

变量定义:

Let

举例:

  LET vQVDExists = not isnull(QVDCreateTime('[lib://data (admin)/事实表/订单$(v_month).qvd]'));

 

判断:

If

Else

End if;

举例:

for i = 8 to v_mon;

if i<10 then

let v_dataname = '$(v_year)'&'-0'&'$(i)';

else

let v_dataname = '$(v_year)'&'-'&'$(i)';

end if;

 

 

循环:

For i= 1 to 循环范围;

Next I;

举例:

for i = 8 to v_mon;

if i<10 then

let v_dataname = '$(v_year)'&'-0'&'$(i)';

else

let v_dataname = '$(v_year)'&'-'&'$(i)';

end if;

load

订单ID as 订单编号,

卡券产品ID

from [lib://data (admin)/事实表/订单表$(v_dataname).qvd] (qvd);

next i;

 

关联:

Join/left join/keep/left keep

 

keep和join用法差不多

举例:

left keep

load

商品编号,

商品分类ID

from [lib://data (admin)/维度表/商品基础信息.qvd] (qvd);

 

持久化存储:

Store

举例:

  store SplitTable into [lib://data (admin)/维度表/产品信息表$(v_month).qvd] (qvd);

 

删除:

Drop

举例:

  drop table SplitTable;

 

不包含(增量的时候有用):

exists

举例:

load * from [lib://data (admin)/维度表/产品信息表$(v_month).qvd] (qvd)

    where not exists(编码);

 

qlik的后台管理界面是再QMC后台,

域名/qmc/,里面配置各脚本定时任务,角色,权限,连接信息等

 

更多操作参考官方文档