ORC与Parquet列式存储的区别

ORC与Parquet列式存储

      • 1、ORC与Parquet列式存储
      • 2、ORC与Parquet的区别




列式存储(Columnar Storage)是一种优化的数据存储方式,与传统的行式存储(Row Storage)相比,列式存储在数据压缩、查询性能、I/O效率等方面具有明显的优势

在大数据领域中,ORC(Optimized Row Columnar)和Parquet是两种流行的列式存储格式,它们在数据压缩、查询性能、存储效率等方面有着各自的特点和优势

1、ORC与Parquet列式存储


Apache ORC是一种自描述类型感知的列式文件格式,专为Hadoop工作负载而设计。它针对大型流式读取进行了优化,并集成了快速查找所需行的支持。以列式格式存储数据可让读取器仅读取、解压缩和处理当前查询所需的值。由于ORC文件具有类型感知能力,因此写入器会选择最适合该类型的编码并在写入文件时构建内部索引

谓词下推使用这些索引来确定需要为特定查询读取文件中的哪些条带,而行索引可以将搜索范围缩小到特定的10000行集合ORC支持Hive中的完整数据类型,包括复杂类型:Struct、List、Map和Union

ORC官网:https://orc.apache.org/

Apache Parquet是一种开源的列式数据文件格式,旨在实现高效的数据存储和检索。它提供高性能压缩和编码方案来批量处理复杂数据,并且受到许多编程语言和分析工具的支持

Parquet官网:https://parquet.apache.org/

2、ORC与Parquet的区别


以下是ORC与Parquet的区别与联系:

1)相同点

  • 基于Hadoop文件系统,属于线上格式,可以在节点间传递数据
  • 采用列式二进制存储结构
  • 采用高效的压缩
  • 文件可分割,具有较强的伸缩性和并行处理能力
  • 使用Schema进行自我描述
  • 降低存储成本,减少磁盘I/O成本

2)不同点

比较项ORCParquet
默认压缩ZLIB(压缩比较高)Snappy压缩(压缩比较低)
操作支持delete、update不支持delete、update
数据类型支持collection、array、map等复杂类型仅支持普通类型
谓词下推支持(减少磁盘I/O成本)不支持
事务支持ACID(原子性、隔离性、一致性、持久性),但仅限于分桶表不支持事务
兼容性Hive、PrestoImpala、Spark、Drill、Arrow
场景HiveSpark

两种列式存储格式都具有明显的优势。通过合理选择存储格式、压缩算法和查询优化技术,可以最大程度地提升数据处理和分析的效率,满足不同业务场景的需求



参考文章:https://zhuanlan.zhihu.com/p/257917645


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源 150 T 数据(2023年之前所有数据)

开源 150 T 数据(2023年之前所有数据) 开源 150 T 数据生成大规模、高质量训练数据集 生成巨量数据 数据清洗和过滤 混合数据源 多级别训练和模型评估 探索新的训练策略多级别训练和模型评估探索新的训练策略 万卡 H100 集群训练 开源 150 T 数据 …

二进制方式部署k8s集群

前置知识点 1、生产环境部署K8s集群的两种方式 • kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 • 二进制包 从github下载发行版的二进制包,手动部署每个组件,组成Kub…

【perl】脚本编程的一些坑案例

引言 记录自己跳进的【perl】编程小坑,以己为鉴。 1、eq $str1 "12345\n"; $str2 "12345"; if ($str1 eq $str2) { print "OK" } 上述代码不会打印 OK。特别在读文件 ,匹配字符串时容易出BUG。 案例说明: 有…

python3.12.4 常用四个数据类型的各个函数详解

在完成目标前,我们最好审视自己到底有什么,有多远。 零、介绍 我打算详细了解一下常用的几种数据类型的各个接口,主要的来源是python shell中的 help(…)命令。python中基本的数据类型有四个 list, tuple, dict, set, 宽泛的讲,肯…

C++编程逻辑讲解step by step:存折和信用卡类。

题目 存折和信用卡类&#xff0c;信用卡是一种存折&#xff0c;可以透支&#xff0c;可以存款。 代码 #include<iostream> #include<string> using namespace std; class passbook {public: passbook(string nam,int n,float m) {namenam; numn; balancem; } vo…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式8275张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8275 标注数量(xml文件个数)&#xff1a;8275 标注数量(txt文件个数)&#xff1a;8275 标注…

python每日学20:一个更加实用的类

背景&#xff1a;今天继续学习《python学习手册》第28章《一个更加实际的示例》&#xff0c;今天学习本章前言&#xff0c;页码是803-808 本章要创建二个更加实际的类&#xff1a; Person: 一个创建并处理人员相关的信息的类 Manager: 一个定制化的Person,修改了所继承的行为。…

中北大学算法课动态规划问题实验:题目1 数塔问题

目录 1.实验名称2.实验目的3.实验内容4.实验过程伪代码java代码 5.实验结论及心得代码运行截图心得 实验报告 1.实验名称 动态规划问题实验&#xff1a;题目1 数塔问题 2.实验目的 (1)掌握动态规划法的设计思想&#xff1b; (2)掌握数塔问题的具体实现过程&#xff1b; (3)熟…

webpack 打包配置

主要实现功能 处理html、css、js、vue、jsx、图片等文件压缩处理好的文件分割压缩好的文件路由懒加载开启缓存和热更新开启多线程打包… 新建【webpack.config.js】 新建【webpack.dev.js】开发打包配置新建【webpack.prod.js】生产打包配置新建【webpack.config.js】&#…

Spring Boot中的事务管理策略

Spring Boot中的事务管理策略 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在Spring Boot应用中的事务管理策略&#xff0c;以及如何通过合…

评估大型语言模型生成文章的能力

1. AI解读 1.1. 总体概要 本文探讨了大型语言模型&#xff08;LLMs&#xff09;如GPT-4在生成特定领域&#xff08;如计算机科学中的自然语言处理NLP&#xff09;教育调查文章方面的能力和局限性。研究发现&#xff0c;尽管GPT-4能够根据特定指导生成高质量的调查文章&#x…

Pytorch中torch.cat()函数的使用及说明

如果你有两个形状为 (3, 4) 的tensor A 和 B&#xff0c;并且你想要在第一个维度上连接它们&#xff0c;你可以这样做&#xff1a; import torchA torch.randn(3, 4) B torch.randn(3, 4) C torch.cat([A, B], dim0) # dim0 表示在第一个维度上连接 此时 C 的形状将会是 …

kafka consumer客户端消费逻辑解析

kafka consumer客户端消费逻辑解析 一、主要消费步骤二、提交策略【步骤2代码解析】【提交策略总结】 三、拉取策略&#xff08;待补充&#xff09;四、消费策略【代码解析】【消费策略总结】 一、主要消费步骤 这是kafka客户端拉取消息的入口&#xff0c;有4个主要部分 1、启…

【Rust】function和methed的区别

文章目录 functionmethedAssociated Functions 参考资料 一句话总结&#xff1a; function和methed很多都是相同的。 不同点在于&#xff1a; methed定义在结构体里面&#xff0c;并且它的第一个参数肯定是self&#xff0c;代表结构体实例。方法需要用实例名.方法名调用当然结…

苏东坡传-读书笔记三

苏东坡去世之后&#xff0c;一黄某获得苏东坡一珍贵的手稿&#xff0c;其中有苏东坡下列的名句&#xff1a; “处贫贱易&#xff0c;处富贵难。安劳苦易&#xff0c;安闲散难。忍痛易&#xff0c;忍痒难。人能安闲散&#xff0c;耐富贵&#xff0c;忍痒&#xff0c;真有道之士也…

三生随记——暗夜诊所

在偏远的小镇边缘&#xff0c;矗立着一座看似普通的诊所。这座诊所历史悠久&#xff0c;据传已经存在了几十年&#xff0c;但关于它的具体来历和背后的故事&#xff0c;却鲜有人知。它的外表看似破旧不堪&#xff0c;但内部却异常整洁&#xff0c;散发着一种神秘而诡异的气息。…

vCenter-vAPI-Endpoint service health shows as Yellow

- 问题摘要&#xff1a;vAPI-Endpoint service health shows as Yellow - 解决方案/工作方法&#xff1a; 使用命令重启vAPI Endpoint service后该服务运行正常。 service-control --stop vmware-vapi-endpoint service-control --start vmware-vapi-endpoint VMware KB&…

详细分析Oracle修改默认的时间格式(四种方式)

目录 前言1. 会话级别2. 系统级别3. 环境配置4. 函数格式化5. 总结 前言 默认的日期和时间格式由参数NLS_DATE_FORMAT控制 如果需要修改默认的时间格式&#xff0c;可以通过修改会话级别或系统级别的参数来实现 1. 会话级别 在当前会话中设置日期格式&#xff0c;这只会影响…

uni-app (通过HBuilderX 和 VS Code 开发)详细连接过程教学。

使用 HBuilderX 创建 uni-app 项目 并编译到微信开发者工具。 uni-app 支持两种方式创建项目&#xff1a; 通过 HBuilderX 创建 通过命令行创建 首先我们需要先下载HBuilderX 下载链接地址&#xff1a;DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的登山之旅01(100分)- 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…