xushiyan commented on code in PR #10624:
URL: https://github.com/apache/hudi/pull/10624#discussion_r1478861210


##########
website/docs/hudi_stack.md:
##########
@@ -0,0 +1,99 @@
+---
+title: Apache Hudi Stack
+summary: "Explains about the various layers of software components that make 
up Hudi"
+toc: true
+toc_min_heading_level: 2
+toc_max_heading_level: 4
+last_modified_at:
+---
+
+Apache Hudi is a Transactional Data Lakehouse Platform built around a database 
kernel. It brings core warehouse and database functionality directly to a data 
lake thereby providing a table-level abstraction over open file formats like 
Apache Parquet/ORC (more recently known as the lakehouse architecture) and 
enabling transactional capabilities such as updates/deletes. Hudi also 
incorporates essential table services that are tightly integrated with the 
database kernel. These services can be executed automatically across both 
ingested and derived data to manage various aspects such as table bookkeeping, 
metadata, and storage layout. This integration along with various 
platform-specific services extends Hudi's role from being just a 'table format' 
to a comprehensive and robust data lakehouse platform.
+
+In this section, we will explore the Hudi stack and deconstruct the layers of 
software components that constitute Hudi. The features marked with an asterisk 
(*) represent work in progress, and the dotted boxes indicate planned future 
work. These components collectively aim to fulfill the 
[vision](https://github.com/apache/hudi/blob/master/rfc/rfc-69/rfc-69.md) for 
the project. 
+
+![Hudi Stack](/assets/images/blog/hudistack/hstck.png)
+_Figure: Apache Hudi Architectural stack_
+
+# Lake Storage
+The storage layer is where the data files (such as Parquet) are stored. Hudi 
interacts with the storage layer through the [Hadoop FileSystem 
API](https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/fs/FileSystem.html),
 enabling compatibility with various systems including HDFS for fast appends, 
and various cloud stores such as Amazon S3, Google Cloud Storage (GCS), and 
Azure Blob Storage. Additionally, Hudi offers its own storage APIs that can 
rely on Hadoop-independent file system implementation to simplify the 
integration of various file systems. Hudi adds a custom wrapper filesystem that 
lays out the foundation for improved storage optimizations.
+
+# File Formats
+![File Format](/assets/images/blog/hudistack/file_format.png)
+_Figure: File format structure in Hudi_
+
+File formats hold the raw data and are physically stored on the lake storage. 
Hudi operates on a 'base file and log file' structure. The base files are 
compacted and optimized for reads and are augmented with log files for 
efficient append. Future updates aim to integrate diverse formats like 
unstructured data (e.g., JSON, images), and compatibility with different 
storage layers in event-streaming, OLAP engines, and warehouses. Hudi's layout 
scheme encodes all changes to a log file as a sequence of blocks (data, delete, 
rollback). By making data available in open file formats (such as Parquet), 
Hudi enables users to bring any compute engine for specific workloads.

Review Comment:
   ```suggestion
   File formats hold the raw data and are physically stored on the lake 
storage. Hudi operates on logical structures of File Groups and File Slices, 
which consist of Base File and Log Files. Base Files are compacted and 
optimized for reads and are augmented with Log Files for efficient append. 
Future updates aim to integrate diverse formats like unstructured data (e.g., 
images), and compatibility with different storage layers in event-streaming, 
OLAP engines, and warehouses. Hudi's layout scheme encodes all changes to a Log 
File as a sequence of blocks (data, delete, rollback). By making data available 
in open file formats (such as Parquet), Hudi enables users to bring any compute 
engine for specific workloads.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@hudi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to