Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-15148

disallow loading data into bucketed tables (by default)



    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.3.0
    • None


      A few q file tests still use the following, allowed, pattern:

      CREATE TABLE bucket_small (key string, value string) partitioned by (ds string) CLUSTERED BY (key) INTO 2 BUCKETS STORED AS TEXTFILE;
      load data local inpath '../../data/files/smallsrcsortbucket1outof4.txt' INTO TABLE bucket_small partition(ds='2008-04-08');
      load data local inpath '../../data/files/smallsrcsortbucket2outof4.txt' INTO TABLE bucket_small partition(ds='2008-04-08');

      This relies on the user to load the correct number of files with correctly hashed data and the correct order of file names; if there's some discrepancy in any of the above, the queries will fail or may produce incorrect results if some bucket-based optimizations kick in.
      Additionally, even if the user does everything correctly, as far as I know some code derives bucket number from file name, which won't work in this case (as opposed to getting buckets based on the order of files, which will work here but won't work as per HIVE-14970... sigh).

      Hive enforces bucketing in other cases (the check cannot even be disabled these days), so I suggest that we either prohibit the above outright, or at least add a safety config setting that would disallow it by default.


        1. HIVE-15148.patch
          46 kB
          Sergey Shelukhin
        2. HIVE-15148.01.patch
          131 kB
          Sergey Shelukhin
        3. HIVE-15148.02.patch
          133 kB
          Sergey Shelukhin
        4. HIVE-15148.03.patch
          133 kB
          Sergey Shelukhin
        5. HIVE-15148.04.patch
          133 kB
          Sergey Shelukhin

        Issue Links



              sershe Sergey Shelukhin
              sershe Sergey Shelukhin
              0 Vote for this issue
              2 Start watching this issue