背景: 这是实际项目中遇到的实例,主要涉及到rowkey查询,索引查询 以及主键primary key。问题是在sql使用order by 查询 时遇到的,以下为个人浅见,仅供参考。
内容:
Hbase中存在数据表如下:
CREATE TABLE IF NOT EXISTS Test.AppLog (
UserId INTEGER NOT NULL,
Number INTEGER NOT NULL,
AcType INTEGER NOT NULL,
Upserttime DATE NOT NULL,
UploadCount INTEGER NULL,
Token VARCHAR(50) NULL,
IsSuccess BOOLEAN NULL,
Data VARCHAR NULL,
ErrorMessage VARCHAR NULL,
CONSTRAINT pk_TestAppLog
PRIMARY KEY (UserId, Number, AcType, Upserttime)
) default_column_family='apl', SALT_BUCKETS=8;
建立表相应的索引
CREATE INDEX IF NOT EXISTS idx_TestAppLog_Upserttime ON Test.AppLog (Upserttime)
INCLUDE (UserId, Number, AcType) SALT_BUCKETS=8;
针对上表,当我们使用select * 查询时,是走主键(rowkey)查询的。
eg: