文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Apache Doris的Bitmap索引和BloomFilter索引使用及注意事项

2024-04-02 19:55

关注
目录

1. Bitmap索引的使用

1.1 Bitmap索引介绍

bitmap index是一种位图索引,是一种快速数据结构,能够加快查询速度

1.2 Bitmap索引使用的注意事项

使用限制

bitmap索引支持的数据类型:

1.3 Bitmap索引的使用

创建索引

mysql> create index if not exists click_bitmap_index on test_db.click (user_id) using bitmap comment 'bitmap index test';
Query OK, 0 rows affected (0.05 sec)

mysql> 

查看索引

mysql> show index from test_db.click;
+-------------------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-------------------+
| Table                         | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment           |
+-------------------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-------------------+
| default_cluster:test_db.click |            | click_bitmap_index |              | user_id     |           |             |          |        |      | BITMAP     | bitmap index test |
+-------------------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-------------------+
1 row in set (0.04 sec)

mysql> 

删除索引

mysql> drop index if exists click_bitmap_index on test_db.click;
Query OK, 0 rows affected (0.03 sec)

mysql> 

2. BloomFilter索引

2.1 BloomFilter索引介绍

是一种多哈希函数映射的快速查找算法,本质上是一种位图结构。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合,因为BloomFilter会告诉调用者一个元素存在或不存在一个集合。但存在不一定准确

2.2 BloomFilter原理

实际上是由一个超长的二进制位数组和一系列的哈希函数组成。二进制位数组初始全部为0,当给定一个元素时,这个元素会被一系列哈希函数计算映射出一系列的值,所有的值在位数组的偏移量处置为1。而对于一个待查询的元素,也会用相同的哈希函数映射到位数组上,只要有一个哈希函数映射没有命中之前的元素的偏移量,则不存在于集合中

下图所示出一个m=18, k=3(m是该Bit数组的大小,k是Hash函数的个数)的Bloom Filter示例。集合中的x、y、z三个元素通过3个不同的哈希函数散列到位数组中。当查询元素w时,通过Hash函数计算之后因为有一个比特为0,因此w不在该集合中

BloomFilter

BloomFilter索引也是以block为粒度创建的。每个Block中,指定列的值作为一个集合生成一个BloomFilter索引条目,用于在查询是快速过滤不满足条件的数据

2.3 BloomFilter索引的使用

创建表使用BloomFilter索引

mysql> create table order_tb(
    -> user_id bigint,
    -> order_date date,
    -> city varchar(32),
    -> url varchar(512)
    -> ) distributed by hash(user_id, city) buckets 8
    -> properties(
    -> 'bloom_filter_columns'='user_id,order_date'
    -> );
Query OK, 0 rows affected (0.07 sec)

mysql> 

查看BloomFilter索引

mysql> show create table order_tb;

删除BloomFilter索引

mysql> alter table test_db.order_tb set ('bloom_filter_columns' = '');
Query OK, 0 rows affected (0.05 sec)

mysql>

修改BloomFilter索引

mysql> alter table test_db.order_tb set ('bloom_filter_columns' = 'user_id,city');
Query OK, 0 rows affected (0.05 sec)

mysql> 

2.4 Doris BloomFilter使用场景

2.5 Doris BloomFilter使用注意事项

到此这篇关于Apache Doris的Bitmap索引和BloomFilter索引使用的文章就介绍到这了,更多相关Apache Doris索引内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯