- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Phoenix索引使用第8章
学习目标1.了解Phoenix二级索引
HBaseContents目录二级索引介绍1Phoenix开启二级索引支持2Phoenix二级索引3
8.1二级索引介绍hbase本身由于三重有序(RowKey字典升序,列族、列字典升序,时间戳自然降序),能够使用二分查找,加上布隆过滤器,能够较快的找到rowkey的位置。但倘若不通过RowKey查找数据,就必须逐行比较每一行的值,对于较大的表,全表扫描的代价是不可接受的。此时就引入了二级索引,对应RowKey的一级索引,其本质是倒排索引(建立值与主键的关系)。
8.1二级索引介绍常见索引分为两种,全局索引和本地索引。
8.2Phoenix开启二级索引支持1、关闭HBase服务stop-hbase.sh2、配置文件中设置二级索引支持vim/usr/local/soft/hbase-1.4.6/conf/hbase-site.xml
8.2Phoenix开启二级索引支持添加如下代码propertynamehbase.regionserver.wal.codec/namevalueorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec/value/propertypropertynamehbase.rpc.timeout/namevaluvalue/propertypropertynamehbase.client.scanner.timeout.period/namevaluvalue/propertypropertynamephoenix.query.timeoutMs/namevaluvalue/property
8.2Phoenix开启二级索引支持3、同步至其他节点scp/usr/local/soft/hbase-1.4.6/conf/hbase-site.xmlnode1:/usr/local/soft/hbase-1.4.6/conf/hbase-site.xmlscp/usr/local/soft/hbase-1.4.6/conf/hbase-site.xmlnode1:/usr/local/soft/hbase-1.4.6/conf/hbase-site.xml
8.2Phoenix开启二级索引支持4、修改phoenix目录下的bin目录中的hbase-site.xml,添加以下代码propertynamehbase.rpc.timeout/namevaluvalue/propertypropertynamehbase.client.scanner.timeout.period/namevaluvalue/propertypropertynamephoenix.query.timeoutMs/namevaluvalue/property
8.2Phoenix开启二级索引支持5、启动HBase,重新进入phoenixstart-hbase.shsqlline.pymaster,node1,node2
8.3.1全局索引全局索引是默认的索引格式,创建全局索引时,会在HBase中建立一张新表。也就是说索引数据和数据表是存放在不同的表中的,因此全局索引适用于多读少写的业务场景。写数据的时候会消耗大量开销,因为索引表也要更新,而索引表是分布在不同的数据节点上的,跨节点的数据传输带来了较大的性能消耗。
8.3.1全局索引这里在Phoenix中新建一张简单的信息表,并插入几条数据,数据选择英文,方便后面查看createtablestudent(idvarcharprimarykey,namevarchar,agebigint)column_encoded_bytes=0;upsertintoSTUDENTvalues(001,a,24);upsertintoSTUDENTvalues(002,b,25);upsertintoSTUDENTvalues(003,c,26);
8.3.1全局索引这里按照年龄(age)来建立全局索引createindexage_indexonstudent(age);会发现此时
文档评论(0)