2015-02-18 2 views
4

У меня есть стол с улей. Он имеет 4 ведра.Может вставлять данные несколько раз в таблицу кустов с ведрами

CREATE TABLE user(user_id BIGINT, firstname STRING, lastname STRING) 
COMMENT 'A bucketed copy of user_info' 
CLUSTERED BY(user_id) INTO 4 BUCKETS; 

Первоначально я вставил некоторые записи в эту таблицу, используя следующий запрос.

set hive.enforce.bucketing = true; 
insert into user 
select * from second_user; 

После этой операции В HDFS я вижу, что под этой таблицей создаются 4 файла.

Снова мне нужно было вставить другой набор данных в таблицу пользователей. Поэтому я выполнил указанный ниже запрос.

Теперь еще 4 файла складываются под каталог папки пользователя. Теперь он имеет всего 8 файлов.

Является ли это прекрасным, чтобы сделать это несколько вставных вставок в таблицу в квадратных скобках? Это влияет на балансировку стола?

ответ

2

Я понял! На самом деле, если вы делаете несколько вставок на столе в виде кувшина. Улей не будет жаловаться как таковой. Все запросы на улей будут работать нормально.

Сказав это, такая операция портит концепцию bucketing таблицы. Я имею в виду, что после нескольких вставок в таблицу в квадратных скобках выборка не выполняется.

TABLASAMPLE не работает должным образом после нескольких вставок.

Даже сортировка слияния с таблицей объединения также не работает после такой операции.

0

Я не думаю, что это должно быть проблемой, потому что вы заявили, что хотите балансировать на user_id. поэтому каждый раз, когда вы вставляете его, вы создадите еще 4 файла.

Bucketing используется для более быстрой обработки запросов, поэтому, если он делает еще 4 файла каждый раз, он будет обрабатывать ваш запрос еще быстрее.

+1

благодарит за ответ. у вас есть подтверждающие документы. просто чтобы быть уверенным. Я много искал. не нашел – sunil

Смежные вопросы