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

文章目录

  • 前言
  • 一、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提供了覆盖索引,不需要在找到索引条目后返回到主表,可以将关心的数据捆绑在索引行中,从而节省了读取时间的开销。
  • 函数索引
    函数索引支持在列上创建索引,还可以基于任意表达式创建索引。当查询使用该表达式时,可以使用索引来检索结果,而不是数据表。

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...