English | 简体中文 | 繁體中文 | العربية | Italiano | Українська | Español | Português | Français | Deutsch | 日本語 | 한국어 | עברית | Nederlands | Türkçe | हिंदी | Tiếng Việt | Bahasa Melayu
QuestDB — це база даних часових рядів з відкритим кодом, що пропонує блискавично швидкий прийом та динамічні SQL-запити з низькою затримкою.
Ми досягаємо високої продуктивності завдяки колонно-орієнтованій моделі зберігання, паралелізованому векторному виконанню, SIMD інструкціям та технікам низької затримки. Крім того, QuestDB ефективно використовує апаратні ресурси з швидким налаштуванням та операційною ефективністю.
QuestDB реалізує ANSI SQL з нативними розширеннями SQL для часових рядів.
QuestDB надає багаторівневий механізм зберігання (WAL → нативний → Parquet на об'єктному сховищі), і основний рушій реалізовано на zero-GC Java та C++; QuestDB Enterprise включає додаткові компоненти на Rust.
Готові розпочати? Переходьте до розділу Початок роботи.
Основні функціональні можливості включають:
- Низькозатримний, високопродуктивний прийом — від окремих подій до мільйонів/сек
- Низькозатримний SQL з розширеннями часових рядів (ASOF JOIN, SAMPLE BY, LATEST ON)
- SIMD-прискорене паралельне виконання; швидко працює на скромному обладнанні
- Багатошарове зберігання: WAL → нативне колонкове → Parquet (розділене за часом та упорядковане за часом)
- Протокол Postgres (PGwire) та REST API
- Матеріалізовані представлення та n-вимірні масиви (включаючи 2D масиви для книг замовлень)
- Веб-консоль для запитів та управління даними
- Apache 2.0 відкритий код та відкриті формати — без прив'язки до постачальника
- Фінансові функції та аналітика книг замовлень
QuestDB відмінно справляється з:
- дані фінансових ринків (тикові дані, угоди, книги замовлень, OHLC)
- Дані сенсорів/телеметрії з високою кардинальністю даних
- панелі реального часу та моніторинг
А навіщо використовувати базу даних часових рядів?
Окрім продуктивності та ефективності, зі спеціалізованою базою даних часових рядів вам не потрібно турбуватися про:
- дані не в порядку
- дедублікація та семантика точно один раз
- Безперервний потоковий прийом з багатьма одночасними запитами
- потокові дані (низька затримка)
- мінливі та "пульсуючі" дані
- додавання нових стовпців - зміна схеми "на льоту" під час потокових даних
Живе, публічне демо забезпечене останньою версією QuestDB та зразковими наборами даних:
- Угоди: живі крипто-угоди з 30M+ рядками на місяць (біржа OKX)
- FX книга замовлень: живі графіки з книгами замовлень FX пар
- Поїздки: 10 років поїздок таксі NYC з 1.6 мільярда рядками
У нас також є деякі публічні, реал-тайм демо-панелі, що використовують наш Grafana-native плагін:
- Реал-тайм крипто-угоди: виконані угоди на OKX з більш ніж 20 активів в реальному часі
- FX книга замовлень: живі графіки глибини/дисбалансу для основних пар
QuestDB дуже добре показує себе у тестах продуктивності порівняно з альтернативами.
Для глибокого занурення у внутрішню будову та продуктивність, див. наступні пости блогу:
Як завжди, ми заохочуємо вас запускати власні тести.
Використовуйте Docker для швидкого старту:
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdbАбо користувачі macOS можуть використовувати Homebrew:
brew install questdb
brew services start questdbquestdb start
questdb stopАльтернативно, щоб розпочати повний процес онбордингу, почніть з нашого стислого гіду швидкого старту.
Клієнти QuestDB для прийому даних через InfluxDB Line Protocol:
Взаємодійте з QuestDB та вашими даними через наступні інтерфейси:
- Web Console для інтерактивного SQL редактора та CSV імпорту на порту
9000 - InfluxDB Line Protocol для потокового прийому на порту
9000 - PostgreSQL Wire Protocol для програмних запитів на порту
8812 - REST API для CSV імпорту та cURL на порту
9000
Популярні інструменти, що інтегруються з QuestDB, включають:
Від потокового прийому до візуалізації з Grafana, розпочніть з кодових шаблонів з нашого репозиторію швидкого старту.
Знайдіть наше планування потужності для точного налаштування QuestDB для робочих навантажень у виробництві.
Для безпечної роботи у більшому масштабі або в рамках великих організацій. Додаткові функції включають:
- Висока доступність та реплікація для читання
- Прийом з кількох основних джерел
- Інтеграція холодного зберігання
- Контроль доступу на основі ролей
- TLS шифрування
- Нативне запитування файлів Parquet через об'єктне сховище
- Підтримка SLA, покращений моніторинг та більше
Відвідайте сторінку Enterprise для додаткових деталей та контактної інформації.
- Документація QuestDB: розпочніть подорож
- Дорожня карта продукту: перевірте наш план майбутніх релізів
- Посібники: дізнайтесь що можливо з QuestDB, крок за кроком
- Форум спільноти Discourse: приєднуйтеся до технічних дискусій, ставте питання та зустрічайтеся з іншими користувачами
- Публічний Slack: спілкуйтеся з командою QuestDB та членами спільноти
- GitHub issues: повідомляйте про баги або проблеми з QuestDB
- Stack Overflow: шукайте загальні рішення для усунення неполадок
Внески вітаються! Ми цінуємо:
- Вихідний код
- Документацію (див. наш репозиторій документації)
- Звіти про помилки
- Запити функцій або відгуки
Щоб розпочати внесок:
- Перегляньте проблеми GitHub з міткою "Хороша перша проблема"
- Для Hacktoberfest, див. відповідні проблеми з мітками
- Прочитайте посібник з внеску
- Для деталей про збірку QuestDB, див. інструкції зі збірки
- Створіть форк QuestDB та подайте pull request з вашими запропонованими змінами
- Застрягли? Приєднуйтесь до нашого публічного Slack для допомоги
✨ Як знак нашої вдячності, ми надсилаємо QuestDB swag нашим учасникам!
Велика подяка цим чудовим людям, які зробили свій внесок у проєкт QuestDB (emoji key):
Цей проект дотримується специфікації всіх учасників. Внески будь-якого роду вітаються!
