Skip to content
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

Optimized Writing of Arrow Byte Array to Parquet #1764

Closed
tustvold opened this issue May 30, 2022 · 0 comments · Fixed by #2322
Closed

Optimized Writing of Arrow Byte Array to Parquet #1764

tustvold opened this issue May 30, 2022 · 0 comments · Fixed by #2322
Assignees
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate performance

Comments

@tustvold
Copy link
Contributor

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

A significant amount of effort has been put into making the reading of byte arrays from parquet fast:

We should invest some effort in making the writer performance comparable.

Describe the solution you'd like

Currently in order to write byte array types from arrow:

  • Any dictionaries are hydrated
  • Each value from a string array is separately allocated into a Vec<ByteArray>
  • These values are then written using the ColumnWriter

It would be a significant performance win to be able to elide these first two steps. This would likely involve much the same process as was followed for the reader:

  • Generify ColumnWriter to allow writing from different buffers
  • Add the ability to write from an arrow ByteArray directly
  • Add the ability to write from an arrow dictionary array directly

Describe alternatives you've considered

We could not do this

@tustvold tustvold added the enhancement Any new improvement worthy of a entry in the changelog label May 30, 2022
@alamb alamb added the parquet Changes to the parquet crate label May 31, 2022
@tustvold tustvold self-assigned this Jun 23, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 11, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 11, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 16, 2022
tustvold added a commit that referenced this issue Jul 17, 2022
* Generify parquet write path (#1764)

* More docs

* Lint

* Fix doc

* Review feedback

* Fix doc
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 17, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 29, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 29, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 29, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Jul 29, 2022
tustvold added a commit that referenced this issue Aug 1, 2022
* Optimized writing of byte array to parquet (#1764)

* Review feedback

* Fix logical conflict
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate performance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants