建立自己的个大数据培训机构 骗局网站。

12126 条评论分享收藏感谢收起linode.com/?r=04d80ccd83dbd2d7a011 (Linode) (Vultr)赞同 33 条评论分享收藏感谢收起十问公信宝创始人黄敏强:让我们做自己数据的“王”
数据,是未来最重要的生产资料。它规模巨大,并随着人们行为的变迁不断流变,成为我们测量、理解一个时代商业和社会的关键。区块链分布式存储和不能篡改的特性,似乎可以和数据天然拟合在一起。
可是很少有人想过:“产生的数据与我何干?”
现在,“我的数据我作主”的时代正在变成现实。
成立两年多的公信宝已经率先探索出一个非常有特色的数据经济公链生态——公信宝CBD生态模型,真正实现用区块链技术“把用户数据交给用户作主”。一千万布洛克城用户、一百个公链上开发的应用,公信宝将如何逐步构建这个数据生态?公信宝又有着怎样的愿景?本周六下午4-5点,无眠区块链@裂变资本群将邀请公信宝创始人兼CEO黄敏强先生来群内分享。主持人依然是我们的老朋友Sandy。本次分享,能让您对您的个人数据有进一步的认识,望您细细品味。
(公信宝创始人,“草虫”黄敏强)
(主持人sandy,裂变资本创始合伙人)
公信宝项目是2016年8月建立的的,那时在国内的区块链领域还没有这么多的参与者,也没有出目前这么多的应用场景,当时是怎么想到要创建公信宝的呢?是否和您之前的工作和学习经历有关呢?
黄敏强:我大学学的是计算机技术和科学,后面也修了MBA的课程,我2008年工作在浙大网新,从工程师开始做到其中一家子公司的技术副总,经历过每一个技术男的岗位,包括开发、管理、产品、测试、架构师等,当时是为政府和企业提供服务。我也是国内最早的政府数据交换项目(杭州市目录体系与交换体系)的开发者之一。后来在2012接触了比特币,2013年开始投资加密货币,也开发过矿池和区块链足球竞猜项目。2014年,我进入互联网金融行业,做过2年多理财、贷款、大数据征信,在一家上市公司(汉鼎宇佑)担任CTO和互金公司的CEO。
我自己本人在数据行业、区块链、互联网金融几个领域从业过十多年,一直都知道我们每个人的隐私数据被商业机构所侵犯,但却无能为力。直到2016年中的时候,我发现区块链是最合适的解决这个问题的方案,所以我就辞职出来创业了,将项目起名公信宝,这个名字也是我们创业的初衷,就是“公民的信用数据由公民自己来管理”
为什么一定要做公信链,而不是搭载于其他的公链?
黄敏强:2016年公链还没那么多,主要也就是Bitcoin、Ethereum、Bitshares、Ripple,这些公链其实都仅仅为了加密货币资产而设计的,并没有设计数据上链、管理、交易、确权等功能,同时交易性能(TPS)也达不到我们的需求,为此我们就特意开发了一条公链,也就是GXChain。GXChain的第一个版本,是我带着团队闭关在小黑屋,吃住生活工作都在一起,日夜开发出来的。
能否简单介绍一下GXChain的性能和特点?
黄敏强:这个问题,我用一张图来表示。
我们现在的公链能支持10万TPS,除了性能优秀外跟其他的公链在设计上也有很大的不一样。
第一,当前的大部分公链上,只有数字钱包的账户。但是这个钱包账户呢,一个人可以创建很多个,并没有经过KYC(know-your-customer,对账户持有人的强化审查)。而我们的公链上每个人有一个统一的数字身份叫G-ID。这个数字身份首先是KYC过的,其次是这个身份背后还有一系列他个人的数据。接下来区块链要成为未来信用社会的一个基石的话,这个账户的数字身份是非常非常重要的。如果说一个人可以有多个地址,每个地址都是又是匿名的,那么假如他在一个地址上做了很多坏的记帐,然后马上切换的一个新的地址上,就无法起到构建信用社会基石的作用。
第二,当前大部分的公链,链上是没有个人的数据的,只有钱包余额、交易转账的账本。但是这个是不够的。我们都知道智能合约的权限是有限的,不能访问链外的一些资源,只能访问链里面的资源。如果我们的开发者想要做出更多丰富的应用,而不是只是做一些区块链玩具应用,那么去填充智能合约的资源是非常非常重要的。那么公信宝的公链上呢,用户跟企业都授权上链了大量的数据。这些数据呢,将来就可以为开发者所用。开发者看到这些数据就像看到钱一样,就会觉得这个地方能挣到钱,那么他就会到这里来开发。
第三,平台的流量。当前大部分公链的开发,其实是没有一个统一的流量入口的。比如以太坊,就是没有统一流量入口,每个DAPP的开发都需要自己去制造一个用户的流量入口。我们自己做了一个布洛克城,现在有一百六十万实名币圈用户。你在我们链上开发应用的话,那么这些都是你的币圈用户,而且可以马上去用你的应用。你的应用一上线就能获得非常多的流量。我们这有两个例子,一个是我们链上的一个应用叫币得,coinget,在一周内就获得了五十六万用户;还有一个项目叫预言家Prophet,上线三天时间就已经成为了全球最大的移动社交运预测平台了。这也是我们给他们带来的价值。
第四,我们都知道公链的存储资源是非常昂贵的。大部分公链都不支持大量数据的上链。二我们的公信链则已经把存储方式区分好了,我们的用户、开发者可以将大量的数据上链,主要的数据存在主链,一些过程数据,流程数据可以存在侧链。主链和侧链是有关联关系的,通过主链的数据可以找到侧链的数据。侧链也是有不可篡改的特性。我们使用IPFS(Inter Planetary File System,星际文件系统)来实现这样的存储,节省了大量主链的TPS消耗。
第五,我们提供智能合约的编程环境。GXChain VM是智能合约的运行环境,第一个版本将兼容EOS,未来将兼容更多的主流智能合约。我们智能合约的编程环境WebAssembly,未来将支持多种编程语言。
这些用户数据都是怎样收集的呢?现在公信宝获取数据的方法很多类似之前现金贷平台,甚至爬取数据,用币换取客户数据,这样是否合规?如何保证数据安全?会否行成一个新的数据垄断?
黄敏强:我们数据的入口有两个。第一个是我们的布洛克城。布洛克城的用户通过提升算力的方式去挖矿,就会用到我们的自动化数据采集组件。通过这个工具就可以把自己在中心化的世界的数据存储到链上去,然后自己的data-key在链上加密保管。以后在使用应用的时候就可以授权给应用去使用,这是一个数据的入口。第二个,我们为企业搭建了一个去中心化的数据交易所,我们希望这些企业数据交易所可以覆盖到金融、教育、工业、民生等等各个领域,这些交易的数据都可以成为数据的入口。只要得到本人的同意,符合链上数据管理条例,我们的开发者都可以去调用它。
我们的用户是通过布洛克城完成了自动化的数据上链。因为这个数据原来都在中心化服务器上,如果没有token的激励用户是没有动力把数据转移到链上去的,在转移到链上的过程当中,用他自己本地APP生成的data-key进行加密,然后上链。开发者使用你数据的时候需要经过你的授权,所以合规是没有问题的。
对于数据安全的话呢,注意链上数据用户有自己的data-key,就像自己的比特币私钥一样。你用私钥把你的数据加密上链之后,只要你自己保管得当,别人没有你的同意是没办法解密你的数据的。而且数据都是存在侧链IPFS上面。IPFS有一个特性是不可以去循环递归,所以没有你自己的授权的话,别人拿不到你的数据,解不开你的数据。
关于数据垄断我们是这么认为的,必须是有一个中心化的服务器数据库,并且垄断所有的行业的资源,才能形成垄断。那么我们这边是让用户自己上链,自己保管,是足够分散的,公信宝没有权利去碰这些数据,没有权利制约这些用户的行为,所以不会形成垄断的。
GXChain比较适合什么样的实体应用呢?
黄敏强:金融、游戏、社交、衣食住行等各个领域的应用都可以来GXChain上来开发,因为我们链上有个人用户自己的数据,开发者得到本人的同意,符合链上数据管理条例,就可以使用它,那就可以做出更加落地民生,走进我们生活的应用。
公信宝的公链经济模型是什么?是怎么推广的?目前布洛克城的用户有多少?每日活跃度有多少?
黄敏强:经济模型的讲的是八个字:产出、奖励、消耗和使用。我们公链设计的时候,“产出”和“奖励”都是有成本的。比如我们公信宝的出块节点是有成本的,如果你要获得token奖励,就要用布洛克城里面挖矿、上链数据都是有成本的。然后就是“消耗”和“使用”。“消耗”就是在链开发过程中的一些消耗,我们也有相应的机制,最主要的就是“使用”。我们通过CBD的模型来推广整个生态。
D就是开发者。在我们链上开发应用,使用我们的开发环境、工具和资源的时候,开发者也要付出一定的token,这就是开发者的使用场景。C就是布洛克城用户,用户去使用这些应用的时候可以用token。在布洛克城上线的应用中,用户可以通过token完成社交、游戏等应用的消费。B端是一个数据交易所,开发者可以通过B端的数据交易所购买C端的用户数据,前提是需要符合链上数据管理条例,得到用户本人的同意。
公信宝在意识到自己的公链要推广出去的时候是在去年的下半年。当我们意识到这个要推动公链的时候,其实公链已经很多了,为了进行差异化竞争,我们就设计了这个CBD的这个模型,通过布洛克城,我们汇集了一百六十万的币圈用户,今年我们计划做到一千万。通过流量和数据的方式,吸引开发者来推广我们的公链。如果流量足够多,那么开发者就愿意到你这来开发,数据足够多,他们开发者能够做出很丰富的应用。
目前布洛克城实名用户158万,所有用户是165万,日活40%。
全球各地都有不同的数据合规问题, 怎么用能满足每个国家的不同合规需求?
黄敏强:对的,每个国家、地区数据合规方式都不一样。在中国,我们用CBD模型已经推广的已经非常好了。但是在日本,在英国在欧洲在美国在东南亚都有不一样的地方,比如说法律法规、用户体验这些数据都不一样。于是我们就采取在不同的国家地区设立分支机构。组建当地管理团队由他们来进行创业。那我们通过技术跟资金的支持的方式,来进行数据的管理和塑造数据交易场景。
比如说在欧洲,为了做欧洲用户,我们就在伦敦开设一个分支机构。让当地的团队来服务整个欧洲用户。当地的法律、KYC、用户的习惯和国内都是完全不一样的。所以当地的团队就会去做产品的本地化,法律的本地化,合规的本地化,一切按照符合当地法律的来执行,在日本、新加坡、美国我们都是这么来执行。
提到欧洲,我们刚好请您介绍一下欧洲的GDPR(一般数据保护条例), 这个政策会给整个数据行业带来什么影响?
黄敏强:对,欧洲的GDPR非常严格。但这也是为什么我们要挑最严格的一个地方去设立分支机构,只有这样,我们才能培养我们在这个行业的处理经验。我们在那里走访了一圈后发现,欧洲当地经营,不管是外国公司还是本地公司,都受到了这个政策的影响。这个政策实行后,以后所有的企业需要用到个人数据都必须要得到本人的同意,并约定时间、内容、范围,还有一个时时反馈的机制。这个对数据行业会有一个颠覆性的影响,这样一来,很多依赖个人数据的行业,他们的商业模式都需要重新思考,原来他们所采用的商业模式,无非就是数据存储收集之后进行加工,然后向用户推荐服务,那么这一套商业模式以后在欧洲肯定是走不通了。很多在用到欧洲的一些软件服务、互联网服务,他们的用户都会收到邮件确认是否授权给他们使用,除此之外用户也多了一个权利,就是今后可以向这个软件服务商或者互联网服务商要求他打包返还、下载你自己所有的数据,你也可以要求他完全物理删除,而非逻辑删除。
这个对数据行业的商业模式跟存储方案以及用户的沟通都会带来很多的一个影响。但这是一个伟大的进步。我非常欣喜看到这个变化的产生,这说明我们个人隐私得到了更多的保护,滥用我们数据的商业行为也会得到遏制。但这对很多中小企业也对带来很大的冲击,他们需要重新思考商业模式。
如何看去中心化数据交易市场的竞争?或者说,蛋糕那么大,GXChain有竞争者么?
黄敏强:数据市场,其实可分到很多很多的领域。金融、保险、医疗、工业、农业、教育、旅游等等,大概二十几个领域。而金融数据是一个我们非常了解的领域,因为我在互联网金融行业从业过很多年,我的团队大部分都是从这个这行业出来的,我们每天跟这个领域的客户相处在一起,交流在一起,所以非常了解其中的机制。光有技术是不行的,你需要设计的非常合理公平的机制,让他们愿意交换。如果一个门外汉想要进入这个领域,就要学习这个机制,也需要花很多很多时间。
而且我们基于我们的公链GXChain搭建了一个去中心化数据交易所。我们称这个服务为DES(Data Exchange Service),是我们运行的面向金融行业个人数据的存储市场。然后我们也把这个服务已经开源、开放,欢迎所有有想法做数据业务的团队都可以基于我们的公链搭建这么一个市场。昨天我们就和一个国企的数据交易中心交流,就是他们完全可以基于我们的公链来搭建这么一个数据交易市场。因为我们的协议是开源的,我们免费支持,但是必须基于我们的公链来搭建。
这样的话,即使是我们不擅长的领域,也会有很多的开发者和企业考虑成本、便利和我们的技术优势选择在我们的公链上搭建这样的服务。我们公信宝现在做的事情就是把这些服务都做成协议,笼络更多的开发者进来在我们的公链上开发应用。
竞争者也有。在国内甚至世界都会有企业主导或者政府主导的一个数据交易市场,一直都是以中心化方式做的。但是真正像我们这样以去中心化的方式去做并且做的那么早,而且有成熟产品、公链、服务、客户并且在运行和使用的,几乎找不出第二家,那么这个就是我们的竞争优势。那么如果新的竞争者要进来做相关业务,他们就需要重新去学习和构建很多。但是我觉得行业的推进不能只靠一家,我们也欢迎更多的行业参与者进来。毕竟这个市场确实非常非常大,我们一家也不一定做得过来。
最后一个问题,您觉得类似GDPR的法律会在全球扩散吗?the end of free data?
黄敏强:会的,我有一个类比,以国内举例(其他国家也一样),国内隐私数据保护法律和GDPR就好像未成年人犯罪和成年人犯罪,他们在阶段性和严重程度都不同。之后未成年人一定会成长为成年人,国内一定会越来越重视个人隐私数据的保护,管理也会越来越严格,国内的个人数据隐私保护法势必会向GDPR靠拢。这将影响国内企业以及在境内经营的跨国企业,这样一来会驱动大数据领域进入下一个阶段,就是数据的所有权归属个人。
个人将会有自己数据的保管和确权权利,个人可以要求企业在一定时间内提供个人在该企业内产生的所有数据,而如果企业要使用个人数据,就需要个人对数据做强授权,如授权数据的内容、使用范围和使用期限以及有一个很好的使用数据的反馈机制。如果是这样,那区块链绝对是最好的解决方案。公信宝在2年前创业的时候就已经想到了(数据所有权回归,做自己数据的主人)。目前我们在国内已经用CBD数据经济生态在推广公链GXChain以及个人数据保护理念,并且已经取得了很好的效果。同时我们在欧洲、日本、新加坡、美国都在设立分支机构,实现全球用户的链上数据管理和交换。
我相信通过区块链+大数据的完美结合,公信宝一定会成为下一代公链和个人数据管理的主流模式,而全世界的个人数据保护法律也会变成成年人,会越来越成熟。
本次分享到这里结束了,随着大数据时代的到来,数据对于企业、科研、行政规划等的重要意义不言而喻。我们期待公信宝可以帮助用户真正解决数据信任、隐私等应用方面的问题。 再次感谢本次的分享人黄敏强先生,感谢主持人Sandy。
(公信宝是裂变资本重点投资和支持的项目。裂变资本成立于2018年,是专注精品区块链头部项目的投资和专业数字资产管理的新型服务平台,将传统金融智慧和区块链新技术应用相结合,通过挖掘、孵化和资源管理打造一批世界级的经典投资项目,核心团队拥有众多区块链产业投资的成功案例。)
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点> 问题详情
本讲中提到,到目前为止,美国已有超过50个州及地方政府建立了独立的数据门户开放网站。()
悬赏:0&答案豆
提问人:匿名网友
发布时间:
本讲中提到,到目前为止,美国已有超过50个州及地方政府建立了独立的数据门户开放网站。()
您可能感兴趣的试题
1本讲认为,数据污染就是指数据残破不完整。( )22012年8月,我国政府出台了《关于促进大数据发展的行动纲要》。( )3大数据可以用来研究相关关系。( )4人们在享受互联网和大数据带来的便利的同时,个人隐私必然在一定程度上被让渡。( )
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
每天只需0.4元
选择支付方式
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
恭喜你被选中为
扫一扫-免费查看答案!
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
提示:请截图保存您的账号信息,以方便日后登录使用。
常用邮箱:
用于找回密码
确认密码:这个页面不在了博客分类:
一个简单的Mondrian例子(部分参考某个大牛的文档~~)希望大家学到东西~
可以详细参考豆丁网上的一个文档:
也可以跟我一起做~
创建新的web项目
3.1.1 打开myEclipse,新建一个网站我的是这样的:
注意名字要按照我给的,取名为Tezz
建好之后是这样的:
3.1.2 打开你刚刚解压的文件,进入解压后的文件夹目录mondrian-3.2.1.13885/lib,
把一个名字为mondrian.war的文件解压到当前的文件夹。
我进入后是这样:
我直接把.war改为.zip然后解压
进入解压后的文件夹,选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp三个文件,我们需要将这些资源复制到我们测试项目的WebRoot文件夹中。
我的是这样的:
把jpivot和wcf这两个文件夹添加到WebRoot下,把剩下三个文件添加到Web-INF里面,我添加完成之后是这样的:
进入mondrian(之前为.war,后来改名为.zip解压后的文件夹)
WEB-INF文件夹(在上面步骤中解压的项目文件mondrian.war里),选中jpivot、lib、wcf这三个文件夹,同样需要复制它们到测试项目的WEB-INF文件夹中。
Jpivot和wcf两个文件夹包含了用于生成用户界面的配置文件
复制进去的时候会问你:
扫面之后就不会出现错误了,之前出现错误是因为我们没有添加实例进去。
配置web.xml
第一步:在MyEclipese 上打开我们新建项目的文件:web.xml
第二步:添加配置文件,直接把我给出的下列代码复制到你的web.xml文件中,注意是覆盖!在下面的代码也会相应对.xml中的一些东西做一些介绍~
1过滤器(filter)
复制下边所示的xml代码到我们测试项目Tezz的web.xml文件中。当然你也可以直接把解压包里面WEB-INF中的web.xml直接拖到你的项目中,可以对比以下两者的不同,其实就是&description&标签显示的内容不一样,可以自己看看。
&filter-name&JPivotController&/filter-name&
&filter-class&com.tonbeller.wcf.controller.RequestFilter&/filter-class&
&init-param&
&param-name&indexJSP&/param-name&
&param-value&/index.html&/param-value&
&description&如果这是一个新的会话,则转到此页面&/description&
&/init-param&
&init-param&
&param-name&errorJSP&/param-name&
&param-value&/error.jsp&/param-value&
&description&出错时显示的页面&/description&
&/init-param&
&init-param&
&param-name&busyJSP&/param-name&
&param-value&/busy.jsp&/param-value&
&description&这个页面用于当用户点击一个查询时,在这个查询还未将结果还回给用户时所显示的界面&/description&
&/init-param&
&filter-mapping&
&filter-name&JPivotController&/filter-name&
&url-pattern&/testpage.jsp&/url-pattern&
&/filter-mapping&
2 初始化资源的linstener
复制下面的listener到我们的web.xml文件中(用于初始化一些资源)
&listener&
&listener-class&mondrian.web.taglib.Listener&/listener-class&
&/listener&
资源初始化--&
&listener&
&listener-class&com.tonbeller.tbutils.res.ResourcesFactoryContextListener&/listener-class&
&/listener&
该servlet用于将数据生成Excel文件或pdf文件并返回给用户,如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中
&servlet-name&Print&/servlet-name&
&display-name&Print&/display-name&
&description&Default configuration
created for
servlet.&/description&
&servlet-class&com.tonbeller.jpivot.print.PrintServlet&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&Print&/servlet-name&
&url-pattern&/Print&/url-pattern&
&/servlet-mapping&
4 MDXQueryServlet
MDXQueryServlet用于接受并执行一个MDX查询,然后将该查询以Html表格的形式返回。其中的参数connectString用于指定连接到数据库的字符串,例如使用jtds驱动连接到sql
server 2000的字符串如下:
Provider=Jdbc=jdbc:jtds:sqlserver://localhost/Tuser=password=123456;Catalog=/WEB-INF/queries/tezz.JdbcDrivers=net.sourceforge.jtds.jdbc.D
如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中。
&servlet-name&MDXQueryServlet&/servlet-name&
&servlet-class&mondrian.web.servlet.MDXQueryServlet&/servlet-class&
&init-param&
&param-name&connectString&/param-name&
&param-value&@mondrian.webapp.connectString@&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&MDXQueryServlet&/servlet-name&
&url-pattern&/mdxquery&/url-pattern&
&/servlet-mapping&
5 DisplayChart 和GetChart 这两个Servlet
DisplayChart 和GetChart 这两个Servlet
用于生成图表和将其显示给最终用户,如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中。
&!-- jfreechart provided servlet
&servlet-name&DisplayChart&/servlet-name&
&servlet-class&org.jfree.chart.servlet.DisplayChart&/servlet-class&
&/servlet&
&!-- jfreechart provided
servlet --&
&servlet-name&GetChart&/servlet-name&
&display-name&GetChart&/display-name&
&description&Default configuration
created for
servlet.&/description&
&servlet-class&com.tonbeller.jpivot.chart.GetChart&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&DisplayChart&/servlet-name&
&url-pattern&/DisplayChart&/url-pattern&
&/servlet-mapping&
&servlet-mapping&
&servlet-name&GetChart&/servlet-name&
&url-pattern&/GetChart&/url-pattern&
&/servlet-mapping&
它们用于向用户生成和显示如下所示的各种图表:
6 添加标签库
最后添加以下标签库到我们的web.xml项目中即可
&taglib-uri&http://www.tonbeller.com/wcf&/taglib-uri&
&taglib-location&/WEB-INF/wcf/wcf-tags.tld&/taglib-location&
&taglib-uri&http://www.tonbeller.com/jpivot&/taglib-uri&
&taglib-location&/WEB-INF/jpivot/jpivot-tags.tld&/taglib-location&
到这里,我们对mondrian在web.xml的配置有一定的了解,并可按需要添加相应的功能。接下来我们将要创建本例子所要用到的表格及数据。
准备测试用表
本例使用的表结构如下所示:
Sale是事实表,它有两个维:客户(customer)维和由两个表组成的产品(Product)维。
表格的创建很简单,您只需要将下面的sql语句导入数据库即可
1 使用以下sql语句创建表
create table Sale (
saleId int not null,
proId int null,
cusId int null,
unitPrice float null,
number int
constraint PK_SALE primary key (saleId)
create table Customer (
cusId int not null,
gender char(1) null,
constraint PK_CUSTOMER primary key (cusId)
create table Product (
proId int not null,
proTypeId int null,
proName varchar(32) null,
constraint PK_PRODUCT primary key (proId)
create table ProductType (
proTypeId int not null,
proTypeName varchar(32) null,
constraint PK_PRODUCTTYPE primary key (proTypeId)
2 使用以下sql语句导入数据
insert into Customer(cusId,gender) values(1,'F')
insert into Customer(cusId,gender) values(2,'M')
insert into Customer(cusId,gender) values(3,'M')
insert into Customer(cusId,gender) values(4,'F')
insert into producttype(proTypeId,proTypeName)
values(1,'电器')
insert into producttype(proTypeId,proTypeName) values(2,'数码')
insert into producttype(proTypeId,proTypeName) values(3,'家具')
insert into product(proId,proTypeId,proName)
values(1,1,'洗衣机')
insert into product(proId,proTypeId,proName)
values(2,1,'电视机')
insert into product(proId,proTypeId,proName)
values(3,2,'mp3')
insert into product(proId,proTypeId,proName)
values(4,2,'mp4')
insert into product(proId,proTypeId,proName)
values(5,2,'数码相机')
insert into product(proId,proTypeId,proName) values(6,3,'椅子')
insert into product(proId,proTypeId,proName) values(7,3,'桌子')
insert into sale(saleId,proId,cusId,unitPrice,number)
values(1,1,1,340.34,2)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(2,1,2,140.34,1)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(3,2,3,240.34,3)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(4,3,4,540.34,4)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(5,4,1,80.34,5)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(6,5,2,90.34,26)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(7,6,3,140.34,7)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(8,7,4,640.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(9,6,1,140.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(10,7,2,740.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(11,5,3,30.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(12,4,4,)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(13,3,1,314.34,27)
insert into sale(saleId,proId,cusId,unitPrice,number)
values(14,3,2,45.34,27)
建立模式文件
一个模式定义了一个多维数据库. 它包含一个逻辑模型(logical model)、一组数据立方(consisting of
cubes)、层次(hierarchies)、和成员(members), 并映射到物理模型(关系数据库)上。
简单的说,配置一个模式就是配置一个关系数据结构到多维数据结构的映射。
关于mondrian的模式及模式的配置,这里我们只对其进行了简单介绍。
3.5.1创建模式文件
模式文件的创建很简单。首先在WEB-INF下新建一个queries的文件夹,然后在该文件夹下创建一个名为tezz.xml的文件。再按下面的步骤将xml元素添加入即可。
3.5.2 配置模式文件
添加数据立方Sales:
&Schema name = “tezz”&
&Cube name = “mondrianText”&
&!--事实表sale(fact
&Table name = “sale”/&
添加数据立方Sales
添加产品维(
因为产品维由两个表连接而成,因此比客户维复杂些)
共有三个度量:
数量、平均单价和总销售额)
最后生成的tezz.xml文件内容如下:
&?xml version="1.0"
encoding="UTF-8"?&
name="tezz"&
name="Sales"&
&!-- 事实表(fact table) --&
&Table name="sale" /&
&!-- 客户维 --&
&Dimension name="客户性别"
foreignKey="cusId"&
&Hierarchy hasAll="true" allMemberName="所有性别"
primaryKey="cusId"&
name="Customer"&&/Table&
&Level name="gender"
column="gender"&&/Level&
&/Hierarchy&
&/Dimension&
&!-- 产品类别维 --&
&Dimension name="产品类别"
foreignKey="proId"&
&Hierarchy hasAll="true" allMemberName="所有产品"
primaryKey="proId"
primaryKeyTable="product"&
&join leftKey="proTypeId"
rightKey="proTypeId"&
&Table name="product" /&
name="producttype"&&/Table&
&Level name="proTypeId" column="proTypeId"
nameColumn="proTypeName"
uniqueMembers="true" table="producttype" /&
&Level name="proId" column="proId"
nameColumn="proName"
uniqueMembers="true" table="product" /&
&/Hierarchy&
&/Dimension&
&Measure name="数量" column="number" aggregator="sum"
datatype="Numeric" /&
&Measure name="总销售额" aggregator="sum"
formatString="¥#,##0.00"&
&!-- unitPrice*number所得值的列 --&
&MeasureExpression&
&SQL dialect="generic"&
(unitPrice*number)
&/MeasureExpression&
&/Measure&
&CalculatedMember name="平均单价"
dimension="Measures"&
[Measures].[总销售额] / [Measures].[数量]
&/Formula&
&CalculatedMemberProperty name="FORMAT_STRING"
value="¥#,##0.00" /&
&/CalculatedMember&
3.6编写MDX查询语句
在模式文件定义完成之后,我们就可以根据它来编写相应MDX查询语句了。
本例所用的MDX语句如下:
我们可以很清楚的看出,columns轴维度包含的是度量。Rows轴维度包含的是维度中的层次的所有成员(allMemberName)
3.7 创建查询文件
注意,连接数据库之前需要配置数据库连接的插件,jdbc,
去微软官网或是找同学要一个jdbc的包,添加到JAVA安装路径的这个文件夹
如果这个方法不行的话,可以用eclipse 或是myEclipse 手动导入:、
们在用Eclipse开发程序的时候,经常想要用到第三方的jar包。这时候我们就需要在相应的工程下面导入这个jar包。以下配图说明导入jar包的步骤。
1.右击工程的根目录,点击Properties进入Properties。或者选中工程根目录,按Alt-Enter即可。
2.在Properties页面中选中Java Build Path,选中Libraries标签,点击Add External
3.找到需要添加的jar包,确定即可。
现在我们将创建一个jsp文件,该jsp使用jpivot的mondrianQuery标签来完成查询。
该文件最后将被testpage.jsp使用。
在/WEB-INF/queries文件夹下面创建一名为tezz的jsp文件。该jsp包含如下内容:
&%@ page session="true"
contentType="text/ charset=ISO-8859-1" %&
&%@ taglib
uri="http://www.tonbeller.com/jpivot" prefix="jp"
&%@ taglib prefix="c"
uri="http://java.sun.com/jstl/core" %&
&jp:mondrianQuery id="query01"
jdbcDriver="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost/test"
catalogUri="/WEB-INF/queries/tezz.xml"
jdbcUser="root" jdbcPassword="123"
connectionPooling="false"&
{[Measures].[数量],[Measures].[平均单价],[Measures].[总销售额]} ON
{([产品类别].[所有产品],[客户性别].[所有性别])} ON rows
&/jp:mondrianQuery&
&c:set var="title01"
scope="session"&Sales&/c:set&
需要注意的问题是,你要自己修改连接数据库的那几行代码
2.9 布署项目
至此我们已经全部配置完成,文件结构如下:
蓝色部分为我们添加或创建的部分
布署项目,启动Tomcat,在浏览器上输入
即可看到如下结果:
  testpage.jsp?query=tezz,这里的tezz即刚我们创建的用于查询jsp文件名称
duguyiren3476
浏览: 301455 次
来自: 北京
zhangyou1010 写道请教,我执行mount -t n ...
请教,我执行mount -t nfs -o vers=3,pr ...
为什么我查出来的hbase数据都是base64编码的? 我保存 ...
不错,谢谢!
确实不怎么快,httpfs的上传你可以理解为普通的httpup ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 大数据时代是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信