原来MaxCompute还能这么玩系列(3)—— 借力QlikView玩转数据分析

注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分

QlikView简介

QlikView是一款成熟的商业分析软件,作为QlikTech的旗舰产品,近几年逐渐成为了全球增长率最快的BI产品。MaxCompute作为一款有志于打造计算和数据生态的平台产品,实现与主流BI软件的连通性势在必行,本文将带领读者来一起看看如何打通QlikView访问MaxCompute的通路,并以此为基础完成简单的数据分析与可视化。

安装QlikView

QlikView目前只支持Windows系统,所以如果你是非Windows的用户,首先需要安装一个虚拟机来支持Windows系统。

准备好Windows系统之后,我们可以从官网下载QlikView的Personal Edition,该版本可供免费安装试用,但是在获得下载链接前,需要完成一次下载注册。

下载后的安装不作赘述。

两种连通方式

我们可以通过两种主流的标准方式来实现与QlikView的连通,它们分别是 JDBC与ODBC。就MaxCompute而言,这两种方式各有利弊,下文将一一阐述。

JDBC连接

首先,我们需要安装Java(version>=1.7), 这步不作赘述。
QlikView本身并不直接支持连接到JDBC数据源,需要借助一个外挂的连接器才可以。所以我们需要准备好两样东西,分别是

QlikView JDBCConnector

官方提供的外挂连接器,可以从这里下载JDBCConnector,解压后安装,默认试用期只有30天

ODPS的JDBC驱动包

ODPS的JDBC驱动实现,下载链接

接着,打开QlikView:

然后按CTRL+e,进入Script编辑器,在底部“Data”页中的“Database”项选择JDBCConnector对应的版本(比如我是64位的),然后点击“Configuration”按钮:

QlikView将打开JDBCConnector,我们先在“Java VM Options”页配置JVM,包括选择安装的JVM所在路径以及配置JVM启动参数:

然后切换到“JDBC Driver”页配置JDBC驱动,添加准备好的MaxCompute驱动Jar包:

切换到“Advanced Settings”页继续配置,此处MaxCompute的JDBC驱动类是com.aliyun.odps.jdbc.Driver:

然后点击OK完成配置。接着我们点击Connect按钮,在弹出框中输入JDBC URL,其中User和Password留空:

JDBC URL格式如下:

jdbc:odps:http://x.x.x.x:8100/api?project_name=odps_dev&access_id=123456&access_key=6789abc%3D&charset=utf-8

URL中的project_name、access_id和access_key等各项参数分别改成你自己的配置,http://x.x.x.x:8100/api 处改成对应的endpoint。其中有一点值得注意是,如果你的accessKey中含有=,需要事先转义成%3D(如上图所示),否则QlikView无法正常解析并传递该参数,会导致后续的请求报签名不一致的错误。

填写完后点击“Test”,如下图表示连接测试成功:

然后点击确定,你会看到Script编辑器中已经为你添加了相关的连接语句,然后继续添加类似如下的脚本:

line1 :表示连接到odps jdbc,由上一步骤自动生成
line4-line5 :执行你指定的SQL并将结果赋给data变量
line7:将data存到指定的qvd文件中

然后点击Reload按钮,会展示如下窗口,表示SQL正在执行中:

完成后会如下所示:

在相应的目录中已经可以找到保存好的qvd文件,自此我们已经完成了通过JDBC方式对MaxCompute的数据连通。下一次,我们可以直接打开该文件来进行结果数据的离线分析。

ODBC连接

由于MaxCompute通过HiveServer2 proxy完成了对Hive生态的兼容,所以我们可以利用Hive的ODBC数据源来为QlikView打通到MaxCompute的通路。

如何安装HiveServer2 Proxy及Hive ODBC驱动见这篇文章,本文不做赘述。

假设用户已经安装了某个Hive的ODBC驱动,我们首先去“控制面板”-“管理工具”设置ODBC数据源:

选择已经安装的Hive ODBC驱动,新建一个用户数据源:

然后按下图配置:

其中Host和Port填写与你HiveServer2 Proxy一致的配置,Database填写默认的project,User Name和Password可以分别填写root和1234,然后点击“Test”,如下显示表示连接测试成功:

然后点击“OK”完成配置。
打开QlikView,在左下角“Data”-“Database”选择“ODBC”,然后点击“Connect”,弹出后选择刚才配置的数据源,并点击“Test Connection”:

点击“OK”后,弹出如下窗口(如没有弹出,请点击“Connect”下方的“Select”按钮):

在第一次加载时,这个过程可能会比较慢,因为需要一次性从服务端获取你的meta数据,具体视你的带宽和表数量而定。HiveServer2 Proxy默认会针对这些数据进行缓存,即一次获取后会一直使用本地缓存,所以如果你在HiveServer2 Proxy运行过程中添加的新表,在QlikView中是无法看到的。有两种方式来解决这类问题。第一种是重启HiveServer2 Proxy,第二种是在启动HiveServer2 Proxy前在其配置文件conf/hive-site.xml中增加如下配置项来禁用缓存,但是这样的副作用就是每次点击都可能都需要从远端获取meta数据,造成操作的响应时间过慢。

<property>
      <name>odps.enablecache</name>
      <value>false</value>
</property>

等上述界面出现后,可以看到我们已经连接上MaxCompute,上图中“Database Tables”区域中罗列出了odps_dev这个project下的所有表,“Fields”选中表的所有可选字段。值得注意的是QlikView将我们的project放置于“Owner”字段处,而“Database”对应的值是“HIVE”,这与MaxCompute自身的概念是有所出入的,不过先不必在意,我们可以点击“OK”来为Script编辑器生成相应的SQL,如下图:

图中箭头所指向的“HIVE.” 这部分我们可以选择手动删除掉,刚才曾提到这是与MaxCompute有所出入的一个概念,但是HiveServer2 proxy也对此做了兼容。当然你也可以直接在这里编写任意符合MaxCompute语法的SQL,而不是通过刚才可视化选择的方式来生成SQL。编写完后,点击“Reload”完成脚本的执行:

至此,我们已经成功通过ODBC完成了QlikView到MaxCompute的连通。

数据分析与可视化

接着,我们来看看如何实现数据分析和可视化。当我们成功完成当前脚本的执行之后(也可以通过导入之前保存的QVD文件),数据便已经加载到QlikView中,可以点击如下菜单来进入“快速图表向导”为我们生成丰富的分析图表:

并在弹出窗口中依次选择图表的类型、维度、表达式及格式:

并最终可以生成类似如下的丰富的可视化图表,包含饼图、折线图等:

总结

本文的目的并不在于详细的讲述QlikView的各种功能特性与使用方式,如果对这块感兴趣的读者可以关注该产品的官方文档。笔者的目的主要还是带领读者熟悉两种QlikView打通MaxCompute数据通路的方式,它们分别是JDBC和ODBC。前者的优势是部署方便,性能也略好(因为是只连MaxCompute的),而其缺点则是QlikView JDBCConnector只有30天试用期,说到底并不算是可以长期免费使用的。而ODBC的优势是HiveServer2 proxy是永久免费的,而且这种方式可以以可视化的方式来生成SQL,但是需要你独立配置并部署该组件。

欢迎加入MaxCompute钉钉群讨论

时间: 2024-09-30 17:48:30

原来MaxCompute还能这么玩系列(3)—— 借力QlikView玩转数据分析的相关文章

你在玩微博,微博在玩你

摘要: 你在玩微博,微博在玩你.那些上百万粉丝的草根微博背后是谁?谁在瓜分那些著名的微博账号?如何在微博上快速赚钱?<创业家>独家解密微博生意经和微博势力关系谱. 你在玩微 你在玩微博,微博在玩你.那些上百万粉丝的草根微博背后是谁?谁在瓜分那些著名的微博账号?如何在微博上快速赚钱?<创业家>独家解密微博生意经和微博势力关系谱. 你在玩微博,微博在玩你.微博装饰了你的生活,你装饰了别人的梦. 据<创业家>杂志调查采访,新浪草根微薄排行榜前50名中,有一半属于"福

企业招聘会玩LOL是下限 从玩游戏看团队意识

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;     要求应聘者会玩网游,上班时 还会专门留出时间用来玩. 这不是游戏公司招聘,也不是打金工作室, 而是武汉一家网络公司开出的招聘条件.该公司负责人说:"这种方式对80后.90后员工更具吸引力,而且通过游戏能更好考察员工团队意识和把握机会能力."     据悉这是一家由80后.90后组成的网络公司,主要为企业提供网络营销服务.该公司招聘广告内容

“垃圾站”是你在玩百度还是百度在玩你

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 相信广大的个人站长们都了解的,做站混饭吃,靠的就是百度,相信有95%以上的个人站长的站,流量来源来自于搜索引擎.而由于谷歌的退出,百度在国内更是一家独大.今天要说的是采集站,也就是广大站长们口中所说的垃圾站,先来看一个数据: 图上所示的,是这个站8月以来的流量统计,可谓是大起大落,所以说,心脏不好的人不适合做站长. 下面是这个站的收录统计 现

原来MaxCompute还能这么玩系列(2)—— 利用HiveServer2 Proxy实现MaxCompute与Hive生态工具的互通

注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分 什么是Hive Hive是一款经典的hadoop技术栈的数仓软件,可以让用户采用SQL来完成大数据量的计算分析.如果你对Hive还不熟悉,请移步Apache Hive官网获取进一步了解.MaxCompute在很多功能上与Hive相近,所以大部分MaxCompute的用户曾经也是Hive的用户. 什么是HiveServer2 既然提到HiveServer2,那得先介

原来MaxCompute还能这么玩系列(1)—— 通过Apache Zeppelin 快速实现数据可视化

注:MaxCompute原名ODPS,是阿里云自研的大数据计算平台,文中出现的MaxCompute与ODPS都指代同一平台,不做区分 Zeppelin简介 Zeppelin是一款基于web的notebook工具,它支持以插件的方式接入各种解释器(interpreter),从而使用户能够以特定的语言或数据处理后端来完成交互式查询,并快速实现数据可视化. 部署Zeppelin 首先,你需要在部署的服务器上安装Oracle JDK 1.7,并配置好相应的JAVA_HOME环境变量,这步不做赘述. 接着

微信“撤回一条消息还亲了你一口”提示怎么玩?

撤回一条消息还亲了你一口是系统自带的功能,但是需要把昵称设置为unicode编码了,下面我们就来看看. 微信撤回一条消息还亲了你一口怎么玩 其实只是换一个微信昵称Unicode编码,比如你朋友有个名字叫的好友昵称,将该名字复制黏贴到自己的微信昵称上,然后把名字部分改成自己的.而动作部分的修改,则需要倒叙输入.如"宝贝撤回一条消息并亲了你一下"可以替换成"天才撤回一条消息并亲了你一下.赶快去玩不然就没了. 微信撤回一条消息并亲了你一口为什么用不了了 在今天早上的时候,这个根据代

小虾赚钱APP怎么玩 小虾赚钱APP玩法分享

给各位小虾赚钱软件的使用者们来详细的解析分享一下这一款软件的玩法. 玩法分享: 1.打开小虾赚钱APP,在首页中用户即可以完成限时任务.收徒任务.联盟任务以及专属任务,同时还可以进入提现和一元抢车哟;   2.进入到小虾赚钱APP收徒页面可以通过分享收徒.扫码收徒.卡片收徒.链接收徒等四种方式进行收徒;   3.进入小虾赚钱APP限时任务页面,用户即可以通过完成指定的任务进行试玩.   文章赚钱app">好了,以上的信息就是小编给各位小虾赚钱的这一款软件的使用者们带来的详细的这一款软件的玩

雕爷牛腩的互联网玩法_000万玩“封测”冲流量

近一年来_a href="http://news.pedaily.cn/industry/餐饮/" target=_blank>餐饮行业几乎没什么好消息.国八条颁布后,高档餐厅的业绩一蹶不挿有些高端餐饮甚至已经倒闭,而中低端餐厅受原材料以及租金.人工.成本上涨的困扰,日子也并不好过.在这种哀鸿遍野的市场环境下,在淘宝平台上已做到化妆品第一的阿芙精油的创始人雕爷却杀入了餐饮行业,创办了一家名为雕爷牛腩的餐厅,开始了他的二次创业.作为一个毫无餐饮行业经验的外行,雕爷牛腩开业仅两个月就

支付宝玩宝怎么获得 支付宝玩宝有什么用

支付宝玩宝获得方法: 1.让有多个"玩宝"的支付宝好友送个给你或者你用其它的"宝"和他/她换: 2.双12期间使用支付宝消费满1元概率获得: 支付宝玩宝有什么用: 在双12期间集齐"吃宝"."喝宝"."玩宝"."乐宝"四种,即可赢取1212元现金红包.如果你是支付宝钻石会员,奖金还将翻倍,也就是说如果钻石会员集齐了四宝,将获得2424元的奖金.