首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Phoenix快速入门系列(3) | 一文教你如何在Phoenix中创建 HBase 二级索引

    在前面的学习中, 我们知道 HBase 只能通过 rowkey 进行搜索, 一般把 rowkey 称作一级索引. 在很长的一段时间里 HBase 就只支持一级索引.   HBase 里面只有 rowkey 作为一级索引, 如果要对库里的非 rowkey 字段进行数据检索和查询, 往往要通过 MapReduce/Spark 等分布式计算框架进行,硬件资源消耗和时间延迟都会比较高。   为了 HBase 的数据查询更高效、适应更多的场景, 诸如使用非 rowkey 字段检索也能做到秒级响应,或者支持各个字段进行模糊查询和多字段组合查询等, 因此需要在 HBase 上面构建二级索引, 以满足现实中更复杂多样的业务需求。   从 0.94 版本开始, HBase 开始支持二级索引.   HBase 索引有多种放方案, 我们今天要做的是使用 Phoenix 给 HBase 添加二级索引.

    01

    Phoenix优化

    hbase-site.xml: <property> <name>hbase.master.maxclockskew</name> <value>45000000</value> </property> <property>    <name>hbase.rpc.timeout</name> <value>36000000</value>    </property> <property>    <name>hbase.client.scanner.timeout.period</name> <value>36000000</value>    </property> <property>    <name>mapreduce.task.timeout</name> <value>1200000</value>    </property> <property>    <name>zookeeper.session.timeout</name> <value>1200000</value>    </property> <property> <name>hbase.client.write.buffer</name> <value>20971520</value> </property> <property> <name>hbase.balancer.period</name> <value>300000</value> </property> <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> </property> 组合主键: create table "test_keys2" ( "V_1" decimal(24,8), "V_2" varchar, "YEAR" INTEGER not null , "PERIOD" INTEGER not null ,"ACCOUNT" INTEGER not null , "ENTITY" INTEGER not null , "SCENARIO" INTEGER not null , "CURRENCY" INTEGER not null , "VERSION" INTEGER not null , "CST_DIM_02217" INTEGER not null, "CST_DIM_30453" INTEGER not null, "CST_DIM_47894" INTEGER not null , "CST_DIM_61310" INTEGER  not null , "CST_DIM_81981" INTEGER not null , "CST_DIM_01216" INTEGER not null, "CST_DIM_25287" INTEGER  not null, "CST_DIM_41183" INTEGER not null constraint pk primary key("YEAR" ,  "PERIOD" , "ACCOUNT" ,"ENTITY" , "SCENARIO" , "CURRENCY" , "VERSION","CST_DIM_02217" ,"CST_DIM_30453" ,"CST_DIM_47894" , "CST_DIM_61310","CST_DIM_81981" ,"CST_DIM_01216" , "CST_DIM_25287" ,"CST_DIM_41183")); upsert插入数据有问题 二级索引: 同步创建索引 CREATE INDEX ifact1 ON C1_FACT("diminfo".YEAR) INCLUDE("diminfo"."V_1","diminfo".V_2 ,  "diminfo".PERIOD ,  "diminfo".ACCOUNT , "diminfo".ENTITY , "diminfo".SCENARIO , "diminfo".CURRENCY , "diminfo".VERSION ,"diminfo"."CST_DIM_02217" , "diminfo"."CST_DIM_30453" , "diminfo"."CST_DIM_47894" , "diminfo"."CST_DIM_61310", "diminfo"."CST_DIM_81981" ,

    01
    领券