Trino (система запросов SQL)
![]() | |
![]() Пользовательский интерфейс Трино, версия 358 | |
Оригинальный автор(ы) | Мартин Траверсо, Дэйн Сандстрем, Дэвид Филлипс, Эрик Хван |
---|---|
Репозиторий | Репозиторий Трино |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Стандарт (ы) | ANSI SQL , JDBC |
Тип | Хранилище данных |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | триединый |
Trino — это запросов с открытым исходным кодом, механизм распределенных SQL- предназначенный для запроса больших наборов данных, распределенных по одному или нескольким разнородным источникам данных. [ 1 ] Trino может запрашивать озера данных , которые содержат открытые , ориентированные на столбцы, форматы файлов данных такие как ORC или Parquet. [ 2 ] [ 3 ] размещение в разных системах хранения, таких как HDFS , AWS S3 , Google Cloud Storage или Azure Blob Storage. [ 4 ] с помощью Улья [ 2 ] и Айсберг [ 3 ] форматы таблиц. Trino также имеет возможность запускать объединенные запросы, которые запрашивают таблицы в различных источниках данных, таких как MySQL , PostgreSQL , Cassandra , Kafka , MongoDB и Elasticsearch . [ 5 ] Trino выпускается под лицензией Apache . [ 6 ]
История
[ редактировать ]В январе 2019 года первоначальные создатели Presto Мартин Траверсо, Дэйн Сундстрем и Дэвид Филлипс создали форк проекта Presto. Первоначально они сохранили имя Presto и использовали веб-дескриптор PrestoSQL, чтобы отличить его от исходного проекта PrestoDB. Одновременно они объявили о создании Presto Software Foundation. Фонд представляет собой некоммерческую организацию, занимающуюся развитием механизма распределенных SQL-запросов Presto с открытым исходным кодом. [ 7 ] [ 8 ]
В декабре 2020 года PrestoSQL был переименован в Trino. Trino Software Foundation, кодовая база и все другие активы PrestoSQL были переименованы в рамках ребрендинга. [ 9 ]
Presto и Trino изначально были спроектированы и разработаны Мартином, Дейном, Дэвидом и Эриком Хвангом из Facebook , чтобы позволить аналитикам данных выполнять интерактивные запросы в большом хранилище данных в Apache Hadoop . Trino делит первые шесть лет разработки с проектом Presto. [ 10 ] [ 11 ] Чтобы узнать больше о ранней истории Trino, вы можете обратиться к разделу истории Presto .
Trino используется во многих платформах данных и продуктах облачных провайдеров и других поставщиков. Настройка этих продуктов варьируется от чистого использования Trino до сильно настраиваемых систем для запуска платформы данных или интеграции в специализированные платформы данных для использования с конкретными данными. Примеры включают Amazon Athena, Starburst Galaxy, Dune и многие другие.
Архитектура
[ редактировать ]
Trino написан на Java . [ 13 ] Он работает на кластере серверов, который содержит узлы двух типов: координатор и рабочий . [ 12 ]
- Координатор отвечает за синтаксический анализ, анализ, оптимизацию, планирование и планирование запроса, отправленного клиентом. Координатор взаимодействует с интерфейсом поставщика услуг (SPI) для получения доступных таблиц, статистики таблиц и другой информации, необходимой для выполнения его задач. [ 12 ]
- Рабочие отвечают за выполнение задач и операторов, переданных им планировщиком. Эти задачи обрабатывают строки из источников данных, которые дают результаты, которые возвращаются координатору и в конечном итоге обратно клиенту. [ 12 ]
Trino придерживается ANSI SQL. [ 4 ] стандарт и включает в себя различные части следующих спецификаций ANSI: SQL-92 , SQL:1999 , SQL:2003 , SQL :2008 , SQL:2011 , SQL:2016 , SQL:2023 .
Trino поддерживает разделение вычислений и хранилища. [ 4 ] и может быть развернут как локально, так и в облаке . [ 14 ]
Trino имеет архитектуру распределенных вычислений MPP . [ 12 ] Trino сначала распределяет работу между несколькими работниками, выполняя специальные операции секционирования или полагаясь на существующие секции в данных базового хранилища данных. Как только эти данные достигают работника, данные обрабатываются с помощью конвейерных операторов, выполняемых в нескольких потоках. [ 12 ]
См. также
[ редактировать ]- Престо (система запросов SQL)
- Большие данные
- Вычисления с интенсивным использованием данных
- Апач Дрель
- Компьютерный кластер
Ссылки
[ редактировать ]- ^ «Обзор — Документация Trino 393» . трино.io . Проверено 25 августа 2022 г.
- ^ Jump up to: а б «Соединитель улья — Документация Trino 393» . трино.io .
- ^ Jump up to: а б «Разъем Iceberg — Документация Trino 393» . трино.io . Проверено 25 августа 2022 г.
- ^ Jump up to: а б с Фуллер, Мэтт; Мозер, Манфред; Траверсо, Мартин (2021). «Глава 1. Знакомство с Трино». Трино: Полное руководство . О'Рейли Медиа, Инк, США. стр. 3–17. ISBN 9781098107710 .
- ^ «Разъемы — Документация Trino 393» . трино.io . Проверено 25 августа 2022 г.
- ^ «ЛИЦЕНЗИЯ тринодб/трино» . Трино. 25 августа 2022 г. Проверено 25 августа 2022 г.
- ^ «Фонд Presto Software Foundation запускает программу развития сообщества открытого исходного кода Presto» . ПРВеб . Проверено 1 февраля 2019 г.
- ^ «Новый фундамент Presto сигнализирует о развитии механизма SQL для больших данных» . Новый стек . 31 января 2019 г. Проверено 1 февраля 2019 г.
- ^ Траверсо, Мартин; Сундстрем, Дейн; Филлипс, Дэвид (27 декабря 2020 г.). «Мы переименовываем PrestoSQL в Trino» . трино.io . Проверено 7 сентября 2021 г.
- ^ «Соавторы trinodb/trino» . Гитхаб . Проверено 20 сентября 2021 г.
- ^ «Соавторы prestodb/presto» . Гитхаб . Проверено 20 сентября 2021 г.
- ^ Jump up to: а б с д и ж Фуллер, Мэтт; Мозер, Манфред; Траверсо, Мартин (2021). «Глава 4. Архитектура Трино». Трино: Полное руководство . О'Рейли Медиа, Инк, США. стр. 43–72. ISBN 9781098107710 .
- ^ Фуллер, Мэтт; Мозер, Манфред; Траверсо, Мартин (2021). «Глава 2. Установка и настройка Trino». Трино: Полное руководство . О'Рейли Медиа, Инк, США. стр. 19–24. ISBN 9781098107710 .
- ^ Фуллер, Мэтт; Мозер, Манфред; Траверсо, Мартин (2021). «Глава 13. Примеры из реальной жизни». Трино: Полное руководство . О'Рейли Медиа, Инк, США. стр. 267–272. ISBN 9781098107710 .