当前位置: 首页 > news >正文

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.lryc.cn/news/391479.html

相关文章:

  • 析构函数和拷贝构造函数
  • sql server启动、连接 与 navicat连接sql server
  • 数据库测试数据准备厂商 Snaplet 宣布停止运营
  • 【Java09】方法(下)
  • d88888888
  • 【MySQL备份】mysqldump基础篇
  • C# Halcon目标检测算法
  • 7.4总结
  • 知识图谱查询语言的表示
  • 重生之我要学后端100--计算机网络部分概念(持续更新)
  • 时空预测+特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比
  • Vue 循环内部获取图片高度
  • vue动态组件与插件到底是什么?
  • SwiftUI九创建watchOS应用
  • 【Linux进阶】文件和目录的默认权限与隐藏权限
  • SQL 查询中 (+) 符号的含义
  • 基于Vue的MOBA类游戏攻略分享平台
  • 如何在PhpStorm中运行SQL文件?
  • Qt实现检测软件是否多开
  • spring security + vue,登录功能
  • 64.函数参数和指针变量
  • 原创作品 —(金融行业)年金系统交互和视觉设计
  • 3D slicer
  • 面试题--SpringCloud
  • Qt windeployqt 打包的Qt动态库介绍
  • WordPress付费进群V2主题,多种引流方法,引私域二次变现
  • 【Linux】性能分析器 perf 详解(三):kmem、mem
  • 微信小程序怎样跳转页面?
  • 针对SVN、GIT版本管理工具进行源代码加密保护
  • js条件引用