精华内容
下载资源
问答
  • 二级索引

    千次阅读 2017-02-13 10:50:59
    HBase二级索引 hbase-solr solr:solrcloud 必须的软件:hbase、solr、zookeeper、hbase-solr   https://github.com/NGDATA/hbase-indexer   安装hbase-solr,整合测试 1、获取tar包,解压 2、进入conf...

    HBase二级索引

    hbase-solr

    solr:solrcloud

    必须的软件:hbasesolrzookeeperhbase-solr

     

    https://github.com/NGDATA/hbase-indexer

     

    安装hbase-solr,整合测试

    1、获取tar,解压

    2、进入conf目录,修改hbase-indexer-site.xml配置文件,配置zookeeper相关属性


    若未设置JAVA_HOME变量,需完善conf/hbase-indexer-env.sh配置文件

    3、为hbase集群添加属性信息,修改hbase-site.xml配置文件


    4、添加hbase-solrjarhbase
    cp lib/hbase-sep-* $HBASE_HOME/lib

    注意:在home目录下新建lib目录,jar放置到其中,否则会包如下错误:

    Error: Could not find or load main class com.ngdata.hbaseindexer.Main

    or

    Error: Could not find or load main class com.ngdata.hbaseindexer.cli.AddIndexerCli

    5、启动solr

     cd $SOLR_HOME/example

    java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DzkHost=localhost:2181/solr  -jar start.jar


    6、启动hbase-solr

    7、在hbase中创建一张可索引的表,注意:REPLICATION_SCOPE必须设置

    8、add an indexer

    创建一个新的xml文件叫indexdemo-indexer.xml,并添加如下属性信息


    接下来,创建一个基于上述xml文件的indexer
    ./bin/hbase-indexer add-indexer -n myindexer -c indexdemo-indexer.xml \
            -cp solr.zk=localhost:2181/solr -cp solr.collection=collection1

    9、测试

    添加数据

     上述操作之后,你可以访问你安装好的solr,可以检索看看信息是否存在, (i.e. http://localhost:8983/solr/#/collection1/query).
    更新操作

    删除操作





    展开全文
  • 我一般称为“一级索引”和“二级索引”,这样好记一点。正确的称谓是:集聚索引和非聚集索引。顾名思义,叶子节点存放主索引和数据的树,称为集聚索引树;叶子节点存放辅助索引和主索引的树,称为非集聚索引树。备注...

    导读

    本文参考自简书的某位作者,并做了增删。我一般称为“一级索引”和“二级索引”,这样好记一点。正确的称谓是:集聚索引和非聚集索引。顾名思义,叶子节点存放主索引和数据的树,称为集聚索引树;叶子节点存放辅助索引和主索引的树,称为非集聚索引树。备注:一和二体现了主次和先后关系,聚焦和非聚焦体现不出来,我建议称为:“一级索引”和“二级索引”。

    1、一级索引

    索引和数据存储在一起,都存储在同一个B+tree中的叶子节点。一般主键索引都是一级索引。

    2、二级索引

    二级索引树的叶子节点存储的是主键而不是数据。也就是说,在找到索引后,得到对应的主键,再回到一级索引中找主键对应的数据记录。

    3、例子介绍

    下面我们通过一个具体的示例进行演示一级索引和二级索引。有如下表pl_ranking(编程语言排行榜表),该表包含3个字段,如下:id:主键

    plname:编程语言名称

    ranking:排名id

    plname

    ranking

    15

    C

    2

    16

    Java

    1

    18

    Php

    6

    23

    C#

    5

    26

    C++

    3

    29

    Ada

    17

    50

    Go

    12

    52

    Lisp

    15

    ...

    ...

    ...

    90298b5e6809d4ccb67122eedc703c6a.png

    从图中我们可以看到,索引和数据都在一颗树的叶子节点,是存在一起的。通过定位索引就直接可以查找到数据。如果查找id=16的编程语言,select id, plname, ranking from pl_ranking where id=16;

    则只需要读取3个磁盘块,就可以获取到数据。

    beddabc53898005ad1ff9915795230af.png

    从上图中我们发现,该B+tree根据plname列进行构建的,只存储一级索引数据。比如,查找编程语言为“Java”的数据。select id, plname, ranking from pl_ranking where plname='Java';

    首先通过二级索引树中找到Java对应的主键id为 “16”(读取2个磁盘块)。然后在去主键索引中查找id为“16” 的数据(读取3个磁盘块)。

    4、一级索引和二级索引的关系:回表

    一级索引可以单独存在,二级索引不能单独存在,必须依附于一级索引,这叫做“回表”。

    5、参考:

    展开全文
  • 聚簇索引索引和数据存储在...二级索引(辅助索引)二级索引存储的是记录的主键,而不是数据存储的地址。以Mysql的InnoDB为例主键是聚集索引唯一索引、普通索引、前缀索引等都是二级索引(辅助索引)示例下面我们通过一个...

    聚簇索引

    索引和数据存储在一块( 都存储在同一个B*tree 中)。

    一般主键索引都是聚簇索引

    Mysql中InnoDB引擎的主键索引为聚簇索引,MyISAM存储引擎采用非聚集索引

    非聚簇索引

    索引数据和存储数据是分离的。

    二级索引(辅助索引)

    二级索引存储的是记录的主键,而不是数据存储的地址。

    以Mysql的InnoDB为例

    主键是聚集索引

    唯一索引、普通索引、前缀索引等都是二级索引(辅助索引)

    示例

    下面我们通过一个具体的示例进行演示聚集索引和二级索引

    pl_ranking(编程语言排行榜表)

    该表包含3个字段,如下:

    id:主键

    plname:编程语言名称

    ranking:排名

    聚簇索引(主键索引)

    df26ab3ede06f7ab62ecab182513292d.png

    聚集索引

    从图中我们可以看到,索引数据和存储数据都是在一颗树上,存在一起的。通过定位索引就直接可以查找到数据。

    这棵树是根据主键进行创建的。

    如果查找id=16的编程语言,

    select id, plname, ranking from pl_ranking where id=16;

    则只需要读取3个磁盘块,就可以获取到数据。

    二级索引(辅助索引)

    e7d8f7b1cee967ba001173bc2bb8507e.png

    image.png

    从上图中我们发现,该B*tree根据plname列进行构建的,只存储索引数据,plname 和 id 的映射。

    比如查找 编程语言为“Java”的数据。

    select id, plname, ranking from pl_ranking where plname='Java';

    首先通过二级索引树中找到 Java 对应的主键id 为 “16”(读取2个磁盘块)。

    然后在去主键索引中查找id为“16” 的数据。(读取3个磁盘块)

    结论

    select id, plname, ranking from pl_ranking where id=16;

    根据主键查找只需要查找3个磁盘块

    select id, plname, ranking from pl_ranking where plname='Java';

    根据编程语言名称查询需要读取5个磁盘块

    结论一

    通过上面的主键索引和非主键索引的例子我们可以得出:

    主键索引(聚餐索引)查询效率比非主键索引查询效率更高。如果能使用主键查找的,就尽量使用主键索引进行查找。

    结论二

    从上面图中我们还可以分析得出以下结论:

    主键定义的长度越小,二级索引的大小就越小,这样每个磁盘块存储的索引数据越多,查询效率就越高。

    展开全文
  • 主索引和二级索引区别,并创建一个二级索引
                   

    透明表索引有两种:分别是主索引和二级索引。
    • 主索引是在我们创建表激活后由系统自动创建的,这个我们不能修改;二级索引可以我们自己创建。
    • 主索引是表的主键,二级索引可以根据你自己需要用到表的任何字段的组合来创建。
    • 在使用二级索引时,WHERE条件字段和字段顺序要与二级索引字段和字段顺序粗略一致,这样才能提高检索效率

    索引的第一个字段都是MANDT,后面的根据需求有序的输入索引字段

    可以点击‘Table Fileds’选择表中用于索引的字段,可多选;保存、激活注意


    现在再次点击‘索引’,就可以看到我们刚才创建的索引了
    PS:我们可以最大创建9条索引,注意不是索引越多越好,太多的话会严重浪费服务器资源






               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 二级索引:叶子节点中存储主键值,每次查找数据时,根据索引找到叶子节点中的主键值,根据主键值再到聚簇索引中得到完整的一行记录。问题:1.相比于叶子节点中存储行指针,二级索引存储主键值会占用更多的空间,那为...
  • 主索引和二级索引区别 并创建一个二级索引
  • innodb中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引innodb引擎通过搜索树方式实现索引,索引类型分为主键索引(聚集索引)和 二级索引(非主键索引)主键索引树中,叶子结点保存着主键即对应行...
  • Clustered and Secondary Indexes(聚集索引和二级索引)Every InnoDB table has a special index called the clustered index where the data for the rows is stored. Typically, the clustered index is synonymous...
  • 二级索引:叶子节点中存储主键值,每次查找数据时,根据索引找到叶子节点中的主键值,根据主键值再到聚簇索引中得到完整的一行记录。问题:1.相比于叶子节点中存储行指针,二级索引存储主键值会占用更多的空间,那为...
  • 全局二级索 Global Secondary Indexes...全局二级索引被视为“全局”,是因为对索引执行的查询可以跨基表中所有分区的所有数据。 本地二级索引 local secondary index为给定分区键值维护一个替代排序键。local ...
  • 全局二级索引 1. 原理:会新建一张表格,以索引列和原rowkey拼接作为新的rowkey 2. 生效:查询必须能从索引表直出,索引才能生效 3. 多列查询,索引生效办法 a. 针对所有查询列建立索引 b. 用Include,将要...
  • 二级索引&&辅助索引mysql中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。以InnoDB来说,每个InnoDB表具有一个特殊的索引称为...
  • MySQL InnoDB的二级索引(Secondary Index)会自动补齐主键,将主键列追加到二级索引列后面。详细一点来说,InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键的值(而不是指向主键的指针)。为什么...
  • 二级索引&&辅助索引mysql中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。以InnoDB来说,每个InnoDB表具有一个特殊的索引称为...
  • 一、非HA EMR构建二级索引云HBase借助Phoenix实现二级索引功能,对于Phoenix二级索引的详细介绍可参考https://yq.aliyun.com/articles/536850?spm=a2c4e.11153940.blogrightarea544746.26.673e7308MxY7Lc当Phoenix表...
  • Phoenix二级索引

    2021-03-24 22:46:42
    通过构建二级索引,用走两次索引代替全表扫描 实现 hoenix底层构建了大量的协处理器,来实现二级索引的构建 根据数据存储需求,创建原始数据表,将数据写入原始数据表 rowkey:id name age 根据数据查询需求...
  • HBase二级索引

    2015-01-21 17:26:03
    本方案主要参照了华为公布的HBase二级索引实现方案。基于hadoop平台,设计了Hbase的二级索引机制。
  • 使用的软件版本,注意软件版本很重要,很重要apache-phoenix-5.0.0-HBase-2.0-bin.tar.gzhadoop-2.9.2.tar.gzhbase-2.0.5-bin.tar.gzHbase中通过非rowkey查询数据查询速度会很慢为什么需要二级索引在Hbase中要想精确...
  • Phoenix 二级索引

    2021-02-09 11:39:50
    Phoenix 二级索引 1. 什么是 Phoenix 的二级索引 二级索引是从主键访问数据的正交方式。Hbase中有一个按照字典排序的主键Rowkey作为单一的索引。不按照Rowkey去读取记录都要遍历整张表,然后按照你指定的过滤条件...
  • 写在前面项目的日志模块中的日志数据都存储在 HBase 中,由于 HBase 只有 rowkey 这个一级索引的特性,为了方便对日志数据的个别字段进行查询,就需要额外创建二级索引之前参考了网络上非常多的二级索引实现方案,...
  • InnoDB的二级索引创建进入的主要函数为row_merge_build_indexes(),其整个过程大致可以分为三个步骤:扫描主建索引row_merge_read_clustered_index()、按照新的key排序row_merge_sort()、建立新的索引树row_merge_...
  • 二级索引存储结构又如何?什么是覆盖索引?怎么判断能不能用到索引?准备CREATE TABLE `book` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`author` varchar(20) DEFAULT NULL,`...
  • 二级索引末尾会保存主键的值,这个好理解,保存主键等待需要时回表但如果主键是联合索引,那么二级索引的末尾存的是什么呢?`CREATETABLET(AINT(11),BINT(11),CINT(11),PRIMARYKEY(A,B),KEYC(C),KEYCA(C,A));`名为 C...
  • DynamoDB中的二级索引包括全局二级索引和本地二级索引全局二级索引(global secondary index)DynamoDB属于NoSql类型的数据库,Nosql不代表没有索引,相反DynamoDB也存在全局索引和全局二级索引。但DynamoDB的索引和...
  • 一、解决的问题 1、RowKey 例子 ...二、对于上面需求 简单解决方案(二级索引 相当于添加一层映射关系到 原RowKey) 增加新的Hbase表 RowKey:hive_table__date___date__hive_table (解释:hive_tabl

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,861
精华内容 2,744
关键字:

二级索引