[ 
https://issues.apache.org/jira/browse/HIVE-15199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15674822#comment-15674822
 ] 

Sergio Peña commented on HIVE-15199:
------------------------------------

Yeah, doing the listSTatus() once will be better. I'll try that.

About the PathFilter, I used it to fill the Set<> during the listStatus(), and 
avoid listStatus() to create the FileStatus[] array, and then me walking 
through the array to push the elements to the Set<> again. I just need the 
path, and that way I avoid creating FileStatus objects on memory. Regarding 
using a Set<>, I see this is faster by walking to the different _copy_ files 
and check if they're contained on the Set ( O(N) ) than walking through the 
FileStatus[] once per every new _copy_ file ( O(N*N) ).

> INSERT INTO data on S3 is replacing the old rows with the new ones
> ------------------------------------------------------------------
>
>                 Key: HIVE-15199
>                 URL: https://issues.apache.org/jira/browse/HIVE-15199
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>            Reporter: Sergio Peña
>            Assignee: Sergio Peña
>            Priority: Critical
>         Attachments: HIVE-15199.1.patch, HIVE-15199.2.patch, 
> HIVE-15199.3.patch, HIVE-15199.4.patch
>
>
> Any INSERT INTO statement run on S3 tables and when the scratch directory is 
> saved on S3 is deleting old rows of the table.
> {noformat}
> hive> set hive.blobstore.use.blobstore.as.scratchdir=true;
> hive> create table t1 (id int, name string) location 's3a://spena-bucket/t1';
> hive> insert into table t1 values (1,'name1');
> hive> select * from t1;
> 1       name1
> hive> insert into table t1 values (2,'name2');
> hive> select * from t1;
> 2       name2
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to