[大数据搜索数据库YDB]YDB新功能介绍-视图表

YDB视图表


全库资源汇聚搜索高效解决方案

业务有成百上千张表,每张表有上百个列。
想要根据关键字搜索含有该关键字的记录怎么办? 每张表都写一个sql么?每个列都要拼到where条件里去搜索么?no 其实对于资源汇聚类型的搜索可以一条sql就搞定,又兼容原先的表结构,业务其他部分依然可以单表查询。
是不是有这样一种场景,每张表的数据量都不多 ,但是你的表特别多,几十张甚至几百张表。 如果每个表都创建一个物理表,那么是比较浪费资源的

  1. 每张表都要维护自己的BUFFER,弄不好就OOM,导入性能实在太差.
  2. 都要单独开个线程去维护这张表.
  3. 生成的索引都很小,但是文件数量太多,频繁合并索引导致namenode非常繁忙等等
    如今YDB的视图表可以帮你解决这个问题。 视图表示建立在物理表的基础上的。一张物理表上面可以放很多视图表,这些表统一管理,统一心跳,统一一个索引,对外部用户来说对视图表的查询和对物理表的查询,在使用上没有什么区别。 有了视图表以后,原先需要为那些小业务分别创建表,单独搭建集群的问题也可以得到解决。 规模不大的业务,可以共享同一个集群,共享同一个物理表,业务和业务之间是图表隔离。
    视图表并不真实存储数据,如下图所示,视图表通过映射将数据存储在其对应的物理表中.


创建视图表

create ydbview  ydbview_007(
phonenum dblikebig [email protected],
usernick string [email protected],
ydb_sex string [email protected],
ydb_province string [email protected],
ydb_grade string [email protected],
ydb_age string [email protected],
ydb_blood string [email protected],
ydb_zhiye string  [email protected],
ydb_earn string [email protected],
ydb_prefer string [email protected],
ydb_consume string [email protected],
ydb_day string [email protected],
amtdouble tdouble [email protected],
czylong tlong [email protected]_y_tlong_id [email protected],
content dblikebig [email protected]
)
;

1.如果不做配置,默认视图表对应的物理表名称为ydb_physical_table,所有的列均进行汇聚
2.在视图表中字段有三种展现方式 combineonly,fieldonly,all
1)指定combineonly的字段将数据储存在聚合列ydbview_like字段中,在视图表中不可见,物理表中可见
2)指定fieldonly的字段在视图表中可查,在物理表中不可查,不存储在ydbview_like中
3)指定all的字段数据在视图表和物理表中均可查,并存储在 ydbview_like 中一份
4)创建表时可以通过

amtlong tlong  [email protected]_y_tlong_id,

这种方式来指定视图表与物理表中字段的对应关系
5)如下图所示①部分指定视图表对应的物理表名称,通过修改physical_example 部分修改对应的物理表名。②部分是指定在不指定存储策略的情况下,默认的存储策略是 ‘all’策略,可修改。①②部分都是可选配置,可不添加,不添加则为默认参数 物理表名为ydb_physical_table 存储策略为all

使用ydb提供的工具伪造一些数据

cd /opt/ydbsoftware/ya100
hadoop fs -rm -r /data/example/quickstart/
hadoop fs -mkdir -p /data/example/quickstart/
hadoop jar ./lib/ydb-1.1.9-pg.jar cn.net.ycloud.ydb.server.reader.kafka.MrMakeShuData 30000000  /data/example/quickstart/1.txt

将数据导入到视图表中

cd /opt/ydbsoftware/ya100
sh  ./bin/ydbimport.sh -ov -t ydbview_007 -p 3000w -tp txt  -f /data/example/quickstart -sp , -fl phonenum,usernick,ydb_sex,ydb_province,ydb_grade,ydb_age,ydb_blood,ydb_zhiye,ydb_earn,ydb_prefer,ydb_consume,ydb_day,amtdouble,amtlong,content

接下来我们验证一下设置的参数是否生效
视图表数据预览

select * from ydbview_007 where ydbpartition=‘3000w‘ limit 10

结果

在这里我们可以看到在视图表中phonenum usernick ydb_sex ydb_province ydb_grade ydb_age,czylong中在视图表中是不可见的
接下来我们看物理表

在物理表中我们可以看到 字段 phonenum usernick ydb_sex ydb_province ydb_grade ydb_age ydb_consume ydb_day amtdouble amtlong content
这几个列是可见的,




通过以上测试我们可以验证之前的结论:
使用 all存储方式的字段,在视图表和物理表中均可见,可以使用ydbview_like字段进行模糊检索.
使用combineonly字段只能在物理表中可见,在视图表中不可见,可以通过ydbview_like字段模糊检索.
使用fieldonly在物理表中不可见,只在视图表中可见,不可使用ydbview_like字段模糊检索.




对于YDB视图表的查询方式与普通YDB物理表查询方式是一样的,视图表对应的物理表查询与普通的物理表有所不同

我们可以看到如果使用select * 的方式查询到的物理表数据是两个列,ydbview_name列存储的是视图表的名称,ydbview_like 字段存储的是使用all,combineonly存储方式的聚合列
,如果想要返回指定列的结果,需要在 select 后面指定想要查的字段,例如

select phonenum,usernick from ydb_physical_table where ydbpartition=‘3000w‘ and ydbview_name=‘ydbview_007‘ limit 10


虽然可以返回数据,但是这些数据并不能用于检索,要使用特定的方式

接下来我们通过desc ydbview_007的方式来查看ydbview_007对应的ydb物理表字段名

在上图中我们可以看到左边的红色框中是视图表字段,右边的红色框中是指定的对应物理表字段,如果在建表时未指定物理表对应字段将会自动创建一个字段进行关联,在这里我么看到ydb_day的对应物理表字段为‘v_1_y_string_id ’
接下来我们查询这个字段,并通过特定的方式过滤

 select ydbview_name,v_1_y_string_id,ydbview_like from ydb_physical_table  where ydbpartion = ‘3000w‘ and ydbview_like like ‘@@[email protected]‘ order by v_1_y_string_id desc  limit 10;

在上图中我们看到,我们查询了phonenum 值为 13882555844的ydb_day数据,且按照该字段进行排序,其中

ydbview_like like ‘@@[email protected]‘

是固定写法 ‘@@字段名@对应的值’

有关YDB视图表使用方法就介绍到这里了,如果您对于YDB的功能及产品还存有疑问可以通过以下方式获取试用及技术支持
(如果您无法获取清晰的二维码信息,可单击下图放大↓)

原文地址:http://blog.51cto.com/13596934/2068939

时间: 2024-08-28 11:50:56

[大数据搜索数据库YDB]YDB新功能介绍-视图表的相关文章

老李分享:大数据,数据库,数据仓库之间是什么关系

老李分享:大数据,数据库,数据仓库之间是什么关系 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. 首先简单的看一下云计算与大数据的概念. 1)云计算:云计算本质上是一种计算资源集中分布和充分共享的效用计算模式,其中集中是为了计算资源的集约化管理,分布是便于扩展计算能力.集中分布式是针对云服务提供商的,充分共享是针对用户,在云计算中,虽然对

IBM的大数据云江湖,谁是新盟主?

大家都知道,在传统IT时代,数据库三巨头有IBM.Oracle和微软.在三巨头中,IBM可以说是绝对的数据库巨头,1968年就研发出了世界上第一个层次型数据库管理系统IMS,1970年IBM专家首次提出了数据关系模型的概念,1974年又提出了一种新型的数据查询语言也就是后来SQL的前身,1983年IBM发布了著名的DB2数据库,2001年以10亿美金收购了Informix. 然而到了云计算和大数据时代,一时风云变化.Hadoop和Spark等开源大数据存储与处理技术的崛起,导致了全球数据库市场格

大数据时代下电子商务发展新契机

大数据时代,电子商务面临新的挑战.电商想要得到更好的发展肯定离不开数据的支持,需从电商站点设计.移动搜索.社交媒体.转化率.停留率等方面来解读大数据时代电商的关键数据. 同时,电商企业需要针对大数据进行深度的分析和挖掘,从而为自身创造巨大的商机.随着大数据所爆发出的巨大潜力,在如今的互联网经济时代,电商企业正在用大数据思维与技术影响着企业业务决策和商业推广思路.可以预测的是,互联网平台大数据分析,必将在未来为电商企业精准营销带来融合性影响. 电商企业在后台如果能对海量的用户行为数据进行快速分析,

关于大数据和数据库的讨论

前几天上了水木社区,发现还是有大牛的,看了关于大数据和数据库的讨论,发现还是蛮有意思的,限于篇幅和版面,我做了部分的整理. 先看看这位人士的分析,对于行业的现状还是很有了解,不是大学教授就是行业先锋.#####################################大数据是一种方案,而不是一种模型.方案有方案的压力, 只能使出各种绝招来“解决”问题.既然是方案,就包括了存贮,运算,输入和输出等等. 就运算模型上,因为要更好地采用廉价硬件,实践出如hadoop/mapreduce这样的计算

用Python实现一个大数据搜索及源代码

在日常生活中,大家了解搜索引擎如百度.360.搜狗.谷歌等,搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器(BloomFilter) 第一步我们先要实现一个布隆过滤器. 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素.也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在. 让我们看看以下

大数据时代数据库-云HBase架构&生态&实践

摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了ApsaraDB HBase及生态,最后分享了大数据数据库的实际案例. 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了A

[已解决]C#批量高效率导入大数据到数据库[百万级以上]

将几百万条数据导入到数据库中,怎么样高效率的导入?下面我就介绍一个高效率的方法:1.将数据库文件(DB.csv)导入到DataTable中: /// <summary> /// 将CSV文件的数据读取到DataTable中 /// </summary> /// <param name="fileName">CSV文件路径</param> /// <returns>返回读取了CSV数据的DataTable</returns

大数据为开源情报注入新力量

2013年11月,<纽约客>发表了介绍艾略特?希金斯的文章,他的另一个被大众所熟知的名字叫布朗?摩西,在微博上有一万七千个粉丝,是一位肄业的金融管理工作者.艾略特?希金斯的例子证明了,在一个人们每天依赖于来自网络传播而来的海量信息的时代,一切皆可发生. <纽约客>利用八页来描述希金斯为"也许是(叙利亚)战争中最重要的弹药专家," 对于一个在弹药和情报学没有接受过任何专业训练的人来说,这是一个相当高的评价. 希金斯不会说阿拉伯语,从未去过中东地区.他在莱斯特的家里

AndroidStudio3.0 下载使用新功能介绍

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> AndroidStudio3.0 下载使用新功能介绍 - 天平 - 博客频道 - CSDN.NET 天平 向着目标一步一步走. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &