README.md 8.4 KB
Newer Older
1 2 3 4 5 6 7
<div align="center">
  <img alt="QuestDB Logo" src="https://raw.githubusercontent.com/questdb/questdb/master/.github/logo-readme.png" width="405px"/>
</div>
<div align="center">
  <kbd><img src="https://raw.githubusercontent.com/questdb/questdb/master/.github/watch.gif" alt="Watch this repo" width="320px"/></kbd>
</div>
<p>&nbsp;</p>
V
Vlad Ilyushchenko 已提交
8

V
Vlad Ilyushchenko 已提交
9
<p align="center">
10 11 12 13 14 15 16 17 18
  <a href="https://github.com/questdb/questdb/blob/master/LICENSE.txt">
    <img src="https://img.shields.io/github/license/questdb/questdb" />
  </a>
  <a href="https://www.codacy.com/app/bluestreak/nfsdb">
    <img src="https://api.codacy.com/project/badge/grade/83c6250bd9fc45a98c12c191af710754" />
  </a>
  <a href="https://circleci.com/gh/questdb/questdb">
    <img src="https://img.shields.io/circleci/build/github/questdb/questdb/master?token=c019f9fac8d84c0fa4896447d6073504a830e099" />
  </a>
V
Vlad Ilyushchenko 已提交
19
  <a href="https://github.com/questdb/questdb/releases/download/4.2.1/questdb-4.2.1-bin.tar.gz">
20 21 22 23 24 25 26 27
    <img src="https://img.shields.io/github/downloads/questdb/questdb/total" />
  </a>
  <a href="https://search.maven.org/search?q=g:org.questdb">
    <img src="https://img.shields.io/maven-central/v/org.questdb/core" />
  </a>
  <a href="https://serieux-saucisson-79115.herokuapp.com/">
    <img src="https://serieux-saucisson-79115.herokuapp.com/badge.svg" />
  </a>
28 29 30
</p>

<div align="center">
31 32

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
V
Vlad Ilyushchenko 已提交
33

34 35 36 37
[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg)](#contributors-)

<!-- ALL-CONTRIBUTORS-BADGE:END -->
</div>
V
Vlad Ilyushchenko 已提交
38 39

## What is QuestDB
V
Vlad Ilyushchenko 已提交
40

41 42 43
QuestDB is an open-source NewSQL relational database designed to process
time-series data, faster. Our approach comes from low-latency trading; QuestDB’s
stack is engineered from scratch, zero-GC Java and dependency-free.
J
j1897OS 已提交
44

45 46
QuestDB ingests data via HTTP, PostgreSQL wire protocol, Influx line protocol or
directly from Java. Reading data is done using SQL via HTTP, PostgreSQL wire
47
protocol or via Java API. The whole database and console fits in a < 4 MB
48
package.
49

V
Vlad Ilyushchenko 已提交
50
## Project goals
V
Vlad Ilyushchenko 已提交
51

52 53
- Treat time-series as first class citizen within a relational database
  framework.
V
Vlad Ilyushchenko 已提交
54

55 56
- Minimise hardware resources through software optimisation. Don’t waste CPU
  cycles, memory nor storage.
V
Vlad Ilyushchenko 已提交
57

T
Tancrede 已提交
58
- Be a reliable and trustworthy store of critical data.
V
Vlad Ilyushchenko 已提交
59

60 61
- Low friction operation. Empower developers with SQL. Simplify every database
  interaction.
V
Vlad Ilyushchenko 已提交
62

63 64
- Operate efficiently at both extremes: allow users to prioritise performance
  over data loss, and vice versa.
V
Vlad Ilyushchenko 已提交
65 66

- Be both embedded and standalone.
V
Vlad Ilyushchenko 已提交
67

T
Tancrede 已提交
68 69
## Getting Started

70 71 72 73
See our [My First Database](https://www.questdb.io/docs/myFirstDatabase)
tutorial. The easiest way to get started is to play with our web
[console](https://www.questdb.io/docs/usingWebConsole). This will allow you to
import and query data using an intuitive interface.
T
Tancrede 已提交
74

75 76
You may also take a look at our
[storage model](https://www.questdb.io/docs/storageModel). In short, we are a
77 78 79
column-oriented database, which partitions data by time intervals. Additionally,
you can find our documentation
[here](https://www.questdb.io/docs/documentationOverview).
T
Tancrede 已提交
80

81
There are various ways of installing QuestDB.
T
Tancrede 已提交
82

83
### Binaries
T
Tancrede 已提交
84

85 86 87
You can find our compiled binaries available for download on the
[release page](https://github.com/questdb/questdb/releases). The archive
contains both the \*nix and Windows version.
T
Tancrede 已提交
88

89
### Docker
T
Tancrede 已提交
90

91 92 93 94
Docker images are available on
[Docker Hub](https://hub.docker.com/r/questdb/questdb).

You can launch a QuestDB container with:
T
Tancrede 已提交
95

96
    $ docker run -p 9000:9000 questdb/questdb
97

98 99 100 101 102
QuestDB will now be reachable at [localhost:9000](http://localhost:9000).

### Building from source

#### Prerequisites
103 104 105

- Operating system - **x86-64**: Windows, Linux, FreeBSD and OSX / **ARM
  (AArch64/A64)**: Linux
106
- Java 11 64-bit. We recommend Oracle Java 11, but OpenJDK 11 will also work
107 108 109 110 111 112 113 114 115
  (although a little slower)
- Maven 3 (from your package manager on Linux / OSX
  ([Homebrew](https://github.com/Homebrew/brew)) or
  [from the jar](https://maven.apache.org/install.html) for any OS)
- Node.js 12 / npm 6 (to manage your Node.js versions we recommend
  [nvm](https://github.com/nvm-sh/nvm) for OSX/Linux/windows WSL, and
  [nvm-windows](https://github.com/coreybutler/nvm-windows) for Windows) -
  OPTIONAL

116
#### Building & Running
117

118 119
```bash
git clone git@github.com:questdb/questdb.git
V
Vlad Ilyushchenko 已提交
120 121
cd questdb

122
# Check the java version, the output should be similar to:
V
Vlad Ilyushchenko 已提交
123
#
124 125 126 127 128 129 130 131 132
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+10)
# OpenJDK 64-Bit Server VM (build 11.0.6+10, mixed mode)
#
# For OpenJDK, for Oracle JDK you should get:
#
# java version "11.0.6" 2019-01-14 LTS
# Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
# Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
V
Vlad Ilyushchenko 已提交
133
java -version
134

135 136 137 138
# Maven flags:
# 1. Remove 'skipTests' if you want to run all tests (3000+ unit tests, 3-5 mins)
# 2. You can add the parameter '-Dprofile.install-local-nodejs' if you do not want
# to rely on a local version of NodeJS, it will be pulled by maven instead
V
Vlad Ilyushchenko 已提交
139
mvn clean package -DskipTests
140

M
Méril 已提交
141 142
# <root_dir> is where the data and configuration will live
# replace the value with an actual directory name, example "out"
V
Vlad Ilyushchenko 已提交
143 144
mkdir <root_dir>

145
java -p core/target/core-4.3.0-SNAPSHOT.jar -m io.questdb/io.questdb.ServerMain -d <root_dir>
V
Vlad Ilyushchenko 已提交
146
```
147

148 149 150
QuestDB will start an HTTP server with the web console available at
[localhost:9000](http://localhost:9000). Additionally, a PostgreSQL server will
be started and available on port 8812, the default login credentials are
M
Méril 已提交
151
`admin`/`quest`. Both the HTTP and PostgreSQL servers reference the database in
152
`<root_directory>/db`.
V
Vlad Ilyushchenko 已提交
153

154 155 156 157 158 159 160 161
## Support / Contact

[Slack Channel](https://join.slack.com/t/questdb/shared_invite/enQtNzk4Nzg4Mjc2MTE2LTEzZThjMzliMjUzMTBmYzVjYWNmM2UyNWJmNDdkMDYyZmE0ZDliZTQxN2EzNzk5MDE3Zjc1ZmJiZmFiZTIwMGY)

## Roadmap

[Our roadmap is here](https://github.com/questdb/questdb/projects/3)

T
Tancrede 已提交
162
## Contribution
V
Vlad Ilyushchenko 已提交
163

164 165 166
Feel free to contribute to the project by forking the repository and submitting
pull requests. Please make sure you have read our
[contributing guide](https://github.com/questdb/questdb/blob/master/CONTRIBUTING.md).
167 168 169

## Contributors ✨

170 171
Thanks goes to these wonderful people
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
172 173 174 175 176 177

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tr>
178
    <td align="center"><a href="https://github.com/clickingbuttons"><img src="https://avatars1.githubusercontent.com/u/43246297?v=4" width="100px;" alt=""/><br /><sub><b>clickingbuttons</b></sub></a><br /><a href="https://github.com/questdb/questdb/commits?author=clickingbuttons" title="Code">💻</a> <a href="#ideas-clickingbuttons" title="Ideas, Planning, & Feedback">🤔</a> <a href="#userTesting-clickingbuttons" title="User Testing">📓</a></td>
M
Méril 已提交
179
    <td align="center"><a href="https://github.com/ideoma"><img src="https://avatars0.githubusercontent.com/u/2159629?v=4" width="100px;" alt=""/><br /><sub><b>ideoma</b></sub></a><br /><a href="https://github.com/questdb/questdb/commits?author=ideoma" title="Code">💻</a> <a href="#userTesting-ideoma" title="User Testing">📓</a> <a href="https://github.com/questdb/questdb/commits?author=ideoma" title="Tests">⚠️</a></td>
180
    <td align="center"><a href="https://github.com/tonytamwk"><img src="https://avatars2.githubusercontent.com/u/20872271?v=4" width="100px;" alt=""/><br /><sub><b>tonytamwk</b></sub></a><br /><a href="https://github.com/questdb/questdb/commits?author=tonytamwk" title="Code">💻</a> <a href="#userTesting-tonytamwk" title="User Testing">📓</a></td>
M
Méril 已提交
181
    <td align="center"><a href="http://sirinath.com/"><img src="https://avatars2.githubusercontent.com/u/637415?v=4" width="100px;" alt=""/><br /><sub><b>sirinath</b></sub></a><br /><a href="#ideas-sirinath" title="Ideas, Planning, & Feedback">🤔</a></td>
182
    <td align="center"><a href="https://www.linkedin.com/in/suhorukov"><img src="https://avatars1.githubusercontent.com/u/10332206?v=4" width="100px;" alt=""/><br /><sub><b>igor-suhorukov</b></sub></a><br /><a href="https://github.com/questdb/questdb/commits?author=igor-suhorukov" title="Code">💻</a> <a href="#ideas-igor-suhorukov" title="Ideas, Planning, & Feedback">🤔</a></td>
183 184 185 186 187
  </tr>
</table>

<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
188

189 190
<!-- ALL-CONTRIBUTORS-LIST:END -->

191 192 193
This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!