commit | ed7e04961c9e4cf038276b154feb9a2f3a105457 | [log] [tgz] |
---|---|---|
author | ajantha-bhat <ajanthabhat@gmail.com> | Thu Aug 13 22:05:15 2020 +0530 |
committer | kumarvishal09 <kumarvishal1802@gmail.com> | Sun Aug 30 23:04:48 2020 +0800 |
tree | dfa047f6c8d9e4da520b41abb314ec757ec971dd | |
parent | 96e7d957da160151b4b44abc10914e3208d2f3ab [diff] |
[CARBONDATA-3830] Support Array and Struct of all primitive type reading from presto Why is this PR needed? Currently, presto cannot read complex data type stores. Sometimes it gives empty results and some times exception. What changes were proposed in this PR? Supported all the 13 complex primitive types (including binary, refer the testcase added) with non-nested array and struct data type Supported complex type in Direct vector filling flow : Currently, spark integration carbondata will use row level filling for complex type instead of vector filling. But presto supports only vector reading. so need to support complex type in vector filling. Supported complex primitive vector handling in DIRECT_COMPESS, ADAPTIVE_CODEC flows Encoding of all the complex primitive type is either DIRECT_COMPESS or ADAPTIVE_CODEC, it will never use a legacy encoding. so, because of this string, varchar (with/without local dictionary), binary, date vector filling need to handle in DIRECT_COMPESS. Parent column also comes as DIRECT_COMPESS. Extracted data from parent column page here. Supported vector stack in complex column vectorInfo to store all the children vectors. Keep a list of children vector inside CarbonColumnVectorImpl.java Support ComplexStreamReader to fill presto ROW (struct) block and ARRAY block. Handle null value filling by wrapping children vector with ColumnarVectorWrapperDirect Limitations / next work: Some pending TODO 's are, Local dictionary need to handle for string / varchar columns as DIRECT_COMPRESS flow don't have that handling Can support map of all primitive types Can support multilevel nested arrays and struct Does this PR introduce any user interface change? No Is any new testcase added? Yes [Added test case for all 13 primitive type with array and struct, null values and more than one page data] This closes #3887 Co-authored-by: akkio-97 <akshay.nuthala@gmail.com>
Apache CarbonData is an indexed columnar data store solution for fast analytics on big data platform, e.g.Apache Hadoop, Apache Spark, etc.
You can find the latest CarbonData document and learn more at: http://carbondata.apache.org
CarbonData file format is a columnar store in HDFS, it has many features that a modern columnar format has, such as splittable, compression schema ,complex data type etc, and CarbonData has following unique features:
CarbonData is built using Apache Maven, to build CarbonData
Some features are marked as experimental because the syntax/implementation might change in the future.
This is an active open source project for everyone, and we are always open to people who want to use this system or contribute to it. This guide document introduce how to contribute to CarbonData.
To get involved in CarbonData:
Apache CarbonData is an open source project of The Apache Software Foundation (ASF).