2016-04-08 2 views
0

, что произойдет, если create table X (...) clustered by(date) sorted by (time) Hive таблица сортируется, но вставляется без сортировки

но вставляется без сортировки insert into x select * from raw

Вилл данные сортируются после извлекаются из сырой, прежде чем вставить?

Если вставлены несортированные данные Что делает «сортировка по» в инструкции create table. Он работает только для подсказок для последующих запросов?

ответ

2

documentation объясняет:

Кластеризованный BY и сортировали при помощи команд создания не влияют вставки данных в таблицу - только то, как он читается. Это означает, что пользователи должны быть осторожны, чтобы правильно вставить данные, указав число редукторов равным количеству ведер и используя команды CLUSTER BY и SORT BY в своем запросе.

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

+0

Спасибо Гордон. Я уже видел этот документ. –

+0

Мое удивление то почему кластеризованная, отсортированная статья, необходимая для создания DDL? –

1

Нет, данные не сортируются.

Как поясняется в другом ответе, параметры SORTED BY и CLUSTERED BY не изменяют, как данные будут возвращены из запросов. Хотя документация технически точна, цель CLUSTER BY заключается в том, чтобы записывать базовые данные в HDFS таким образом, чтобы в некоторых случаях ускорять последующие запросы. Кластеризация (bucketing) похожа на разбиение на разделы, поскольку позволяет процессору запросов пропускать строки чтения ... Если кластер выбран с умом. Обычное использование ведер - это данные выборки, в которых вы явно включаете только определенные ведра, тем самым избегая чтения с исключенными.

+0

благодарит @Tom Harrison Jr., тогда какой будет лучший запрос на вставку для быстрого выбора времени, если таблица создана с помощью «create table aaa ... clustered by (x, y) в 256 bucket». «вставить переписать aaa select * из bbb распределить по (x, y)» ok? –

+0

Все зависит от ваших данных и ваших потребностей. Это не ясно из вашего примера, но действие создания схемы таблиц тривиально: работа во многом зависит от того, сколько данных вы пишете и какие запросы вы будете запускать. Вам нужно попробовать различные параметры и сравнить производительность записи, производительность чтения/запроса. Есть буквально сотни факторов, которые могут повлиять на результат. –

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