首页 文章 精选 留言 我的

精选列表

搜索[日活数],共10000篇文章
优秀的个人博客,低调大师

OLAP分析型应用场景中,数仓中vacuum为何对列存表无效

摘要:对列存表执行vacuum为什么是无效的呢?其实这与列存表的存储结构以及数据写入方式有关。 本文分享自华为云社区《GaussDB(DWS)中vacuum为何对列存表无效?【这次高斯不是数学家】》,作者: i云上小白。 在OLAP分析型应用场景中,列式存储有十分明显的优势,相比行式存储,其高压缩比、高I/O效率及批量数据运算的特性极大提升了统计分析查询的效率。虽然存储模式不同,对列存表进行频繁的插入(insert)和更新(update)操作仍然会导致空间膨胀问题,实际上在很多时候,往往不建议对列存表进行数据更新和非批量方式的数据插入。 基于GaussDB(DWS)的mvcc机制,行存表在删除、更新数据时会保留原来的旧数据,这些数据我们称之为死元组(dead tuple)。频繁地对行存表执行删除和更新操作会导致数据页中产生大量的死元组,不但使存储空间膨胀,而且降低了对表的查询效率。针对这一现象,GaussDB(DWS)采用vacuum机制来清除不需要的死元组及索引,释放空间。但对于列存表来说,vacuum是无效的,必须使用vacuum full才能有效回收空间。 当然对行存表执行vacuum回收空间是有限的,在某些情况下vacuum后的表大小甚至不会有丝毫变化。这是因为如果删除的记录位于表的末端,其所占用的空间将会被物理释放并归还操作系统,而如果不是末端数据,会将表中或索引中dead tuple所占用的空间置为可用状态,从而复用这些空间。 对列存表执行vacuum为什么是无效的呢?其实这与列存表的存储结构以及数据写入方式有关。 从下图中可知,列存表的最小存储单元是CU(Compress Unit),每个CU的大小为8KB的整数倍(需要注意的是,CU并不是由页组成的,它是一个独立的存储单元),最多存储1列60000行数据。同一列的多个CU连续存放在一个数据文件中,当数据文件的大小超过1G,会自动切换到新的文件中。 除此之外,每个列存表还有一个记录CU的辅助和管理信息的行存表CUDesc表,该表中的每一行记录对应一个CU,包括最大值/最小值、数据条数,以及CU在文件中的偏移量及大小。其中,col_id=-10的行为VCU, cu_pointer记录这一组CU(cu_id相同)中哪些行被删除。另外,CU的可见性也是通过CUDesc的可见性来决定的。 当在列存表上导入数据时,首先数据会按列导入CU cache,如果设置了PCK(Partial Cluster Key),导入数据会按照指定列进行局部排序(默认420万条数据进行排序),最后再生成CU(生成CU时,会根据数据类型进行压缩),并写入文件。列存表推荐使用批量方式导入数据,如insert into select/copy、GDS、SQL on Hadoop/OBS等,这样可以充分利用CU空间,以及使用PCK索引。单行数据插入会产生较多的小CU文件,不但会造成空间浪费,还会导致访问效率降低。因此对于列存表的数据导入,强烈推荐使用批量方式。 下面我们看看列存表上的删除和更新操作是如何进行的。 在列存表上进行delete时,首先会根据删除条件找到需要删除的行ctid(cu_id,offset),然后对需要删除的行ctid去重(每420万行排序去重),最后在行对应的VCU的delete map上打上删除标记。至于update操作,实际上是一个delete+insert(append)操作。首先根据更新条件找到更新的行,打上删除标记(ctid需去重),然后将原来整行更新相应数据后,插入到新CU中。 对行存表来说,数据页中的每个元组都占用了一块独立的空间,每个元组有一个行指针,记录了这个元组的状态。当执行update或者delete操作后,死元组的行指针lp_flags的状态会被标记为3: LP_DEAD,即死亡状态,等待vacuum清理。倘若执行了vacuum,指针状态会被标记为0: LP_UNUSED,即未使用状态,表示该元组占用的空间可以被复用。 虽然列存表可以像行存表那样对被删除或者更新前的数据进行标记,但由于CU中的数据是按列连续存放的,CU生成数据后固定不可更改。如果使用指针对每一个数据位的状态进行标记,其代价较大(行指针长度几乎等于数据长度,同时I/O开销巨大),而且数据写入CU采用的是追写(append)方式,即便死元组被标记为可复用状态,也无法再使用这些空间。 另外,列存表的读取是以CU为单位,真正影响列存表性能的是CU文件数量,而vacuum即便可以回收死元组占用的空间,却不能合并小CU文件。因此,对列存表来说,vacuum是无效的。此时,可以使用vacuum full整理CU碎片,合并小CU文件,提升性能。 点击关注,第一时间了解华为云新鲜技术~

优秀的个人博客,低调大师

终端连接数近4.2亿!来,加快走进多彩的“5G生活”

5G将在哪些领域重点推进?还将延伸到什么地方?未来,还有哪些创新应用站上“风口”? “云生活”,技术不断打开想象 车位预约、AR实景导航、一键缴费……你还在为找车位发愁?5G智慧停车,帮你化解困扰。 通过百度地图构建的智能算法和解决方案,在上海南翔印象城MEGA,3000个停车泊位可以实现智能化联动和管理。停车难,在技术的“加持”下逐步得到缓解。 智慧停车、远程医疗、协同办公……高速网络下,人们的生活快速进入“云时代”。 北京天坛医院联合北京安德医智发布了急性脑卒中再灌注治疗智能决策平台iStroke,利用人工智能快速精准进行影像分析,共享接诊信息,缩短急救决策过程;智慧果园实现自动浇水、自动物理杀虫和可视化管理,产量提高的同时运营成本降低;网络货运平台实现在线货找车、车找货,综合物流成本进一步压缩……聚焦生活中的“痛点”,创新不断推出。 以智能医疗为例,天眼查数据显示,我国共有近32万家企业名称或经营范围全部包含“医疗”、部分包含“科技、智能服务、人工智能、机器人”的智慧医疗相关企业。 “我国累计打造万余个5G应用创新案例。”工信部信息通信管理局局长赵志国说,5G适度超前建设,极大加速应用丰富,在医疗、交通、教育等行业形成一批典型应用。 “云制造”,应用向生产端延伸 “5G+智慧港口”“5G+数字工厂”“5G+城市建筑”……很多领域,都因技术而变得不同。 “一切皆服务。”联想集团董事长杨元庆用这句话来形容5G为联想业务带来的变革。 当计算能力、数字技术、智能架构应用在供应链中更多环节、服务于更多企业数字化转型,联想也从电子信息制造商逐步向计算服务、数字基础设施服务等拓展。 从制造到服务,“产品”的形态不断丰富;从做生产到建生态,产业的边界加速拓展。 以服装为媒介,通过物联网等技术将数据有机衔接,海尔与生态链上的企业共同打造衣联网,覆盖服装、家纺、洗衣液等135个行业,为用户提供衣物洗、护、存、搭、购乃至回收的全生命周期智慧解决方案。“我们在生态上获得的利润比单纯在电商平台高得多。”衣联网生态链的一个晾衣架品牌负责人表示。 记者从工信部了解到,5G在生产制造领域加速应用,特别是“5G+工业互联网”已成为应用创新最活跃的领域之一,“5G+工业互联网”在建项目超过1600个。 随着数字产业化、产业数字化步伐加快,截至今年6月底,制造业重点领域关键工序数控化率、数字化研发设计工具普及率分别达53.7%和73.7%。智能制造装备国内市场满足率超过50%。 面向三大领域 加快创新应用 我国累计建成5G基站103.7万个,已覆盖全国所有地市级城市、95%以上的县城城区。 快速“奔跑”的5G,又迎来了“新速度”——工信部宣布,要按照适度超前的原则,全面推进5G网络建设,加快向乡镇覆盖延伸。 更加密集部署基站,5G体验感将大大增强;向更广范围延伸,越来越多的“小镇青年”享受5G网络冲浪;聚焦重点行业,更多智能操作将亮相…… 赵志国表示,面向新型信息消费、实体经济、民生服务三大领域,聚焦工业、交通、医疗、农业、文旅等多个重点行业,再培育一批5G融合创新应用,遴选典型应用场景,加快成熟模式复制推广。同时,将加快交通枢纽、商业中心等重点区域5G网络覆盖。 “我们将推动各地在场地场所、用电、人才等方面加大对5G的支持,形成协同创新、互利共赢的良好产业生态。”赵志国说。

优秀的个人博客,低调大师

IC Insights:2021年MPU销量将继续保持两位数增长

据外媒报道,由于手机应用处理器收入的强劲增长,2021年MPU市场总额有望首次超过1000亿美元。 IC Insights最近发布的《2021年麦克林报告》年中更新预测,2021年MPU销量将增长14%,这将使整个MPU市场达到创纪录的1037亿美元,而1月份的预期增幅为9%。 IC Insights还对MPU的未来五年收入的预测提高到7.1%的复合年增长率,这将使2025年的销售额达到1278亿美元,而2020年的销售额约为907亿美元。 在2020年新冠肺炎疫情期间,全球对互联网的日益依赖导致了大屏幕、高端智能手机(其中许多是5G手机)的强劲增长,这导致了2020年手机应用处理器收入的激增。 年中更新显示,2021年手机应用处理器的销售额增长了34%,达到357亿美元。预计2021年手机应用处理器出货量将增长11%,今年这些处理器的ASP将增长20%。 此外,IC Insights的年中最新数据显示,嵌入式MPU的销售额预计今年将达到197亿美元,全球出货量增长12%。嵌入式MPU涵盖物联网、汽车、工业、医疗、消费、电信和网络设备等广泛的系统应用。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册