2016-08-25 1 views
1

Допустим, у меня есть 20 узлов SnappyData.Выполняется ли оптимизация запросов, если столбец раздела не находится в предикате Where?

И, У меня есть таблица вроде этого:

example_timeseries_table

id int not null, 
value varchar(128) not null, 
time timestamp not null 
foo varchar(128) not null, 
PARTITION BY COLUMN time 

И, я делаю запрос:

select sum(value) from example_timeseries_table where foo = 'xyz' 

делает SnappyData взывать ко всем 20 узлов, собирать результаты, а затем вернуть ответ? Если да, то как я могу улучшить, как сделать этот тип запроса? Должна ли таблица быть построена по-разному, чтобы «foo» столбец PARTITION?

ответ

1

SnappyData пытается распределить свои данные как можно более равномерно на всех узлах данных. Единица распределения - столовые ведра. Поэтому, чтобы ответить на ваш вопрос, да, SnappyData вызовет все 20 узлов, чтобы получить результат. Это обеспечит параллельную обработку и будет хорошим, если размер данных большой. Однако вы должны настроить количество ведер таблицы, найдя простое число рядом с общими доступными процессорами в кластере. (существует существующий билет JIRA, отслеживающий возможность для этого автоматически)

Также мы работаем над функцией, которая будет обрезать разделы, если столбец разделов находится в предикате.

Наличие столбца раздела для простого сканирования таблицы может оказаться не очень полезным. Но если вы планируете позже добавлять запросы на присоединение, это значительно повысит производительность запроса, поскольку мы стараемся избегать Spark shuffle, если условие соединения находится в столбце раздела.

1

Полное сканирование выполняется сегодня при использовании таблиц столбцов. В значительной степени, как двигатель катализатора Spark выполняет запросы по кадрам данных. Обратите внимание две вещи:

  1. таблицы Используйте строки для таких селективных запросов: таблицы Row поддерживает оба раздела обрезку (запрос обрезке к узлу, который управляет «Foo»), а также индексации.
  2. Таблицы индексирующих колонок в незавершенном процессе
Смежные вопросы