slim bouguerra commented on HIVE-19157:

So as a fix am proposing to add a marker segment as part of the pre create 
statement (probably also pre-insert) then make sure at least we find the marker 
segment descriptor.
This seems to do the trick on my initial testing, looking for the community 
feed back on this. Wondering if there is a better way to detect if 0 rows were 
produced by the previous stages.

> Assert that Insert into Druid Table fails if the publishing of metadata by 
> HS2 fails
> ------------------------------------------------------------------------------------
>                 Key: HIVE-19157
>                 URL: https://issues.apache.org/jira/browse/HIVE-19157
>             Project: Hive
>          Issue Type: Bug
>            Reporter: slim bouguerra
>            Assignee: slim bouguerra
>            Priority: Major
>         Attachments: HIVE-19157.patch
> The usual work flow of loading Data into Druid relies on the fact that HS2 is 
> able to load Segments metadata from HDFS that are produced by LLAP/TEZ works.
> In some cases where HS2 is not able to perform `ls` on the HDFS path the 
> insert into query will return success and will not insert any data.
> This bug was introduced at function {code} 
> org.apache.hadoop.hive.druid.DruidStorageHandlerUtils#getCreatedSegments{code}
> when we added feature to allow create empty tables.
> {code}
>  try {
>       fss = fs.listStatus(taskDir);
>     } catch (FileNotFoundException e) {
>       // This is a CREATE TABLE statement or query executed for CTAS/INSERT
>       // did not produce any result. We do not need to do anything, this is
>       // expected behavior.
>       return publishedSegmentsBuilder.build();
>     }
> {code}
> Am still looking for the way to fix this, [~jcamachorodriguez]/[~ashutoshc] 
> any idea what is the best way to detect that it is an empty create table 
> statement? 

This message was sent by Atlassian JIRA

Reply via email to