Quicksql — это продукт для работы с SQL-запросами, который можно использовать для запросов к определённому хранилищу данных или для коррелированных запросов к нескольким хранилищам. Он поддерживает реляционные базы данных, нереляционные базы данных и даже хранилища, которые не поддерживают SQL (например, Elasticsearch, Druid).
Кроме того, в Quicksql SQL-запрос может объединять или объединять данные из нескольких хранилищ. Например, вы можете выполнить унифицированный SQL-запрос в ситуации, когда часть данных хранится в Elasticsearch, а другая часть — в Hive.
Самое главное, что QSQL не зависит от какого-либо промежуточного вычислительного механизма, пользователям нужно только сосредоточиться на данных и унифицированной грамматике SQL для завершения статистики и анализа.
Архитектура
Схема архитектуры помогает вам легче получить доступ к Quicksql.
QSQL состоит из трёх уровней:
Основные функции
В большинстве случаев мы ожидаем использовать язык для анализа данных и не хотим рассматривать вещи, не связанные с анализом данных. Quicksql создан для этого.
Цель Quicksql — предоставить три функции:
SELECT state, pop FROM geo_mapping WHERE state = 'CA' ORDER BY state
sql SELECT approx_count_distinct(city), state FROM geo_mapping GROUP BY state LIMIT 10
Вы больше не будете раздражаться, потому что скобки в JSON-запросе не совпадают ;)
SELECT * FROM geo_mapping -- MySQL Dialect
LIMIT 10 OFFSET 10
SELECT * FROM geo_mapping -- Oracle Dialect
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY
sql SELECT * FROM geo_mapping LIMIT 10 OFFSET 10 -- Run Anywhere
SELECT * FROM
(SELECT * FROM es_raw.profile AS profile //index.tpye on Elasticsearch
WHERE note IS NOT NULL )AS es_profile
INNER JOIN
(SELECT * FROM hive_db.employee AS emp //database.table on Hive
INNER JOIN hive_db.action AS act //database.table on Hive
ON emp.name = act.name) AS tmp
ON es_profile.prefer = tmp.prefer
Начало работы
Инструкции по сборке Quicksql из исходного кода см. в разделе «Начало работы». Отчёт об ошибках
Если вы обнаружите какие-либо ошибки или у вас есть предложения по улучшению, пожалуйста, создайте проблему на GitHub.
И если проблема будет одобрена, коммиттер добавит перед описанием проблемы метку [QSQL-ID], чтобы она соответствовала коммиту. Например:
[QSQL-1002]: Views generated after splitting logical plan are redundant.
Вклад в проект
Мы приветствуем вклад в проект.
Если вам интересен Quicksql, вы можете загрузить исходный код с GitHub и выполнить следующую команду Maven в корневом каталоге проекта:
mvn -DskipTests clean package
Если вы планируете внести большой вклад, сначала поговорите с нами! Это поможет согласовать общий подход. Создайте проблему на GitHub для предложенной вами функции.
Форкните репозиторий GitHub и создайте ветку для вашей функции.
Разработайте свою функцию и тестовые примеры и убедитесь, что mvn install
успешно выполняется. (Запустите дополнительные тесты, если ваше изменение этого требует.)
Внесите изменения в вашу ветку.
Если ваше изменение состоит из нескольких коммитов, используйте git rebase -i master
, чтобы объединить их в один коммит и обновить ваш код до последней версии основной ветки.
Затем отправьте ваши коммиты на GitHub и создайте запрос на вытягивание из вашей ветки в основную ветку QSQL. Обновите случай JIRA, чтобы сослаться на ваш запрос на вытягивание, и коммиттер рассмотрит ваши изменения.
Запрос на вытягивание может потребовать обновления (после его отправки) по двум основным причинам:
Чтобы обновить запрос на вытягивание, вам нужно внести изменения в свою ветку и затем отправить коммиты на GitHub. Рекомендуется использовать обычные (не перебазированные) коммиты поверх уже существующих.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )