6. 意向用户主题看板_增量流程
6.1 数据采集(拉链表)
7. hive的索引
索引的作用: 加快查询的效率
为什么索引可以提升查询效率呢?
hive索引是在 分区 分桶优化基础上, 又提供一种新的优化手段, 如果分区 和分桶受限, 可以尝试使用索引的方式来优化处理
hive提供了三种索引:
- 原始索引
- row group index(行组索引)
- bloom filter index(布隆过滤索引)
7.1 hive的原始索引
结论: 此索引已经不再使用, 在hive3.0以上, 彻底不支持
7.2 row group index(行组索引)
建表操作:
CREATE TABLE lxw1234_orc2(
....
) stored AS ORC
TBLPROPERTIES
(
'orc.compress'='SNAPPY',
-- 开启行组索引
'orc.create.index'='true'
)
插入数据:
SELECT CAST(siteid AS INT) AS id,
pcid
FROM lxw1234_text
-- 插入的数据保持排序
DISTRIBUTE BY id sort BY id;
7.3 bloom filter index(布隆过滤索引)
如何使用:
CREATE TABLE lxw1234_orc2 (
....
) stored AS ORC
TBLPROPERTIES
(
'orc.compress'='SNAPPY',
'orc.create.index'='true',
-- pcid字段开启BloomFilter索引
"orc.bloom.filter.columns"="pcid"
)
插入数据:
SELECT CAST(siteid AS INT) AS id,
pcid
FROM lxw1234_text
DISTRIBUTE BY id sort BY id;
使用索引:
SET hive.optimize.index.filter=true --开启 hive的自动使用索引
SELECT COUNT(1) FROM lxw1234_orc1 WHERE id >= 0 AND id <= 1000 (行组索引)
AND pcid IN ('0005E26F0DCCDB56F9041C','A'); (布隆过滤索引)
注意 如果要使用hive的索引, 必须开启hive自动使用索引
SET hive.optimize.index.filter=true --开启 hive的自动使用索引
当然也可以将这个配置, 直接配置到cm的hive的配置窗口中, 进行统一配置
在生产中这些索引如何选择呢?