存储在 AWS S3 中的镶木地板文件是否可拆分?
Are parquet files splittable when stored in AWS S3?
- 我知道 parquet 文件如果存储在块存储中则可以拆分。例如存储在 HDFS
- 它们存储在对象存储(例如 AWS s3)中时是否也可以拆分?
- 这让我感到困惑,因为对象存储应该是原子的。您要么访问整个文件,要么访问文件的 none。如果不重写整个文件,您甚至无法更改 S3 文件上的元数据。另一方面,AWS 建议在 S3 中使用可拆分的文件格式来提高 Athena 和 hadoop 生态系统中其他框架的性能。
我不是 100% 确定你在这里的意思,但通常(我认为),你在分区键上有镶木地板分区,并将列保存到行块中。当我在其中使用 AWS S3 时,它保存为:
|-Folder
|--Partition Keys
|---Columns
|----Rows_1-100.snappy.parquet
|----Rows_101-200.snappy.parquet
这处理了您提到的拆分效率。
是的,Parquet 文件是可拆分的。
S3 支持定位读取(范围请求),可用于仅读取输入文件(对象)的选定部分。
- 我知道 parquet 文件如果存储在块存储中则可以拆分。例如存储在 HDFS
- 它们存储在对象存储(例如 AWS s3)中时是否也可以拆分?
- 这让我感到困惑,因为对象存储应该是原子的。您要么访问整个文件,要么访问文件的 none。如果不重写整个文件,您甚至无法更改 S3 文件上的元数据。另一方面,AWS 建议在 S3 中使用可拆分的文件格式来提高 Athena 和 hadoop 生态系统中其他框架的性能。
我不是 100% 确定你在这里的意思,但通常(我认为),你在分区键上有镶木地板分区,并将列保存到行块中。当我在其中使用 AWS S3 时,它保存为:
|-Folder
|--Partition Keys
|---Columns
|----Rows_1-100.snappy.parquet
|----Rows_101-200.snappy.parquet
这处理了您提到的拆分效率。
是的,Parquet 文件是可拆分的。
S3 支持定位读取(范围请求),可用于仅读取输入文件(对象)的选定部分。