jintaoguan opened a new pull request #2999:
URL: https://github.com/apache/hudi/pull/2999
## What is the purpose of the pull request
This pull request supports ORC storage in hudi.
## Brief change log
- Implemented HoodieOrcWriter
- Added HoodieOrcConfigs
- Added AvroOrcUtils that writes Avro record to VectorizedRowBatch
- Used orc-core:no-hive module (`no-hive` is needed because spark-sql
uses no-hive version of orc and it would become easier for spark integration)
- Implemented HoodieOrcReader
- Read Avro records from VectorizedRowBatch
- Implemented OrcReaderIterator
- Implemented ORC utility functions
## Verify this pull request
- Added unit tests for
- reader/writer creation
- AvroOrcUtils
- (local) Wrote a small tool that reads from ORC/Parquet files and writes
to ORC/Parquet files, verified that the records in the input/output files are
identical using spark.read.orc/spark.read.parquet.
- (local) Changed the HoodieTableConfig.DEFAULT_BASE_FILE_FORMAT to force
the tests to run with ORC as the base format. Some changes need to be made, but
I'm leaving it out of this PR to get some initial feedback on the reader/writer
implementation first.
For all tests to pass with ORC as the base file format:
- Understand schema evolution in ORC (ref TestUpdateSchemaEvolution)
- Add ORC support for places that have hardcoded ParquetReader or
sqlContext.read().parquet()
- Add ORC support for bootstrap op
- Hive engine integration with ORC (implement HoodieOrcInputFormat, and
more)
- Spark engine integration with ORC (implement
HoodieInternalRowOrcWriter, and more)
- Add ORC support for HoodieSnapshotExporter
- Implement HDFSOrcImporter
- and possibly more.
## Committer checklist
- [ ] Has a corresponding JIRA in PR title & commit
- [ ] Commit message is descriptive of the change
- [ ] CI is green
- [ ] Necessary doc changes done or have another open PR
- [ ] For large changes, please consider breaking it into sub-tasks under
an umbrella JIRA.
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]