MAPREDUCE服务 MRS-Phoenix BulkLoad Tool使用限制说明:回答
回答
问题分析
- 创建表。
CREATE TABLE TEST_TABLE( DATE varchar not null, NUM integer not null, SEQ_NUM integer not null, ACCOUNT1 varchar not null, ACCOUNTDES varchar, FLAG varchar, SALL double, CONSTRAINT PK PRIMARY KEY (DATE,NUM,SEQ_NUM,ACCOUNT1) );
- 创建全局索引
CREATE INDEX TEST_TABLE_INDEX ON TEST_TABLE(ACCOUNT1,DATE,NUM,ACCOUNTDES,SEQ_NUM);
- 插入数据
UPSERT INTO TEST_TABLE (DATE,NUM,SEQ_NUM,ACCOUNT1,ACCOUNTDES,FLAG,SALL) values ('20201001',30201001,13,'367392332','sffa1','','');
- 执行BulkLoad任务更新数据
- 问题现象:无法直接更新之前存在的索引数据,导致存在两条索引数据。
+------------+-----------+-----------+---------------+----------------+ | :ACCOUNT1 | :DATE | :NUM | 0:ACCOUNTDES | :SEQ_NUM | +------------+-----------+-----------+---------------+----------------+ | 367392332 | 20201001 | 30201001 | sffa1 | 13 | | 367392332 | 20201001 | 30201001 | sffa888 | 13 | +------------+-----------+-----------+---------------+----------------+
解决方法
- 删除旧的索引表。
DROP INDEX TEST_TABLE_INDEX ON TEST_TABLE;
- 异步方式创建新的索引表。
CREATE INDEX TEST_TABLE_INDEX ON TEST_TABLE(ACCOUNT1,DATE,NUM,ACCOUNTDES,SEQ_NUM) ASYNC;
- 索引重建。
hbase org.apache.phoenix.mapreduce.index.IndexTool --data-table TEST_TABLE --index-table TEST_TABLE_INDEX --output-path /user/test_table
- 云日志服务的使用限制_云日志服务_使用限制说明
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_什么是Yarn_如何使用Yarn
- MapReduce服务_什么是Flink_如何使用Flink