作者:lipei0927 | 来源:互联网 | 2023-08-07 17:54
phoenix创建索引的两种方法:1、在线,在线的方式创建索引,在数据量大的时候,会建不出来,在创建时也会影响正常的读写2、离线,离线即异步创建的方式下,以起MapReduce任务
phoenix创建索引的两种方法:
1、在线,在线的方式创建索引,在数据量大的时候,会建不出来,在创建时也会影响正常的读写
2、离线,离线即异步创建的方式下,以起MapReduce任务的形式生成索引表对应的hbase表表文件,以实现异步创建
离线创建:
1、命令行执行:
CREATE INDEX INDEX_DWR_NT_ORDER_DETAIL_ORDER_NO4 on DWR_NT_ORDER_DETAIL (“order_info”.”ORDER_NO”) ASYNC SALT_BUCKETS=8,MAX_FILESIZE=10737418240;
参数解释:
ASYNC:异步创建
执行完好,查看索引状态为building状态,未激活
2、命令执行
./hbase org.apache.phoenix.mapreduce.index.IndexTool –schema default –data-table DWR_NT_ORDER_DETAIL –index-table INDEX_DWR_NT_ORDER_DETAIL_ORDER_NO4 –output-path ASYNC_IDX_HFILES
参数解释:
–data-table 源数据表
–index-table 索引表
–output-path MapReduce任务写出的目标文件存放的hdfs路径
最后创建完成后,更新激活索引状态
备注:异步创建索引时,如果有新数据写入,会出现索引表数据丢失现象,创建完成后,数据正常写入不会丢失,所以,创建完成后可能需要往索引表补数据!