[
https://issues.apache.org/jira/browse/CARBONDATA-3472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16889959#comment-16889959
]
Dibya commented on CARBONDATA-3472:
-----------------------------------
Hi,
Please follow the below steps to reproduce this issue:
1. Install spark.
2. Maven build carbondata -
https://github.com/apache/carbondata/tree/master/build
3. Install Presto 0.217 & integrate with carbondata following steps on -
https://github.com/apache/carbondata/blob/master/docs/presto-guide.md
4. Place the below properties in carbondata.properties file :
connector.name=carbondata
enable.unsafe.in.query.processing=false
enable.unsafe.sort=false
enable.unsafe.columnpage=false
hive.metastore.uri=thrift://<thrift server IP>:<thrift server port>
(Presto requires hive metastore service to be running in order to connect to
metastore)
5. Create a carbondata table which has dictionary included in it, like the
below (through Spark) -
carbon.sql("create table inventory ( inv_date_sk int, inv_item_sk int,
inv_warehouse_sk int, inv_quantity_on_hand bigint) STORED AS carbondata
TBLPROPERTIES ('NO_INVERTED_INDEX'='inv_date_sk , inv_item_sk ,
inv_warehouse_sk , inv_quantity_on_hand','INVERTED_INDEX'='inv_date_sk ,
inv_item_sk , inv_warehouse_sk ,
inv_quantity_on_hand','SORT_COLUMNS'='inv_date_sk , inv_item_sk ,
inv_warehouse_sk , inv_quantity_on_hand','DICTIONARY_INCLUDE'='inv_date_sk ,
inv_item_sk , inv_warehouse_sk , inv_quantity_on_hand',
'TABLE_BLOCKSIZE'='128')")
5. Query on the above created table through presto-CLI using carbondata catalog
- select * from inventory limit 20;
The select query through presto will generate an error as stated in the issue.
Please let me know if you are unable to follow the steps at any point.
Thanks
> Carbondata Integration with Presto
> ----------------------------------
>
> Key: CARBONDATA-3472
> URL: https://issues.apache.org/jira/browse/CARBONDATA-3472
> Project: CarbonData
> Issue Type: Bug
> Components: data-query, presto-integration
> Affects Versions: 1.6.0
> Environment: centos 7
> Reporter: Dibya
> Priority: Major
>
> Hi,
> I came across the below issue when I was trying to query a table stored in
> carbondata format through presto:
> java.lang.RuntimeException: Failed to create reader
> at
> org.apache.carbondata.presto.CarbondataPageSource.createReaderForColumnar(CarbondataPageSource.java:366)
> at
> org.apache.carbondata.presto.CarbondataPageSource.initializeForColumnar(CarbondataPageSource.java:136)
> at
> org.apache.carbondata.presto.CarbondataPageSource.initialize(CarbondataPageSource.java:130)
> at
> org.apache.carbondata.presto.CarbondataPageSource.<init>(CarbondataPageSource.java:120)
> at
> org.apache.carbondata.presto.CarbondataPageSourceProvider.createPageSource(CarbondataPageSourceProvider.java:88)
> at
> com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSourceProvider.createPageSource(ClassLoaderSafeConnectorPageSourceProvider.java:44)
> at
> com.facebook.presto.split.PageSourceManager.createPageSource(PageSourceManager.java:56)
> at
> com.facebook.presto.operator.ScanFilterAndProjectOperator.getOutput(ScanFilterAndProjectOperator.java:221)
> at com.facebook.presto.operator.Driver.processInternal(Driver.java:379)
> at com.facebook.presto.operator.Driver.lambda$processFor$8(Driver.java:283)
> at com.facebook.presto.operator.Driver.tryWithLock(Driver.java:675)
> at com.facebook.presto.operator.Driver.processFor(Driver.java:276)
> at
> com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:1077)
> at
> com.facebook.presto.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:162)
> at
> com.facebook.presto.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:483)
> at com.facebook.presto.$gen.Presto_0_217____20190711_064626_1.run(Unknown
> Source)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: Last dictionary chunk does not exist
> at
> org.apache.carbondata.core.reader.CarbonDictionaryMetadataReaderImpl.readLastEntryOfDictionaryMetaChunk(CarbonDictionaryMetadataReaderImpl.java:115)
> at
> org.apache.carbondata.core.cache.dictionary.AbstractDictionaryCache.readLastChunkFromDictionaryMetadataFile(AbstractDictionaryCache.java:93)
> at
> org.apache.carbondata.core.cache.dictionary.AbstractDictionaryCache.checkAndLoadDictionaryData(AbstractDictionaryCache.java:198)
> at
> org.apache.carbondata.core.cache.dictionary.ForwardDictionaryCache.getDictionary(ForwardDictionaryCache.java:212)
> at
> org.apache.carbondata.core.cache.dictionary.ForwardDictionaryCache.get(ForwardDictionaryCache.java:80)
> at
> org.apache.carbondata.core.cache.dictionary.ForwardDictionaryCache.get(ForwardDictionaryCache.java:45)
> at
> org.apache.carbondata.presto.CarbonDictionaryDecodeReadSupport$$anonfun$initialize$1.apply(CarbonDictionaryDecodeReadSupport.scala:65)
> at
> org.apache.carbondata.presto.CarbonDictionaryDecodeReadSupport$$anonfun$initialize$1.apply(CarbonDictionaryDecodeReadSupport.scala:53)
> at
> scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
> at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
> at
> org.apache.carbondata.presto.CarbonDictionaryDecodeReadSupport.initialize(CarbonDictionaryDecodeReadSupport.scala:53)
> at
> org.apache.carbondata.presto.CarbondataPageSource.createReaderForColumnar(CarbondataPageSource.java:359)
> ... 18 more
>
> This issue is seen only while querying a table which has Dictionary created
> on one of its columns during table creation. The same queries run fine on
> tables that do not have dictionaries on any of its columns.
> Please look into it.
> Thanks
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)