Trino: механизм запросов данных с открытым исходным кодом, отделившийся от Facebook
30 марта 2022 г.Интернет-пользователи генерируют 2,5 квинтиллиона байтов данных каждый день. Соответствуют ли инструменты управления данными вашей организации этой задаче? Trino, механизм распределенных запросов SQL с открытым исходным кодом, может улучшить обработку и анализ данных. Это может ускорить ваши запросы. Возможно, вы слышали о Trino, но хотите узнать больше, прежде чем менять систему.
Является ли Trino базой данных? Это ОЛАП? Как это улучшает обработку запросов? Что мне нужно знать о Трино? Узнайте больше о Trino и о том, как он может повысить производительность запросов.
Что такое Трино?
Trino — это механизм распределенных запросов SQL с открытым исходным кодом. Инженеры разработали Trino для специальных и пакетных запросов ETL к нескольким типам источников данных.
Trino поддерживает реляционные и нереляционные источники. Trino может обрабатывать стандартные и частично структурированные типы данных.
Некоторые люди ошибочно думают, что Trino — это база данных. Вы используете Trino для запуска SQL с данными, но это не делает его базой данных. Trino на самом деле не хранит никаких данных.
Трино отделился от Presto Facebook
Трино и Престо тесно связаны. Trino отделилась от проекта Presto Facebook. Инженеры Facebook разработали Presto для обработки петабайтов данных, которые Facebook пытался проанализировать. Создатели хотели, чтобы Presto оставался с открытым исходным кодом и базировался на сообществе. Facebook хотел большего контроля, что привело к расколу.
Facebook подал заявку на регистрацию товарного знака для имени Presto. Первоначальные создатели были переименованы в Trino. Теперь, когда Trino отделилась от Presto, функции каждой системы стали различаться.
Как Trino ускоряет запросы?
Trino начинался как способ управления невероятно большими наборами данных, которые Facebook должен был анализировать. Запросы Trino обрабатываются быстрее, чем запросы с использованием других движков. Этому ускорению способствуют несколько факторов.
Архитектура Трино
Архитектура Trino похожа на базы данных с массовой параллельной обработкой (MPP). Узел-координатор управляет несколькими рабочими узлами для обработки всей работы.
Пользователь запускает свой SQL, который отправляется координатору. Координатор анализирует, планирует и планирует распределенный запрос.
Это разбивает данные на более мелкие фрагменты для распределения по узлам. Когда блоки данных поступают на определенную машину, машина обрабатывает их параллельно. Обработка происходит в нескольких потоках внутри определенного узла.
Trino поддерживает стандартный ANSI SQL, например, сложные запросы, агрегации соединений и внешние соединения. Пользователи могут выполнять более сложные операции, такие как преобразование и анализ JSON и MAP.
Уменьшенная задержка
Одним из факторов скорости Trino является то, что он не полагается на контрольные точки и методы отказоустойчивости. Отказоустойчивость повышает отказоустойчивость, но также создает большую задержку.
Устранение требования отказоустойчивости является серьезным отличием от старых систем больших данных. Это делает Trino идеальным решением для запросов, где стоимость восстановления после сбоя меньше, чем стоимость контрольных точек.
Вдавливание
Trino может направить обработку запросов в подключенный источник данных. Операция переходит в исходную систему, где уже существуют пользовательские индексы данных.
Pushdown повышает общую производительность запросов. Это уменьшает объем данных, считываемых из файлов хранилища. Trino может использовать несколько типов pushdown, в том числе:
- Предикат
- Проекция
- Разыменование
- Агрегация
- Присоединиться
- Лимит
- Топ-N
Эти формы pushdown уменьшают сетевой трафик между Trino и источником данных. Они также снижают нагрузку на удаленный источник данных. Поддержка pushdown зависит от каждого соединителя и базовой базы данных или системы хранения.
Оптимизатор затрат
Оптимизатор затрат Trino (CBO) использует статистику таблиц и столбцов для создания наиболее эффективного плана запросов. Он учитывает три основных фактора, влияющих на длительность выполнения запроса:
- Процессорное время
- Требования к памяти
- Использование пропускной способности сети
CBO уравновешивает различные требования к запросам, а именно:
- Быстрое время выполнения
- Максимально низкие затраты на кластер
- Обеспечение одновременной работы всех пользователей кластера
Вы можете по-настоящему оптимизировать только один из этих приоритетов. CBO создает и сравнивает различные варианты плана выполнения запроса, чтобы найти вариант с наименьшей общей стоимостью.
Гибкий подход к доступу к данным
Trino управляет хранением и вычислениями отдельно. Он легко работает в облачных средах. Кластер Trino не хранит ваши данные, поэтому он может автоматически масштабироваться в зависимости от нагрузки без потери данных.
Примеры использования Trino
Trino — это онлайн-система аналитической обработки (OLAP). Trino расширяет традиционное решение хранилища данных OLAP, работая в качестве механизма запросов для озера данных или сетки данных.
Вы можете интерактивно выполнять запросы к различным источникам данных. В отличие от традиционного хранилища данных, вам не нужно перемещать данные заранее.
Мощность и гибкость Trino делают его подходящим для многих случаев использования. Вы можете использовать его для всех из них или для решения одной конкретной проблемы. По мере того, как пользователи Trino в вашей организации будут знакомиться с его преимуществами и функциями, вы, вероятно, обнаружите и другие варианты его использования.
Специальные запросы и отчеты
Конечные пользователи могут использовать SQL для выполнения специальных запросов, где находятся данные. Вам не нужно перемещать данные в отдельную систему. Вы можете быстро получить доступ к наборам данных, которые нужны аналитикам.
Вы можете запрашивать данные из множества источников для создания отчетов и информационных панелей для бизнес-аналитики. Ученые и аналитики данных могут создавать запросы, не полагаясь на инженеров по операциям с данными.
Аналитика озера данных
Одним из распространенных вариантов использования Trino является прямой запрос данных в озере данных без нуждающиеся в преобразовании. Вы можете запрашивать структурированные или частично структурированные данные из нескольких источников. Это упрощает процесс создания операционных панелей мониторинга.
Trino может использовать коннектор Hive для HDFS и других систем хранения объектов. Вы можете получить аналитику на основе SQL в своем озере данных, однако оно хранит данные.
Пакетный ETL
Trino — отличный движок для пакетных запросов на извлечение, преобразование и загрузку (ETL). Он может быстро обрабатывать большие объемы данных. Он может получать данные из разных источников без необходимости всегда извлекать их из таких источников, как MySQL.
ETL через Trino — это стандартный оператор SQL. ETL легко реализовать. Конечные пользователи могут выполнять другие специальные преобразования.
Обширная структура коннекторов Trino означает, что любой коннектор может быть источником для ETL. Большинство коннекторов также могут быть приемником.
Повышение производительности запросов с помощью Trino
Если вам интересно, как Trino может ускорить ваши запросы, вы рассматриваете два передовых механизма запросов. Несколько функций Trino могут повысить производительность запросов.
Архитектура Trino использует массовую параллельную обработку. Уменьшенная задержка, pushdown и оптимизатор на основе затрат также ускоряют жизненный цикл запросов.
Оригинал