ZENOTME commented on PR #135:
URL: https://github.com/apache/iceberg-rust/pull/135#issuecomment-1869402828

   <img width="956" alt="image" 
src="https://github.com/apache/iceberg-rust/assets/43447882/7b830b61-e898-49e6-85f4-eb11a47455b0";>
   
   I draw a diagram to demonstrate the design of writer. Please let me know if 
it still has some confused parts. 
   One point need to note is that the iceberg writer will be separate as **base 
file writer** and **functional writer logically**. 
   
   For base file writer, they are the base format in iceberg, like: data file, 
position delete file, equality delete file. They take a file writer by which 
they write their content into a physical format(parquet, orc, ...).
   
   For functional writer, they are the higher level writer to provide more 
complex write logic. E.g. FanoutPartitionWriter. It act like 
https://github.com/apache/iceberg/blob/cbb50bfa5ad8cd490e991ff4e1d7bf7c025e3d5d/core/src/main/java/org/apache/iceberg/io/PartitionedFanoutWriter.java#L28.
 And it can be combined with other iceberg writer.
   
   base file writer and functional writer is only distinguished logically. Both 
them are `IcebergWriter`.
   


-- 
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: issues-unsubscr...@iceberg.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to