InfoQ

Hardwood Promises High-Speed JVM Apache Parquet Processing with Zero Mandatory Dependencies

6.9内容质量
Hardwood Promises High-Speed JVM Apache Parquet Processing with Zero Mandatory Dependencies

TL;DR · AI 摘要

Hardwood Promises High-Speed JVM Apache Parquet Processing with Zero Mandatory Dependencies - InfoQ InfoQ Homepage News...

核心要点

  • 主题聚焦:Hardwood Promises High-Speed JVM Apache Parquet
  • 来源:InfoQ,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#安全#产品
打开原文

Hardwood 承诺实现无强制依赖的高速 JVM Apache Parquet 处理 - InfoQ

InfoQ 首页 News Hardwood 承诺实现无强制依赖的高速 JVM Apache Parquet 处理

Java

InfoQ AI 工程师认证(7月25日):AI 演示已成功运行。现在你需要让它变得可靠。

Hardwood 承诺实现无强制依赖的高速 JVM Apache Parquet 处理

2026年7月3日 3分钟阅读

by

  • Olimpiu Pop

#### 关注我们

Youtube

232K 粉丝

Linkedin

26K 粉丝

Instagram

RSS

19K 读者

X

57.1k 粉丝

Facebook

21K 喜欢

Bluesky

收听本文 -

0:00

音频准备就绪

您的浏览器不支持音频元素。

正常

1.25x

1.5x

喜欢

新下拉阅读列表

  • 阅读列表

Hardwood 作为一款开源库发布,旨在优化 JVM 环境中 Apache Parquet 文件的读取性能。由 Gunnar Morling 发起,它旨在提供比传统 Apache Parquet Java 实现更快、更简单的替代方案,后者通常会引入显著的依赖开销并基于单线程核心读取器运行。Hardwood 通过提供几乎零依赖的替代方案来解决这些限制,该方案利用多线程页面解码以最大化 CPU 利用率。自 2026 年初诞生以来,经过五个月的发展,现已发布 1.0 版本,目前提供读取功能,计划在未来的版本中增加写入支持。

Hardwood 的设计强调数据访问的模块化方法。它提供两种不同的 API 以满足不同的工程需求:一个结构化行读取器 API 用于通用记录访问,另一个面向批量的列读取器 API 专为高吞吐量分析工作负载设计。与传统按顺序处理数据的实现不同,Hardwood 将 Parquet 页面解码分布到所有可用的 CPU 核心,从而减少串行处理页面时通常关联的延迟。

行读取器代码:

code
try (ParquetFileReader fileReader = ParquetFileReader.open(
        InputFile.of(path));

    RowReader rowReader = fileReader.rowReader()) {

    while (rowReader.hasNext()) {
        rowReader.next();

        long id = rowReader.getLong("id");
        String name = rowReader.getString("name");
        LocalDate birthDate = rowReader.getDate("birth_date");
        Instant createdAt = rowReader.getTimestamp("created_at");
    }
}

该库采用零强制依赖配置文件设计,以最小化供应链攻击和类路径冲突的风险。为实现这一点,它利用自 Java 9 版本以来可用的最小日志抽象,有效避免了外部日志依赖。其他功能(如对 LZ4 和 GZip 等特定压缩算法或 S3 等对象存储服务的支持)则通过可选依赖项提供,用户可根据需要自行引入。

它还实现了优化的谓词评估。通过在过滤扫描期间采用无分支、批量处理的评估方式,系统最小化了 CPU 分支预测错误,这在现代分析数据处理中是影响性能的关键因素。

除了库本身,该项目还包含一个专为开发人员和数据工程师设计的命令行界面(CLI)工具。该CLI提供交互式的基于文本的用户界面(TUI),允许用户在不编写样板代码或使用重型数据处理框架的情况下,检查Parquet文件的模式和元数据。该工具在开发周期中作为诊断工具,用于验证文件完整性和结构。

基准测试结果表明,Hardwood相比标准实现实现了显著的吞吐量提升。在使用8个vCPU扫描扁平数据集时,读取器达到了每秒1650万行的吞吐量。性能优势主要归功于库能够根据可用硬件进行扩展。在单线程配置下,性能受顺序解码的限制;然而,多线程方法使系统能够更有效地利用主机的I/O和CPU带宽。通过模块化设计、高性能、多线程解码以及简化依赖管理的零强制依赖配置文件,Hardwood为JVM环境提供了显著的优势。

除了发起者Gunnar Morling之外,该项目已经吸引了20位开源贡献者,其中包括来自Java领域的资深贡献者,如Andres Almiray和Bruno Borges。更广泛社区的总体反馈基本积极,潜在用户还要求增加Parquet写入功能。这一增强功能已经包含在即将发布的路线图中,预计很快将可用。

Hardwood 1.0标志着高性能JVM数据处理的重要里程碑,该项目仅用五个月时间就从构想进展到首个稳定版本。开发过程中使用了AI辅助编码,但设计和代码审查流程仍由人类主导。通过提供零依赖架构和创新的多线程解码引擎,该项目为传统Parquet实现提供了一个轻量级但功能强大的替代方案。凭借模块化设计和明确的未来写入支持路线图,Hardwood有望成为数据工程师在分析工作负载中最大化资源效率的基础工具。

作者部分主容器

关于作者

章节标题

每位作者的主容器

#### Olimpiu Pop

显示更多

显示更少

#### 此内容属于Java主题

##### 相关主题:

  • 开发
  • AI、机器学习与数据工程
  • 大数据
  • Apache Parquet
  • Java
  • 相关编辑
  • 相关赞助商
  • 相关赞助商 2026年8月6日,东部时间下午1点 构建高风险事件响应的AI代理评估 由:Brianne Bujnowski - Datadog AI产品营销经理,Benjamin Barton - Datadog高级软件工程师

InfoQ新闻通讯

每周五发送上周InfoQ内容的摘要。加入超过25万名高级开发者的社区。查看示例

我们保护您的隐私。 /think