ApacheDoris的Bitmap索引和BloomFilter索引使用及注意事项(apache doris)

admin3年前云主机43

内容介绍
  • 1. Bitmap索引的使用
    • 1.1 Bitmap索引介绍
    • 1.2 Bitmap索引使用的注意事项
    • 1.3 Bitmap索引的使用
  • 2. BloomFilter索引
    • 2.1 BloomFilter索引介绍
    • 2.2 BloomFilter原理
    • 2.3 BloomFilter索引的使用
    • 2.4 Doris BloomFilter使用场景
    • 2.5 Doris BloomFilter使用注意事项

1. Bitmap索引的使用

1.1 Bitmap索引介绍


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

1.2 Bitmap索引使用的注意事项


使用限制

  • 目前索引仅支持bitmap类型的索引
  • bitmap索引仅在单列上创建
  • bitmap索引能够应用在Duplicate、Uniq数据模型的所有列和Aggregate模型的key列上
  • bitmap索引仅在Segment V2储存格式下生效。当创建index时,表的存储格式将默认转换为V2格式

bitmap索引支持的数据类型:

  • TINYINT
  • SMALLINT
  • INT
  • UNSIGNEDINT
  • BIGINT
  • CHAR
  • VARCHAR
  • DATE
  • DATETIME
  • LARGEINT
  • DECIMAL
  • BOOL

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索引也是以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使用场景

  • 首先BloomFilter适用于非前缀过滤
  • 查询会根据该列高频过滤,而且查询条件大多是in和=过滤
  • 不同于Bitmap, BloomFilter适用于高基数列。比如UserID。因为如果创建在低基数的列上,比如”性别“列,则每个Block几乎都会包含所有取值,导致BloomFilter索引失去意义

2.5 Doris BloomFilter使用注意事项

  • 不支持对Tinyint、Float、Double 类型的列建Bloom Filter索引
  • Bloom Filter索引只对in和=过滤查询有加速效果
  • 如果要查看某个查询是否命中了Bloom Filter索引,可以通过查询的Profile信息查看

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

《ApacheDoris的Bitmap索引和BloomFilter索引使用及注意事项(apache doris)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

台湾服务器供应商怎么选择

介绍随着互联网技术的发展,更多企业和个人开始关注服务器的需求。选择一个适合自己的台湾服务器供应商是非常必要的。但是在众多的供应商中作出选择并不容易,因为它涉及到很多因素,如服务器价格、网络连接速度、数...

云存储有什么用

什么是云存储?云存储是一种将数据存储在远程服务器上的技术,用户可以通过网络上传、下载或管理其数据。这种技术为数据存储、备份、共享和访问提供了更加便捷、安全和可靠的方法。与传统的本地存储方式不同,云存储...

七安云

简介七安云是一家专注于智能家居领域的科技公司,致力于将人工智能技术应用到家居生活中,为用户带来更加舒适、便捷、安全、节能的生活体验。产品特点七安云的产品特点是智能、人性化、安全、可靠。其智能化程度非常...

租个便宜的菲律宾服务器选哪家?

租个便宜的菲律宾服务器选哪家?在选择便宜的菲律宾服务器提供商时,以下是一些需要考虑的主要因素:价格:价格是选择服务器提供商的首要考虑因素之一。不同的服务提供商可能会有不同的价格策略和计划,需要根据自己...

全球域名申请攻略:如何申请国外域名并设置网站

在这篇文章中,将介绍全球域名申请攻略,详细讲解如何申请并设置国外域名。本文将从四个方面进行详细阐述,分别是域名注册、域名解析、域名备案以及设置网站。一、域名注册在注册国外域名时,我们需要了解一些通用的...

菲律宾服务器和香港服务器一样吗?

菲律宾服务器和香港服务器一样吗?菲律宾服务器和香港服务器并不完全一样。虽然它们都是服务器,但它们可以在许多方面存在差异,包括以下几个方面:1.位置:菲律宾服务器和香港服务器位于不同的地理位置。菲律宾服...