高基数列是指数据基本不重复或者均为唯一值的列。典型的高基数列有ID标识,电子邮件地址或者用户名等。一个具有高基数的数据表列的例子是具有一个名为USER_ID的列的USERS表。
这一列包含1-n的唯一值。每次在USERS表中创建一个新用户时,将在USER_ID列中创建一个新数字,以唯一地标识它们。由于USER_ID列中保存的值是唯一的,因此该列的基数类型被称为高基数。
如果你的工作中用到了数据库,特别是要处理时序数据,那么可能你就会面对处理高基数数据的挑战。
特别是工业物联网(如制造业、石油和天然气、公用事业等)以及一些监控和事件数据工作负载中,时间序列高基数的处理是一个常见问题。高基数也是开发人员经常讨论的一个话题,围绕它经常会有很多问题。
这里要澄清一个常见的混淆点:高基数在时序数据世界中之所以成为如此大的问题,是因为一些流行的时序数据库的局限性。如果选择了正确的数据库,高基数数据其实是一个已经解决了的问题。
让我们回过头来首先来定义什么是高基数。
广义上讲,基数是指一个集合中的值的数量。有时,集合的基数很小(低基数),有时可能很大(高基数)。例如,上图中有很多(美味的)M&M,但该数据集的基数非常小(6):
在数据库世界中,基数是指数据库的特定列或字段中包含的唯一值的数量。
然而,对于时序数据来说,事情可能变得有些复杂了。时序数据往往与描述该数据的元数据(有时称为“标签”)配对。
通常,主时序数据或元数据会被索引以提高查询性能,这样就可以快速找到匹配所有指定标签的值。时序数据集的基数最典型是定义方式为每个索引列的基数的交叉乘积。

如果有6种颜色的m&m巧克力豆以及5种类型的m&m巧克力豆(普通的、花生的、杏仁的、椒盐脆饼的和脆的),那么我们的基数现在是6×5 = 30种m&m巧克力豆。有了正确的索引,我们就能高效地找到所有蓝色的、酥脆的m&m巧克力豆(这是客观上最好的)。
如果你有多个索引列,每个列都有大量的唯一值,那么叉乘的基数可能会变得非常大。这是软件开发人员在谈论具有“高基数”的时序数据集时,“高基数”的通常含义。
高基数示例:工业物联网
想象一个物联网场景,在某个采石场,有大型、沉重的设备在进行采矿、破碎岩石和分类岩石这三种作业。
假设有10000件设备,每件设备有100个传感器,运行10个不同的固件版本,分布在100个地点:这个数据集的最大基数变成了10亿[10,000 x 100 x 10 x 100]。现在,假设设备也可以移动,我们想要存储精确的GPS位置(lat、long)(纬度,经度),并将其用作查询的索引元数据。因为(lat, long)是一个连续的字段(而不是像equipment_id这样的离散字段),通过对位置进行索引,这个数据集的最大基数现在是无限大的(无界)。
为时序设计的关系型数据库
不同的数据库采用不同的方法来处理高基数。根本上说,在使用高基数数据集时,数据库的性能表现如何可以追溯到它从一开始是如何设计的。
如果你正在处理大量的时序数据并使用关系数据库,那么用于索引数据的一种经过验证的数据结构是b树。依赖b树数据结构来索引数据对于高基数数据集有几个好处:
虽然时序数据库使用其他方法来实现高基数,但使用b树结构已被证明是可靠的。如果你遇到有关高基数的数据问题,可以留言一起讨论。
卢鑫旺,社区编辑,半路出家的九零后程序员。做过前端页面,写过业务接口,搞过爬虫,研究过JS,有幸接触Golang,参与微服务架构转型。目前主写Java,负责公司可定制化低代码平台的数据引擎层设计开发工作。
春节花粉过敏需要怎么治疗?需要注意些什么细节吗?
如果你对花粉过敏,那么症状发作的时间就是引起你过敏的植物花粉纷飞的时候。 如果你知道引起过敏的是哪一种花草树木,你就可以利用花粉月历来提醒自己。 如果你只记得每年自己是什么时候会开始产生症状,花粉月历可以协助你了解引起过敏的花粉可能是哪些。 不论你患的是哪一种过敏疾病,如果能在症状发作前两个礼拜左右开始治疗,治疗效果最好。 花粉月历是种很有用的指南,但是不同的气候带或气候反常时会使植物开花的时节稍微提前或廷后。 此外,某天某种特定花粉的数量也可能因为当天的天气及大气情况而有所不同。 花粉指数是指一立方公尺的空气中飘浮的花粉微粒数量,低于五十算是低量,高于二百就算很高了。 但如果你对花粉过敏,即使指数很低,也可能引起严重的症状。 9个防范高招:1:勿在室外久留:白天尽可能少待在室外,尤其是每天花粉指数的时间,例如晴天时的傍晚。 要做户外活动及各种运动项目时,尽可能选在花粉指数量低的时候,像是清晨、深夜,或是一场阵雨之后。 2:戴眼镜:戴眼镜可以减少你的眼睛受到影响的机会,所以不妨用有镜片的眼镜代替隐形眼镜,或是外出时带上太阳镜。 3:换衣服:如果你在花粉指数很高的时候外出,回来后记得换干净的衣服。 4:关紧门窗:白天要关上门窗,以防止花粉飞入。 5:避开过敏季节:可能的话,尽可能将假期安排在你的干草热季节,趁机避开。 不妨考虑到海边度假,因为海风会使空气中几乎没有花粉,也可以考虑选择到一个没有诱发因子会引起你过敏的国家度假。 6:勿在室外晾衣:尽可能在屋内晾干衣服(用干衣机更好)不要在室外晾衣服,否则衣服、被单、床单等容易沾染花粉。 7:避开污染物:要避免会让你症状加剧的所有东西,如灰尘及马路上的各种气味。 8:药物治疗:在鲜花盛开的季节,过敏有时是不可避免了,此时药房里所卖的抗组织胺药对你的过敏症状会有极大帮助,如果症状严重,应该尽快看医生,一般来说,医生会给你使用扑尔敏片、维生素C片、西施敏片、色甘酸钠、口服激素等作用更强一些的药物。 9:戒烟戒酒:有过敏症的吸烟喝酒者应停止吸烟喝酒。
极少人知道公积金贷款和公积金信用贷款的区别
公积金贷款和公积金信用贷款不是一回事。 公积金贷款是指缴存公积金的职工可按公积金贷款的相关规定申请个人住房公积金贷款,它是房贷的一种形式。 住房公积金账户内的存储余额除了可以还房贷外,以可以用于租房、装修等。 公积金信用贷款则是银行推出的信用贷款中的一种,指缴纳一定额度住房公积金的用户,不需要任何抵押和担保,就可以凭此去银行办理一定数额的贷款。 同时这笔贷款只能用于旅游、买车等个人消费,不能用于投资理财,否则这笔贷款会被银行收回,且个人征信会有污点。 简言之,公积金贷款主要是针对买房的房贷来说,而公积金信用贷款属于信用贷款的一种,主要是针对个人消费而言的,在公积金信用贷款中,公积金缴纳情况只是银行参考的凭证。 公积金贷款和公积金信用贷款在申请条件、利率、年限和贷款额度上有啥不同?在申请条件方面。 买房申请公积金贷款,不同城市对申请条件的规定不同。 例如,非京籍想在北京买房,需要5年连续社保或者60个月连续缴纳个税才能申请公积金贷款;在上海,非沪籍想买住宅,需要是在上海无房的已婚人士,且连续缴纳满5年及以上个税或社保才有资格申请公积金贷款。 而公积金信用贷款的申请条件,是由银行自主决定的,不同银行申请条件略有不同。 一般情况下,只要符合银行的连续缴存公积金年限要求,另外符合银行规定的公积金月缴存额,即可携带身份证和公积金缴存证明材料,到网点申请信用贷款。 在利率方面,公积金贷款的利率主要依据央行的调整。 例如2017年公积金贷款五年以下(含五年)的利率为2.75%,五年以上的利率为3.25%。 而公积金信用贷款利率,并没有统一的标准,不同的银行利率不同。 一般情况下,公积金信用贷款的利率比普通信用贷款的利率低一些,通常年利率在7%左右。 在年限和贷款额度方面。 公积金贷款,最长期限可以申请30年,但公积金信用贷款,一般最长年限为3年。 在贷款额度方面,不同的地区,公积金贷款最高额度不同。 例如部分二线城市本人公积金贷款最高限额40万元。 夫妻组合住房公积金贷款的,贷款最高限额60万元。 一般情况下,个人公积金账户余额越高,可以申请的公积金贷款的额度也就越高。 通常情况下,个人公积金贷款的额度是公积金账户余额的10-20倍。 而公积金信用贷款的额度,不同的银行额度不同,一般最高为30万或者50万不等。
城镇居民社会养老保险和在单位参加的养老保险有什么区别
城镇职工养老保险和城乡居民养老保险,有很大区别,简单的说,有下面几点:第一,城镇职工养老保险,是国家强制性的缴费,城乡居民养老保险,是自主参保,随意参加第二,城镇职工养老保险,按照职工工资作为缴费基数,按月缴费,城乡居民养老保险,按年缴费,缴费基数为固定的数额,比如100.200……。 第三,待遇不一样,城镇职工养老保险,缴费多,待遇高,居民养老保险,缴费较低,待遇自然也较低。 第四,领取年龄不一样。 城镇职工养老保险,男60,女工50,女干部55周岁可以办理退休领取养老金,但是缴费最低不能低于15年,并且必须缴费到退休年龄,居民养老保险只要缴纳满15年就可以,不论男女,都是60周岁领取,第五,城镇职工养老保险是指企事业职工,到年龄办理退休,城乡居民养老保险,不叫退休,只是领取养老金。 第六,职工养老保险,退休之后和城乡居民养老保险在领取养老金之后的调整,不执行一个文件,分别进行调整。
发表评论