Интерактивные запросы HDInsight
Интерактивные запросы обычно реализуются в сценарии холодного пути, где у вас есть данные в табличном формате и вы хотите быстро задавать вопросы и получать интерактивный ответ с использованием синтаксиса SQL. На схеме ниже показана архитектура решения для всех решений типа "холодный путь" и "горячий путь" HDInsight, а также показывать, как интерактивные запросы обрабатываются с помощью Hive LLAP на обслуживающем уровне. Данные могут быть встроены с помощью Hive, интерактивные запросы обрабатываются с помощью Hive LLAP, а выходные данные могут быть распространены в подчиненных приложениях, таких как Power BI.
Архитектура интерактивных запросов
Теперь давайте подробно рассмотрим архитектуру интерактивных запросов.
Пользователи интерактивных запросов могут выбрать один из клиентов ODBC или JDBC для выполнения запросов к бизнес-данным, таким как Data Analytics Studio, записные книжки Zeppelin и Visual Studio Code. После того как клиент отправит запрос HiveQL, он поступит в HiveServer, который отвечает за планирование, оптимизацию и фильтрацию безопасности. Hive работает с помощью разделения задач аналитики на распределенных узлах в кластере. Запросы делятся на подзадачи и отправляются на узлы, которые обрабатывают каждую из подзадач, а эти подзадачи разбиваются еще дальше, и каждая из этих задач считывает данные из базового уровня хранилища бизнес-данных. Архитектура оптимизирована благодаря использованию управляющих программ LLAP Always On, которые устраняют время запуска, а также общего кэша в памяти, в котором хранятся данные, полученные из хранилища, и общие данные для всех узлов.
Твердотельные накопители (SSD), используемые в кластерах интерактивных запросов, объединяют ОЗУ и SSD в огромном пуле памяти, используемом кэшем. С помощью такого сочетания ресурсов типичный профиль сервера может кэшировать в четыре раза больше данных, что позволяет вам обрабатывать большие наборы данных и поддерживать больше пользователей. Кэш интерактивных запросов учитывает базовые изменения данных в удаленном хранилище (хранилище Azure), поэтому, если базовые данные меняются и пользователь запрашивает их, обновленные данные будут загружены в память без необходимости дополнительных действий пользователя.