大数据之视图操作和二级索引
创始人
2024-06-02 08:10:52

文章目录

  • 前言
  • 一、Phoenix视图操作
    • (一)视图介绍
    • (二)语法说明
    • (三)注意点
    • (四)SQL语句参考
    • (五)尝试查询一条数据
  • 二、二级索引
    • (一)索引分类


前言

#博学谷IT学习技术支持#
本文接着介绍Phoenix视图操作以及基于Phoenix实现HBase的二级索引,按照惯例引入Phoenix的环境搭建步骤链接:Phoenix环境搭建

一、Phoenix视图操作

HBase中如果已经创建了 数据表,而且数据添加的方式都是以PUT方式原生API来添加的。此时,如果需要使用Phoenix来操作HBase中的表,此时我们不再需要使用Phoenix创建新的表,而是使用Phoenix中的视图,通过视图来建立与HBase表之间的映射,从而实现数据快速查询。

(一)视图介绍

可以在现有的HBase或Phoenix表上创建一个视图;需要注意的是表、列族和列名必须与现有元数据完全匹配,否则会出现异常。当创建视图后,就可以像操作Table一样使用SQL查询视图。

(二)语法说明

使用CREATE VIEW语法映射HBase中的表:

CREATE VIEW  “HBase中的表名”  ( k VARCHAR primary key, "v" UNSIGNED_LONG) default_column_family='a'

(三)注意点

  1. 映射到HBase的表时,视图的名字必须是:命名空间.表名
  2. 视图中的列映射到HBase的列蔟和列,列名必须是:列蔟.列名
  3. 视图中的类映射到HBase的RowKey时,指定某个列为primary key,自动映射RowKey

(四)SQL语句参考

create view if not exists “WATER_BILL" ("pk" varchar primary key, -- 指定ROWKEY映射到主键"C1". "ADDRESS" varchar,"C1". "LATEST_DATE" varchar,"C1". "NAME" varchar,"C1". "NUM_CURRENT"  UNSIGNED_DOUBLE,"C1". "NUM_PREVIOUS"  UNSIGNED_DOUBLE,"C1". "NUM_USAGE"  UNSIGNED_DOUBLE,"C1". "PAY_DATE" varchar,"C1". "RECORD_DATE" varchar,"C1". "SEX" varchar,"C1". "TOTAL_MONEY" UNSIGNED_DOUBLE);

(五)尝试查询一条数据

SQL语句:SELECT * FROM “WATER_BILL” LIMIT 1;
效果:
在这里插入图片描述

二、二级索引

通过Phoenix,可以非常方便快速地创建二级索引,Phoenix中的索引,其底层还是表现为HBase中的表结构,通过这些索引表可以加快数据查询速度

(一)索引分类

索引主要有四种类型:全局索引、本地索引、覆盖索引和函数索引,

  • 全局索引
    全局索引适用于读多写少的业务,绝大多数负载都发生在写入时,当构建了全局索引时,Phoenix会拦截写入(DELETE、UPSERT值和UPSERT SELECT)上的数据表更新,构建索引更新,同时更新所有相关的索引表,开销较大
    读取时,Phoenix将选择最快能够查询出数据的索引表,全局索引一般和覆盖索引搭配使用,读的效率很高,但写入效率会受影响。
  • 本地索引
    本地索引适合写操作频繁,读相对少的业务,当使用SQL查询数据时,Phoenix会自动选择是否使用该索引查询数据;
    本地索引中,索引数据和业务表数据存储在同一个服务器上,避免写入期间的网络开销,本地索引查询即使SELECT语句中引用了非索引中的字段,也会自动应用索引的,需要注意的是:创建表的时候如果指定了SALT_BUCKETS,是不支持本地索引的。
  • 覆盖索引
    Phoenix提供了覆盖索引,不需要在找到索引条目后返回到主表,可以将关心的数据捆绑在索引行中,从而节省了读取时间的开销。
  • 函数索引
    函数索引支持在列上创建索引,还可以基于任意表达式创建索引。当查询使用该表达式时,可以使用索引来检索结果,而不是数据表。

相关内容

热门资讯

公积金改革大动作要来了!高层定... 最近,公积金改革的话题热度居高不下。《人民日报》发文称,公积金很可能要迎来改革大动作。而两场重磅会议...
中国汽研2025年净利增17.... 转自:中国证券报·中证网1月16日,中国汽车工程研究院股份有限公司(股票代码:601965,证券简称...
王毅:抵制弱肉强食的丛林法则,... 王毅同乌兹别克斯坦外长赛义多夫通电话新华社北京1月16日电中共中央政治局委员、外交部长王毅16日应约...
大货车遗撒渣土2公里致5车受损 转自:京报网_北京日报官方网站 【#大货车遗撒渣土2公里...
25亿元借款提前到期 瑞茂通债... 面对每天上千份上市公司公告该看哪些?重大事项公告动辄几十页几百页重点是啥?公告里一堆专业术语不知道算...