-
Notifications
You must be signed in to change notification settings - Fork 791
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parquet: Read/write support for PageIndex (ColumnIndex / OffsetIndex) #1705
Comments
@alamb @tustvold |
Hi @Ted-Jiang, I think the first step will be to support reading and writing the page index. Once that is done, we can look to include support in #1605. I'm currently actively working on object store IO, so if you wanted to handle the index encode/decode we can probably parallelize this effort 😃 |
Sure!💪 I prefer to support reading(from java version) first, check the effect on performance. |
I think the idea of parallelizing the implementation (as @tustvold suggests to implement the encode/decode of the page index) would be great If creating the page index on write consumes too much time, perhaps we can make writing optional (aka in https://docs.rs/parquet/14.0.0/parquet/file/properties/struct.WriterProperties.html) -- same could be done for reading the page index if it is too expensive |
I think this is now complete |
Implementation tracker:
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Suggested by @ParadoxShmaradox ON #1191
In analytics systems, parquet files are passed around between different systems, so the more metadata is written by the rust implementation of parquet, the better other systems may be able to handle it.
One such type of metadata is
PageIndex
https://github.com/apache/parquet-format/blob/master/PageIndex.mdSpecifically, I believe this is called a
ColumnIndex
andOffsetIndex
in parquet-format:https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L938-L971
https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L926-L932
Which is used to speed up queries in certain systems -- for example https://blog.cloudera.com/speeding-up-select-queries-with-parquet-page-indexes/
Describe the solution you'd like
PageIndex
structures into files created by parquet-rs (specifPageIndex
from the parquet metadata structuresNote that if creating the
PageIndex
structures is too expensive, their creation could be optional and controlled via options.Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Original request here #1191 (comment)
The text was updated successfully, but these errors were encountered: