Overview of the hudi-io module
masterhudi-io module provides the core I/O abstractions and APIs for Apache Hudi. It contains essential components for data movement and access, including common I/O abstractions, readers, and writers.repository·master·Indexed 11 days ago
https://github.com/apache/hudiAn open data lakehouse platform for ingesting, indexing, storing, and managing data across cloud environments using a high-performance open table format. Includes the hudi-agent-gateway, an AI gateway providing an agent loop, MCP server, and chat UI for lakehouse tools via Trino.
hudi-io module provides the core I/O abstractions and APIs for Apache Hudi. It contains essential components for data movement and access, including common I/O abstractions, readers, and writers.The Hudi integration test suite is a long-running Spark job designed for end-to-end testing of Hudi datasets. It is used to improve release confidence and perform large-scale performance benchmarks.
Key objectives include:
hdfs, parquet, spark, hive, and avro.payload size, number of updates, number of inserts, and number of partitions.insert, bulk_insert, upsert, compact, and query.The packaging directory contains modules designed to build fat/uber jars (bundles). These bundles enable Apache Hudi integration into various external systems by shading necessary dependencies into a single deployable unit.
Key design principles for these bundles include:
provided in parent POMs (like parquet-avro).provided scoped dependencies in the bundle, they must be declared as compile dependencies in the bundle POM so the shade plugin can pull them in.<include> whitelist. New bundles should follow this pattern of explicit whitelisting and shading.The hudi-agent-gateway is a deployable service designed to serve a Hudi lakehouse to AI agents. It provides three primary interfaces over a set of guarded lakehouse tools:
POST /v1/chat) that uses a LangGraph agent loop to provide grounded answers via multi-turn sessions. It supports optional SSE streaming./mcp) that allows external agents (like Claude) to call lakehouse tools directly./ui/.All queries are routed through Trino using guarded tools: query_lakehouse (read-only SQL), list_tables, and describe_table. The gateway enforces AST-level guardrails, ensuring only single SELECT statements are executed and injecting a LIMIT clause to prevent excessive data retrieval.
The hudi-lakehouse repository provides Helm charts for decoupled lakehouse components. The architecture separates the deployable product from the local development scaffolding.
charts/)hudi-trino: Deploys Trino (server 472) with a built-in Hudi connector. It connects to your Hive Metastore/AWS Glue and your S3/GCS storage.hudi-agent-gateway: Deploys the Hudi AI gateway (agent chat API, MCP server, and chat UI). It connects to hudi-trino and an LLM provider.vllm: (Optional) Serves open-weight models via an OpenAI-compatible API. Requires a GPU.local-dev/)A Minikube-based environment that stands up MinIO, a Derby-backed Hive Metastore, and the Spark operator to simulate a real lakehouse on a laptop.
The Hudi Timeline UI is a lightweight, read-only web interface designed to visualize Hudi table metadata. It provides three primary views for a Hudi table:
vis-timeline. It shows completed actions as range bars (green), inflight actions as points (yellow), and requested actions as points (red). It maps pending actions like compaction, logcompaction, and clustering to their completed counterparts (commit, deltacommit, or replacecommit) to maintain consistency with Hudi's internal model.hoodie.properties as a sorted JSON object.The UI is served by the hudi-timeline-service module via a Javalin web application. The initial implementation runs in STANDALONE mode. A planned follow-up will support EMBEDDED mode within a Spark driver, including a dedicated tab in the Spark UI.
The Expression Indexing implementation aims to achieve the following:
hudi-spark-datasource module provides the Spark integration for Apache Hudi. It allows you to read and write Hudi tables using Spark SQL and DataFrames via a DataSource API. The module is architected in layers to support multiple Spark versions while providing version-specific optimizations.The Hudi 1.0 release focuses on evolving the storage format, introducing new APIs, and improving engine integrations. Key feature areas include:
The hudi-spark-datasource module provides several advanced capabilities for managing Hudi tables within Spark:
The Partition Level Bucket Index is an evolution of the traditional Bucket Index. While the standard Bucket Index uses a fixed number of buckets for the entire table, the Partition Level Bucket Index allows users to set a specific number of buckets for different partitions using a rule engine (e.g., regular expression matching).
insert overwrite for specific partitions.The VARIANT type is a data type designed for efficient storage and querying of semi-structured data (like JSON). It provides schema-on-read flexibility, allowing you to store evolving data structures without predefined schemas.
Unlike storing JSON as a plain string, VARIANT uses an optimized binary encoding that enables fast navigation and element extraction without parsing the entire document. It offers the performance benefits of structured columns while maintaining the flexibility of a schema-less design.