您的位置:首页 > 其它

延云YDB从1.11版本起,正式无缝支持帆软等支持hive接口的报表工具

2016-05-20 15:32 495 查看
YDB:实时在线分析(OLAP)系统:是我们自主研发的一个大型分布式索引系统。旨在为数据总量为万亿级别、每天千亿级别数据增量的项目提供近似实时的数据导入,并提供近似实时响应的多维查询与统计服务。

Ya100:大数据加速器:Spark
SQL的一种新的存储格式。 Ya100比Parquet格式快5~100倍.任意维度组合,过滤,万亿数据秒级响应。Ya100内嵌ydb可以通过kafka进行数据的实时导入。

之前旧版,由于在写hive SQL的时候,需要添加三个set,导致很多支持HIVE的报表工具无法无缝集成(需要业务自己写插件)。

经过三个星期的spark源码的阅读,虽然还做不到完全的无缝,但终于可以取消这三个set,而只需写一个SQL来完成原先的功能。

这样用帆软的同学也不用再苦逼的写程序数据集了,直接写ydb的sql即可。

一、以帆软为例,看如何接入YDB

第一步:建立与ydb的连接,建立数据库连接





好啦,开始做一个最简答的全文检索的页面吧







点击预览,一个简单的搜索页面就做好了



咋样?感觉如何,是不是觉得YDB与报表软件结合后,玩大数据就超级简单了

我们在画一个图吧









好啦,用YDB与报表工具组合,大数据即席分析,就是这样简单。

二、新旧写法对比(当然旧的写法依然兼容)

示例1、

旧写法

set ya100.spark.filter.spark_ya100=content='康佳';

set ya100.spark.combine.spark_ya100=;

set ya100.spark.top10000.spark_ya100=;

select content,usernick from spark_ya100   limit 10;

新的写法

select content,usernick from spark_ya100 where Yfilter('spark_ya100','content=\'康佳\'',ya100_pipe) limit 10;

示例2、

旧写法
set ya100.spark.filter.spark_ya100=;

set ya100.spark.combine.spark_ya100=*,amtdouble,ydb_province;

set ya100.spark.top10000.spark_ya100=;

select Ycount('*',ya100_pipe) ,Ysum('amtdouble', ya100_pipe),Yavg('amtdouble', ya100_pipe) ,Ymin('amtdouble', ya100_pipe) ,Ymax('amtdouble', ya100_pipe) ,Ymaxstring('ydb_province', ya100_pipe),Yminstring('ydb_province', ya100_pipe) from spark_ya100  limit 10;

新的写法

select Ycount('*',ya100_pipe) ,Ysum('amtdouble', ya100_pipe),Yavg('amtdouble', ya100_pipe) ,Ymin('amtdouble', ya100_pipe) ,Ymax('amtdouble', ya100_pipe) ,Ymaxstring('ydb_province', ya100_pipe),Yminstring('ydb_province', ya100_pipe) from spark_ya100

where  Ycombine('spark_ya100','*,amtdouble,ydb_province',ya100_pipe)

  limit 10;

示例3、

旧写法

set ya100.spark.filter.spark_ya100= ydb_sex='女' and ydb_grade='本科' and (ydb_age='20到30岁' or ydb_blood='O') and  (amtlong like '([3000 TO 4000] )') ;

set ya100.spark.combine.spark_ya100=*;

set ya100.spark.top10000.spark_ya100=;
select Ycount('*',ya100_pipe) from spark_ya100  limit 100;

新写法

select Ycount('*',ya100_pipe) from spark_ya100

where Yfilter('spark_ya100','ydb_sex=\'女\' and ydb_grade=\'本科\' and (ydb_age=\'20到30岁\' or ydb_blood=\'O\') and  (amtlong like \'([3000 TO 4000] )\')',ya100_pipe)

and Ycombine('spark_ya100','*',ya100_pipe)
 limit 100;

示例4、

旧写法

set ya100.spark.filter.spark_ya100=;

set ya100.spark.combine.spark_ya100=*,amtdouble;

set ya100.spark.top10000.spark_ya100=;

select ydb_sex, ydb_province,Ycount('*',ya100_pipe),Ycount('amtdouble',ya100_pipe) as cnt,Ysum('amtdouble',ya100_pipe) from spark_ya100   group by ydb_sex, ydb_province  order by cnt desc limit 10;

新写法

select ydb_sex, ydb_province,Ycount('*',ya100_pipe),Ycount('amtdouble',ya100_pipe) as cnt,Ysum('amtdouble',ya100_pipe) from spark_ya100

where Ycombine('spark_ya100','*,amtdouble',ya100_pipe)

 group by ydb_sex, ydb_province  order by cnt desc limit 10;

示例5、

旧写法

set ya100.spark.filter.spark_ya100=;

set ya100.spark.combine.spark_ya100=;

set ya100.spark.top10000.spark_ya100=amtdouble desc ,amtlong limit 10;

select ydb_sex, phonenum,amtlong,amtdouble from spark_ya100  order by amtdouble desc ,amtlong  limit 10;

新写法

select ydb_sex, phonenum,amtlong,amtdouble from spark_ya100 where Ytop10000('spark_ya100','amtdouble desc ,amtlong limit 10',ya100_pipe) order by amtdouble desc ,amtlong  limit 10;

三、YDB与YA100下载地址

http://ycloud.net.cn/yyydb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: