hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karel Kolman (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-21798) OrcInputFormat#generateSplitsInfo returns 0 splits for a transactional delta-only table
Date Wed, 29 May 2019 04:12:00 GMT

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

Karel Kolman commented on HIVE-21798:
-------------------------------------

[~gopalv] thx for your reply, ill try to dig into the acid v1 / v2 differences a bit more
for our use case.

OrcInputFormat#ACIDSplitStrategy#getSplits  code has what seems to me a "return empty split
list / throw exception code" only code
{noformat}
  static class ACIDSplitStrategyimplements SplitStrategy<OrcSplit> {

   .... 

    @Override
    public List<OrcSplit> getSplits() throws IOException {
      List<OrcSplit> splits = Lists.newArrayList();

      if (acidOperationalProperties != null && acidOperationalProperties.isSplitUpdate())
{
        return Collections.emptyList();
      }

      if (!deltas.isEmpty()) {
        //since HIVE-17089 if here, then it's not an acid table so there should never be any
deltas
        throw new IllegalStateException("Found unexpected deltas: " + deltas + " in " + dir);
      }
      return splits;
    }
{noformat}

since https://github.com/apache/hive/commit/34b0e07a3bd5002b197b749e3e5a7992e196c237#diff-ede47c0c518f8577dd3895984f019330L1037

that seems kind of weird.

> OrcInputFormat#generateSplitsInfo returns 0 splits for a transactional delta-only table
> ---------------------------------------------------------------------------------------
>
>                 Key: HIVE-21798
>                 URL: https://issues.apache.org/jira/browse/HIVE-21798
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 3.1.0
>            Reporter: Karel Kolman
>            Priority: Major
>
> OrcInputFormat#generateSplitsInfo returns 0 splits for acid table which has no base -
deltas only.
>  
> Table data (no base)
> {noformat}
> $ hadoop fs -ls /apps/hive/warehouse/test_table
> drwxr-xr-x - hive hdfs 0 2019-05-28 13:13 /apps/hive/warehouse/test_table/delta_0000001_0000001_0000
> $ hadoop fs -ls -r /apps/hive/warehouse/test_table/delta_0000001_0000001_0000
> Found 4 items
> -rw-r--r-- 3 hive hdfs 1302 2019-05-28 13:13 /apps/hive/warehouse/test_table/delta_0000001_0000001_0000/bucket_00002
> -rw-r--r-- 3 hive hdfs 1250 2019-05-28 13:13 /apps/hive/warehouse/test_table/delta_0000001_0000001_0000/bucket_00001
> -rw-r--r-- 3 hive hdfs 1215 2019-05-28 13:13 /apps/hive/warehouse/test_table/delta_0000001_0000001_0000/bucket_00000
> -rw-r--r-- 3 hive hdfs 1 2019-05-28 13:13 /apps/hive/warehouse/test_table/delta_0000001_0000001_0000/_orc_acid_version{noformat}
> Table created with
> {noformat}
> CREATE TABLE test_table (userid bigint)
> 	clustered by (userid)
> 	into 3 buckets
> 	stored as orc
> 	TBLPROPERTIES ('transactional'='true');
> INSERT INTO TABLE test_table SELECT * FROM source_table;
> {noformat}
>  
> Is this expected behavior ?
>  
> Change of behavior from earlier Hive versions seems to come from commit
>  [https://github.com/apache/hive/commit/34b0e07a3bd5002b197b749e3e5a7992e196c237#diff-ede47c0c518f8577dd3895984f019330L1037]
>  related to HIVE-17089.
> Earlier Hive versions return valid split data from OrcInputFormat#generateSplitsInfo.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message