Bigdata SQL: How to Choose an SQL-on-Big-Data Solution

Из-за избытка продуктов и инструментов в пространстве SQL-on- Hadoop часто бывает очень сложно выбрать правильный. Выбор инструмента – задача не из легких. Некоторые моменты, которые следует учитывать при выборе инструментов / продуктов, перечислены ниже. В этот список входят вопросы, на которые необходимо ответить в соответствии с требованиями к архитектуре, соглашениями об уровне обслуживания (SLA) и вариантами развертывания инструмента.

• Каковы требования к задержке?

•  Какая требуется отказоустойчивость?

• Варианты развертывания: нужно ли устанавливать инструмент на все узлы данных в кластере? Требуется ли для инструмента отдельный кластер? Можно ли использовать этот инструмент в облаке? Это может иметь последствия с точки зрения бюджета, SLA и безопасности.

• Требования к оборудованию. Требуются ли для инструмента специальные наборы микросхем ЦП, требования к памяти или требования к жестким дискам / SDD?

• Как инструмент обрабатывает отказы узлов? Как работает инструмент  при  добавление новых узлов? Как инструмент обрабатывает добавление новых наборы данных?

• Требования к обработке: требует ли инструмент специальной пред-обработки? прежде чем его можно будет использовать?

• Возможности аналитики / SQL: не все инструменты совместимы с ANSI SQL. Не все из них поддерживают аналитические / оконные функции.

• Может ли инструмент обрабатывать полуструктурированные / неструктурированные данные?

• Может ли инструмент обрабатывать потоковую аналитику с потоковыми данными?

• Возможности расширения инструмента: насколько легко / сложно добавлять в инструмент новые функции UDF (определяемые пользователем функции) и т. Д.?

• Зрелость / размер сообщества / отзывы клиентов / количество клиентов

• Поддерживает ли он операционную аналитику в реальном времени?

• Может ли он выполнять надежные обновления в реальном времени?

• Может ли он поддерживать одновременную активность пользователей без взаимоблокировок и т. Д.?

• Может ли он поддерживать аутентификацию и интеграцию со структурами безопасности?

• Обеспечивает ли он связь через драйверы / API?

• Может ли он обрабатывать сжатые данные?

• Поддерживает ли он вторичные индексы?

• Какие алгоритмы объединения используются для ускорения больших объединений?

• Какие виды оптимизации SQL-запросов и выполнения запросов они предлагают.