RoaringBitmap位图

Greenplum圈人神器roaringbitmap 发布v0.2.66 Roaringbitmap是一种高效的Bitmap压缩算法。Bitmap位计算非常适合大数据基数计算,常用于去重、标签筛选、时间序列等计算中。GPDB-roaringbitmap插件将Roaringbitmap功能集成到Greenplum数据库中,将Roaringbitmap作为一种数据类型提供原生的数据库函数、操作符、聚合等功能支持。 使用gpdb-roaringbitmap插件的用户注意了... 阅读详情

前言

Bitmap目前是一种比较常见的计数统计模型,Bitmap的数据结构是二进制类型的按位统计,每一位都有两种状态(0,1)。

举个例子:比如我们要使用Bitmap记录当前系统的在线人数,假设我们系统有1000个用户(包含在线和不在线的用户),那么我们设定状态0为不在线, 1为在线状态,每一位的顺序代表用户id,初始化Bitmap(1000位)
那么此时模型:000000000… (1000个0)
假设用户id为7的用户登录,那么我们的Bitmap的第7位设置成1代表用户id为7的用户是在线状态。
此时模型:000000100…
因为二进制的特性我们可以进行一些与或非运算以及将二进制转换成十进制。
比如

  • 每周在线的人数统计,将本周每天的Bitmap进行 | 运算 1|1 = 1。
  • 当前日活总数,将二进制转为十进制就是目 000000100… = 1(十进制)

Bitmap 常用场景

  • 快速排序(计数排序)
  • 快速去重
  • 快速查询(如刚刚提到的在线人数查询等)

Bitmap缺陷

Bitmap是一种非常好的数据结构,但是也存在着空间浪费的问题,比如我系统的在线人数是1,整个系统有1000w用户,那么就会造成大量的空间浪费。

RoaringBitmap

针对于Bitmap空间利用率低下的问题,RoaringBitmap相对于Bitmap有效的提高了空间利用率以及提供了更好的性能。并且被Lucene,Spark,Kylin开源框架所采用。

主要思想

RoaringBitmap主要思想是将数据的前1
【java】高效压缩位图RoaringBitmap的原理与应用 1.概述 转载:https://www.jianshu.com/p/818ac4e90daf 学习到了这个技术,转载一下加深记忆 2.位图法简述 对于我们大数据工作者来说,海量数据的判重和基数统计是两个绕不开的基础问题。之前我已经讲了两种应用广泛的方法,即布隆过滤器和HyperLogLog。虽然它们节省空间并且效率高,但也付出了一定的代价,即: 只能插入元素,不能删除元素; 不保证100%准确,总是存在误差。 这两个缺点可以说是所有概率性数据结构(probabilistic data structur. 阅读详情

相关推荐

从AMBA到USB:手把手教你评估和选择Synopsys DesignWare里的免费商用IP

本文详细介绍了如何评估和选择Synopsys DesignWare中的免费商用IP,从AMBA到USB等关键模块。通过技术参数核对、验证环境评估和集成注意事项,帮助工程师高效利用这些经过硅验证的商业级IP,提升SoC设计效率。文章还探讨了免费IP与付费IP的边界策略,避免常见陷阱。

weixin_42683394的博客 297

SARscape的DInSAR全流程-以西安市隋大兴唐长安城遗址为例

通过DInSAR对西安市隋大兴唐长安城遗址开展的年度周期性监测,发现成因是地质内部构造断裂带活动所导致的地面产生物理空间上的形变,而地面的沉降与抬升是直接影响城市发展与文化遗产保护最为常见的缓变型不可逆地质灾害。西安市地处汾渭断陷盆地中部,受临潼-长安断裂带影响,导致区域内构造活动较为强烈。由于早年西安市地表水资源匮乏,从上世纪50年代末开始大量开采地下水资源以满足城市人口不断扩张的需求,从而导致地下承压含水层水位急速下降,形成多个局部沉降中心(八里村、西工大、电子城等)。

2301_77687129的博客 5815

高项备考论文:规划绩效域

高项备考论文:规划绩效域

liuxu324的博客 1128

PyTorch深度学习实战(1)——神经网络与模型训练过程详解

在本节中,我们将了解传统机器学习与人工神经网络间的差异,并了解如何在实现前向传播之前连接网络的各个层,以计算与网络当前权重对应的损失值;实现反向传播以优化权重达到最小化损失值的目标。并将实现网络的所有关键组成——前向传播、激活函数、损失函数、链式法则和梯度下降,从零开始构建并训练了一个简单的神经网络。

盼小辉丶的博客 9万+

MCU-内部flash模拟成EepRom(重新梳理)

通过fee写数据Data的过程中,数据会mapping一个虚拟地址,这个虚拟地址就是你的身份,在向flash写数据的过程中会写入很多相同虚拟地址的不同数据,在读取或切页的过程中,遍历数据只会认为最下面第一个的虚拟地址所持有的数据是有效数据,其他的都是老数据,可以丢弃。模拟成eeprom的两个eep_page写数据逻辑就是,先在eep_page0写数据,eep_page0写满后,将eep_page0的有效数据copy到eep_page1,之后擦eep_page0;

xiandang8023的博客 711

真格量化——GFTD策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import numpy as np import math #开始时间,用于初始化一些参数 def OnStart(context) : print "I\'m starting..." #设置全局变量 g.signalcount = 0 g.signal_list = [] g.buysignal = 0 .

qq_26742269的博客 1284

【光子 AI 】应用 LangGraph 的核心模型和算法原理,完整实现一个极简版的 Agent 开发框架源代码,并给出具体的应用测试实际项目案例

下面给出一个“极简版 LangGraph 风格 Agent 框架”的完整可运行实现:用 有向图 + 状态(State) + 节点(Node) + 条件路由(Conditional Edge) + 循环(Loop) + Checkpoint 这一套核心模型/算法,把 Agent 组织成可编排、可测试的状态机工作流(这正是 LangGraph 的核心抽象之一:以 StateGraph 组织节点,节点读写共享状态,边做路由与循环,并支持持久化/回放)。 参考概念来源:LangGraph 官方文档对 “StateG

AI天才研究院 270

计算机组成原理(第三版)唐朔飞-第一章第二章-课后习题

计算机组成原理

weixin_45735391的博客 7万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 字符串相似度算法(编辑距离算法)
下一篇: Java ThreadLocal源码学习
hellopeng1
博客等级 码龄10年 66粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值