Parquet是一种高效的列式二进制数据格式,比CSV更可靠,支持压缩和快速查询,被Spark、DuckDB等主流工具广泛支持。Apache Iceberg作为表格式管理Parquet文件集合,提供事务、模式演进和时间旅行功能。两者结合,可在低成本存储上实现数据仓库行为,适合数据超出单一系统时使用。
Parquet 是一种列式二进制文件格式,其元数据页脚包含所有列块的字节偏移和统计信息,配合 S3 的 HTTP 范围请求,可实现精准读取,仅下载所需数据。它支持列式压缩、统计剪枝和自描述特性,在对象存储上高效运行。Iceberg 等湖仓格式依赖它实现双层数据跳过,相比 CSV、Avro 等格式,Parquet 在分析场景中优势显著。
本文介绍使用Amazon Athena分析Kiro团队用量报表的实践。针对CSV中动态模型列可能导致数据错位的问题,通过ETL将宽表转为长表,采用Parquet格式和Partition Projection建表,实现稳定查询。方案完全Serverless化,月成本低于1美元,并接入Amazon QuickSight构建看板,便于团队观测用量、治理额度。
Spotify等公司需快速访问海量数据,但传统SQL引擎延迟高。RAP(随机访问Parquet)通过外部索引将键直接映射到文件位置,实现O(1)查找,避免扫描。它支持排序、分组、单页键、ZSTD帧重置等优化,减少读取次数和字节数,甚至可零读取。RAP复用现有Parquet文件,无需复制,使数据湖支持交互式查询,降低在线服务成本,惠及AI代理等场景。
Apache Parquet存储固定长度列表(如向量嵌入)效率低,因Dremel编码开销大。Hardwood通过检测定义和重复级别流,识别固定长度列表并绕过常规解码,实现快速路径。列读取器提速达2.5倍,行读取器最高3.9倍,接近扁平列性能。该优化可选启用,预计1.1版默认开启。
ORC和Parquet是两种列式存储格式,分别源自Hive和Twitter/Cloudera。ORC适合Hive事务表,支持ACID,且在整数和时间戳数据上压缩效果好。Parquet是跨引擎的通用格式,广泛应用于AI和数据分析工具。选择时需考虑具体应用场景和数据特性。
本文探讨了Parquet文件的结构与性能优化,包括数据的物理切分(行组、列块、页面)、元数据存储方式,以及通过裁剪元数据(如列索引、偏移索引、布隆过滤器)提高查询效率。Parquet采用“先写数据、后写元数据”的设计,文件尾部包含所有统计信息,支持高效的谓词下推和投影下推,显著减少读取数据的IO量。
Apache Arrow 旨在解决不同系统间的数据内存表示问题,通过定义一种与语言无关的列式内存格式,实现零拷贝共享。其内存布局包括有效性位图和数据缓冲区,支持高效分析运算。C 数据接口允许在同一进程中无拷贝传递数据,而 IPC 和 Flight 则支持跨进程和网络传输。Arrow 与 Parquet 互补,前者优化内存计算,后者优化磁盘存储。
Hardwood是一个为JVM开发的新Parquet库,专注于快速读取Apache Parquet文件,支持多线程和无强制依赖。1.0版本已发布,兼容Java 21及以上,开源并可从Maven Central获取。它支持多种列类型和压缩方案,提供行读取和列读取两种API,适合不同的使用场景。未来版本将增加写入支持和性能优化。
Polars 1.41版本发布,新增快速的parquet元数据解码和嵌套子计划消除等功能。
Hardwood 1.0.0.Beta2发布,新增对VARIANT列的支持,提供交互式文本用户界面(TUI),提升性能,优化对象存储文件读取。VARIANT类型适用于存储半结构化数据,CLI新增dive命令以便分析Parquet文件,并优化了核心页面获取和解码流程,提升读取效率,支持更多Parquet逻辑类型。
Hardwood 1.0.0.Beta2发布,新增对VARIANT列的支持,提供交互式文本用户界面(TUI),提升性能,优化对象存储文件读取。VARIANT类型适用于存储半结构化数据,CLI新增dive命令以便分析Parquet文件,核心页面获取和解码流程也得到了优化,支持更多Parquet逻辑类型。
本文介绍了如何使用Kiro CLI和Amazon EKS MCP Server自动搭建FluentBit日志采集方案,并比较了两种将EKS埋点数据转存为S3 Parquet格式的方案。方案A需自编译镜像,适合追求简洁架构的用户;方案B通过Firehose和Glue实现转换,适合需要Schema管理的场景。Kiro CLI显著提升了搭建效率,简化了复杂操作。
现代数据分析可以通过使用Parquet文件和DuckDB简化,直接查询数据,避免传统数据库的复杂性。这种方法提高了分析效率,适合批量处理结构化数据。
本文探讨了优化Databricks AI/BI仪表板性能的关键因素,包括仓库选择、数据建模和文件布局。建议使用星型模式和整数连接键以提升查询效率,同时采用Parquet优化技术减少查询数据量,并利用智能工作负载管理增强并发处理能力。
Hugging Face Datasets 提供了加载数据集的简便方法,支持 CSV、Parquet 和 Arrow 格式。CSV 适合小数据集但性能较差;Parquet 适合批处理,支持压缩和快速查询;Arrow 在内存中操作,速度快,适合快速训练。选择合适的格式可以提高数据处理效率。
Parquet是一种高效的列式存储格式,适合分析查询。文章分析了其内部结构及优化方法,如行组大小、压缩和编码对性能的影响。优化后,查询速度显著提升,行组大小调整带来了28倍的性能提升。了解Parquet特性有助于提高数据处理效率。
Cloudflare的健康介导部署(HMD)通过数据驱动的方式自动化软件更新,利用Thanos系统监控服务性能,及时识别和回滚问题代码,显著提高查询处理效率,减少批处理时间,并探索基于Parquet的时间序列存储以优化可观察性基础设施。
Parquet是一种开源列式存储格式,适用于Apache Spark和Hadoop等大数据处理框架。它通过列存储提供高压缩率和查询性能,支持模式演变,兼容多种大数据工具。尽管写入速度较慢,不适合实时流处理或小数据集,但非常适合大规模分析工作负载。
本文介绍了如何将Spark生成的Parquet文件上传至S3,步骤包括将数据写入本地磁盘、定位Parquet文件、构建S3路径,并使用boto3进行文件上传。
完成下面两步后,将自动完成登录并继续当前操作。