2015-08-28 1 views
0

Я просматриваю white paper Google Dremel. Я узнал, что он преобразует сложные данные в столбчатый макет данных.Как Dremel или его реализация (скажем, Drill) обрабатывают большой столбчатый формат данных в памяти?

В каком месте хранятся эти данные?

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

Как он обрабатывает эти данные, когда у меня есть миллиарды строк?

ответ

2

Чтобы получить согласованный запрос из миллиардов строк, вы будете использовать распределенную файловую систему, подключенную к нескольким Drillbits, смоделировать распределенную файловую систему, скопировав файлы на каждый узел или использовать том NFS, например Amazon Эластичная файловая система. Сверло выполняет выполнение запросов больших данных с использованием ряда методов, в том числе:

  • Опирается на узлы кластера для обработки сбоев (не тратит время на задачи, связанные с отказом).
  • Использует модель данных в памяти, которая является иерархической и столбчатой ​​(не имеет доступа к диску для столбцов, которые не участвуют в аналитическом запросе, обрабатывая столбчатые данные без материализации строки).
  • Использует оптимизацию и выполнение хранилища в столбце (сохраняет снимок памяти на низком уровне).
  • Использование векторизации для работы с массивами значений из разных записей, а не с одиночными значениями из одной записи за раз.

Для получения дополнительной информации см. http://drill.apache.org/docs/performance/.

+0

Что будет делать сверление при заполнении внутренней памяти? После обработки миллионов строк его внутренняя память может быть заполнена. –

+0

Я думаю, что Drill использует диск для хранения промежуточных результатов, когда память заполнена. Я слышал сообщения о счастливых пользователях, которые могли запускать огромные запросы, для выполнения которых потребовалось несколько часов, но не запускались на другом программном обеспечении. Член сообщества предложил терабайтные средства тестирования во время опроса группы пользователей Drill Tuesday (см. Http://apache.github.io/drill/community-resources/ для ссылки), открытый для всех, поэтому я надеюсь, что скоро у нас будут данные о производительности , – catpaws

+0

http://apache.github.io/drill/docs/drill-query-execution/#execution-of-minor-fragments и другие разделы на странице могут быть полезны для объяснения сложного процесса выполнения запроса. – catpaws