Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Изучаем и используем Presto. Быстрый и надежный SQL-движок для анализа данных

Покупка
Новинка
Артикул: 856519.01.99
Доступ онлайн
999 ₽
В корзину
Данная книга посвящена Presto — распределенному SQL-движку с открытым исходным кодом. Авторы объясняют, как появилась эта платформа и чем она отличается от других инструментов хранения и обработки данных. Вы научитесь устанавливать и настраивать Presto, подключать его к различным источникам данных, а также использовать Presto как источник данных для построения отчетов и бизнес-аналитики. Кроме того, разберетесь с архитектурными концепциями и типичными сценариями использования Presto. Издание предназначено аналитикам, архитекторам данных, администраторам и программистам, которые хотят научиться получать ценную информацию из разрозненных наборов данных.
Изучаем и используем Presto. Быстрый и надежный SQL-движок для анализа данных : практическое руководство / А. Ло Дука, Т. Михан, В. Бхаратан, Ин Су ; пер. с англ. В. И. Комарова. – Москва : Book.kz, 2024. - 184 с. – ISBN 978-6-01810-343-8. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2205126 (дата обращения: 11.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Анжелика Ло Дука, Тим Михан,  
Вивек Бхаратан и Ин Су
Изучаем  
и используем Presto


Angelica Lo Duca, Tim Meehan, 
Vivek Bharathan, and Ying Su
Learning  
and Operating Presto
Fast, Reliable SQL for Data Analytics 
and Lakehouses
Beijing • Boston • Farnham • Sebastopol • Tokyo


Анжелика Ло Дука, Тим Михан,  
Вивек Бхаратан и Ин Су
Изучаем  
и используем Presto
Быстрый и надежный SQL-движок  
для анализа данных
2024


УДК	 004.65
ББК 32.972.134
Л68
Ло Дука А., Михан Т., Бхаратан В., Ин Су
Л68 	 Изучаем и используем Presto / пер. с англ. В. И. Комарова. – М.: Book.kz, 
2024. – 182 с.: ил. 
ISBN 978-6-01810-343-8
Данная книга посвящена Presto – распределенному SQL-движку с открытым 
исходным кодом. Авторы объясняют, как появилась эта платформа и чем она отличается от других инструментов хранения и обработки данных. Вы научитесь 
устанавливать и настраивать Presto, подключать его к различным источникам 
данных, а также использовать Presto как источник данных для построения отчетов 
и бизнес-аналитики. Кроме того, разберетесь с архитектурными концепциями 
и типичными сценариями использования Presto.
Издание предназначено аналитикам, архитекторам данных, администраторам 
и программистам, которые хотят научиться получать ценную информацию из 
разрозненных наборов данных.
УДК  004.65
ББК  32.972.134
Authorized Russian translation of the English edition of Learning and Operating Presto ISBN 
9781098141851 © 2023 O’Reilly Media Inc. This translation is published and sold by permission 
of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.”
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
ISBN 978-1-098-14185-1 (англ.) 	
Copyright © 2023 O’Reilly Media Inc.
ISBN 978-6-01810-343-8 (казах.) 	
©  Оформление, перевод на русский 
язык, издание, Books.kz, 2024


Содержание
От издательства.........................................................................................................9
Предисловие.............................................................................................................10
Об авторах.................................................................................................................15
Колофон......................................................................................................................16
Глава 1. Введение в Presto...................................................................................17
Хранилища данных и озера данных .......................................................................18
Роль Presto в озере данных........................................................................................20
Происхождение и истоки архитектуры Presto........................................................21
Высокая производительность...............................................................................22
Масштабирование..................................................................................................23
Соответствие стандарту ANSI SQL.......................................................................23
Объединение данных.............................................................................................23
Запуск в облаке........................................................................................................25
Архитектура Presto и его ключевые компоненты..................................................25
Альтернативы Presto..................................................................................................26
Apache Impala..........................................................................................................27
Apache Hive..............................................................................................................27
Spark SQL..................................................................................................................27
Trino..........................................................................................................................27
Сценарии использования Presto...............................................................................28
Отчетность и информационные панели.............................................................28
Специальные (ad hoc) запросы.............................................................................28
Извлечение и загрузка данных с использованием SQL....................................28
Хранилище-озеро...................................................................................................29
Аналитика в реальном времени...........................................................................29
Введение в модельное хранилище...........................................................................30
Заключение..................................................................................................................31
Глава 2. Первые шаги в освоении Presto........................................................32
Установка Presto вручную..........................................................................................32
Запуск Presto в Docker................................................................................................32
Установка Docker.....................................................................................................33
Образ Presto.............................................................................................................33
Сборка и запуск Presto...........................................................................................39
«Песочница» для Presto..........................................................................................40


6    Содержание
Развертывание Presto в Kubernetes..........................................................................40
Введение в Kubernetes............................................................................................41
Настройка Presto в Kubernetes..............................................................................41
Добавление каталога..............................................................................................46
Запуск приложения в Kubernetes.........................................................................47
Запросы к кластеру Presto.........................................................................................48
Список каталогов....................................................................................................48
Список схем.............................................................................................................49
Список таблиц.........................................................................................................49
Запрос к таблице.....................................................................................................50
Заключение..................................................................................................................52
Глава 3. Коннекторы...............................................................................................53
Концепция SPI (Service Provider Interface)..............................................................53
Архитектура коннектора...........................................................................................55
Популярные коннекторы...........................................................................................56
Thrift.........................................................................................................................56
Разработка коннектора..............................................................................................57
Предварительные требования..............................................................................58
Классы Plugin и Module..........................................................................................59
Конфигурация.........................................................................................................61
Метаданные.............................................................................................................63
Ввод-вывод..............................................................................................................65
Установка коннектора............................................................................................67
Apache Pinot.................................................................................................................68
Настройка и конфигурация Presto.......................................................................68
Запрос из Presto в Pinot.........................................................................................71
Заключение..................................................................................................................72
Глава 4. Подключение клиентов........................................................................73
Настройка окружения.................................................................................................73
Клиент Presto...........................................................................................................74
Docker-образ............................................................................................................74
Узел Kubernetes.......................................................................................................74
Подключение к Presto.................................................................................................76
REST API...................................................................................................................76
Python.......................................................................................................................77
R.................................................................................................................................78
JDBC...........................................................................................................................78
Node.js.......................................................................................................................79
ODBC.........................................................................................................................80
Прочие клиентские библиотеки для Presto........................................................81
Разработка клиентской информационной панели на Python.............................81
Настройка клиента.................................................................................................81
Разработка панели..................................................................................................83
Заключение..................................................................................................................86


Содержание    7
Глава 5. Open Data Lakehouse.............................................................................88
Появление хранилища-озера....................................................................................88
Архитектура хранилища-озера.................................................................................90
Озеро данных..............................................................................................................91
Система хранения...................................................................................................91
Форматы файлов.....................................................................................................91
Табличные форматы..............................................................................................92
Движок запросов.........................................................................................................94
Управление метаданными.........................................................................................94
Стратегическое управление данными.....................................................................95
Разграничение доступа к данным........................................................................96
Построение модельного хранилища-озера............................................................97
Настройка MinIO.....................................................................................................98
Настройка HMS......................................................................................................101
Настройка Spark....................................................................................................103
Регистрация таблиц Hudi в HMS.........................................................................104
Подключение Presto и выполнение запросов..................................................105
Заключение................................................................................................................108
Глава 6. Администрирование Presto...............................................................109
Введение в администрирование Presto.................................................................109
Конфигурирование...................................................................................................110
Конфигурационные файлы Presto......................................................................110
Настройки сеансов................................................................................................112
JVM..........................................................................................................................114
Мониторинг...............................................................................................................116
Консоль...................................................................................................................116
REST API.................................................................................................................118
Метрики мониторинга.........................................................................................120
Управление................................................................................................................122
Ресурсные группы.................................................................................................122
Верификатор.........................................................................................................125
Управление настройками сеансов.....................................................................128
Пространства имен функций..............................................................................129
Заключение................................................................................................................131
Глава 7. Безопасность Presto..............................................................................132
Введение в безопасность Presto..............................................................................132
Безопасность коммуникаций..................................................................................133
Шифрование..........................................................................................................133
Хранилище ключей..............................................................................................134
Настройка HTTPS/TLS..........................................................................................135
Аутентификация.......................................................................................................137
Аутентификация, основанная на файлах..........................................................137
LDAP........................................................................................................................139


8    Содержание
Kerberos..................................................................................................................140
Создание нестандартного аутентификатора...................................................142
Авторизация..............................................................................................................143
Авторизация доступа к REST API.......................................................................143
Настройка управления доступом.......................................................................143
Авторизация при помощи Apache Ranger........................................................145
Заключение................................................................................................................146
Глава 8. Настройка производительности......................................................148
Введение в настройку производительности.........................................................148
Побудительные мотивы настройки производительности.............................149
Жизненный цикл настройки производительности........................................149
Модель выполнения запроса...................................................................................150
Подходы к настройке производительности Presto..............................................152
Выделение ресурсов.............................................................................................152
Система хранения данных..................................................................................154
Оптимизация запросов........................................................................................154
Aria Scan......................................................................................................................156
Сканирование таблицы........................................................................................156
Перераспределение задач...................................................................................157
Практическая настройка производительности....................................................157
Создание CSV-таблицы и загрузка в MinIO......................................................158
Преобразование CSV-таблицы в ORC................................................................159
Определение параметров настройки................................................................160
Нагрузочное тестирование..................................................................................160
Заключение................................................................................................................163
Глава 9. Масштабирование Presto...................................................................164
Введение в масштабирование.................................................................................164
Когда требуется масштабирование?..................................................................165
Часто возникающие проблемы...........................................................................165
Основные принципы................................................................................................166
Доступность...........................................................................................................167
Управляемость......................................................................................................168
Производительность............................................................................................169
Защита....................................................................................................................170
Настройка...............................................................................................................171
Как масштабировать Presto.....................................................................................172
Несколько координаторов...................................................................................172
Presto на Spark.......................................................................................................173
Подкачка................................................................................................................175
Использование облачных сервисов........................................................................176
Заключение................................................................................................................177
Предметный указатель........................................................................................178


От издательства
Отзывы и пожелания
Мы всегда рады отзывам наших читателей. Расскажите нам, что вы ду-маете 
об этой книге – что понравилось или, может быть, не понравилось. Отзывы 
важны для нас, чтобы выпускать книги, которые будут для вас максимально 
полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на 
страницу книги и оставив комментарий в разделе «Отзывы и рецензии». 
Также можно послать письмо главному редактору по адресу dmkpress@gmail.
com; при этом укажите название книги в теме письма. 
Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://
dmkpress.com/authors/publish_book/ или напишите в издательство по адресу 
dmkpress@gmail.com.
Список опечаток
Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое качество наших текстов, ошибки все равно случаются. Если вы найдете 
ошибку в одной из наших книг, мы будем очень благодарны, если вы сообщите о ней главному редактору по адресу dmkpress@gmail.com. Сделав это, 
вы избавите других читателей от недопонимания и поможете нам улучшить 
последующие издания этой книги. 
Нарушение авторских прав
Пиратство в интернете по-прежнему остается насущной проблемой. Издательство «ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав 
и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией 
какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу электронной почты dmkpress@gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря 
которой мы можем предоставлять вам качественные материалы.


Предисловие
История хранилищ данных началась с того, что разработчики просто переносили данных из операционных баз данных в системы, более приспособленные для аналитики. Эксплуатация этих систем обходилась весьма недешево, 
и людям приходилось очень тщательно выбирать данные для загрузки.
С годами требования к объему обрабатываемых данных росли, значительно опережая рост производительности оборудования, описанный законом 
Мура. Для традиционных аналитических систем анализ такого объема данных стал непосильной задачей. Рост требований коснулся всех, но некоторые 
компании столкнулись с проблемами роста раньше остальных.
Facebook
1 стал одной из первых компаний, попытавшихся в 2012 году решить проблему производительности аналитических платформ. В то время 
в Facebook для интерактивной аналитики использовался Apache Hive. По 
мере роста объема данных выяснилось, что Hive не такой уж интерактивный, 
а попросту говоря – медленный. Во многом это связано с тем, что Hive является частью экосистемы Hadoop, где главным инструментом исполнения запросов является фреймворк MapReduce. Главный его недостаток в том, что он 
сохраняет промежуточные наборы данных на диске, что требует огромного 
объема ввода-вывода. Facebook разработал новый движок распределенных 
SQL-запросов – Presto, выполняющий промежуточные операции в памяти 
и не требующий дискового ввода-вывода для хранения временных данных. 
Такой подход позволил выполнять обработку данных на порядки быстрее: 
теперь многие запросы завершались в течение секунды. Пользователи – 
инженеры, менеджеры и аналитики – обнаружили, что анализ снова стал 
интерактивным и они могут выполнять множество запросов для проверки 
гипотез и создания графиков и диаграмм.
Facebook был одной из первых, но далеко не единственной компанией, 
столкнувшейся с проблемой роста объемов данных, опережающего рост возможностей аппаратуры. Для решения этой проблемы была разработана архитектура «озера данных» (data lake), где обработка данных отделена от их 
хранения. Такая архитектура позволила хранить данные в распределенных 
файловых системах, построенных на базе дешевого оборудования, а поз1	 Социальная сеть Facebook принадлежит компании Meta, признанной в России экстремистской организацией. Здесь и далее торговая марка Facebook употребляется 
исключительно в контексте созданных компанией технологий. – Прим. перев.


Похожие

Доступ онлайн
999 ₽
В корзину