README.md 4.6 KB
Newer Older
V
Vlad Ilyushchenko 已提交
1 2 3
<h1 align="center">
  <img src="https://raw.githubusercontent.com/questdb/questdb/readme-improvements/core/src/main/resources/site/public/images/logo-readme.jpg"/>
</h1>
V
Vlad Ilyushchenko 已提交
4

V
Vlad Ilyushchenko 已提交
5
<p align="center">
V
Vlad Ilyushchenko 已提交
6 7 8 9 10 11 12 13 14
  <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>
  <a href="https://serieux-saucisson-79115.herokuapp.com/"><img src="https://serieux-saucisson-79115.herokuapp.com/badge.svg"></a>
  <a href="https://github.com/questdb/questdb/releases/download/4.0.0/questdb-4.0.0-bin.tar.gz"><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>
</p
  
<p/>
V
Vlad Ilyushchenko 已提交
15 16

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

V
Vlad Ilyushchenko 已提交
18
QuestDB is a NewSQL database for Hybrid Transactional, Analytical and Time Series Processing workloads. QuestDB ingests data via HTTP, PostgresSQL wire protocol, Influx line protocol or directly from Java. Reading data is done using SQL via HTTP, PostgreSQL wire protocol or via Java API. The whole database is 3.5Mb packages.
19

V
Vlad Ilyushchenko 已提交
20
## Project goals
V
Vlad Ilyushchenko 已提交
21

T
Tancrede 已提交
22
- Treat time-series as first class citizen within a relational database.
V
Vlad Ilyushchenko 已提交
23

V
Vlad Ilyushchenko 已提交
24 25
- Be consistently economical and respectful of hardware resources. Don't waste CPU cycles, memory or storage.

T
Tancrede 已提交
26
- Be a reliable and trustworthy store of critical data.
V
Vlad Ilyushchenko 已提交
27 28 29

- Low friction operation. Empower with SQL. Simplify every database interaction.

T
Tancrede 已提交
30
- Operate efficiently at both extremes: allow users to prioritise performance over data loss, or no loss over performance.
V
Vlad Ilyushchenko 已提交
31 32

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

34 35 36 37
## Building from source

### Pre-requitites:

J
j1897OS 已提交
38
- Java 8 64-bit. We recommend Oracle Java 8, but OpenJDK8 will also work (although a little slower).
39 40 41 42 43
- Maven 3
- Compatible 64-bit Operating System: Windows, Linux, OSX or ARM Linux
- Configure JAVA_HOME environment variable
- Add Maven "bin" directory to PATH environment variable

V
Vlad Ilyushchenko 已提交
44
```
V
Vlad Ilyushchenko 已提交
45 46
Note: Java versions above 8 are not yet supported. It is possible to build QuestDB with Java 11,
but this requires backward incompatible source code changes.
V
Vlad Ilyushchenko 已提交
47 48
```

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
### Building

```
mvn clean package
```


### Running

Main class: `io.questdb.ServerMain`

Program arguments: `-d <home_directory>`

QuestDB will start HTTP server on 0:9000, which you can visit from your browser: http://localhost:9000. HTTP server is constrained by directory specified as program argument (-d). Additionally QuestDB will start PostgreSQL server on 0:8812, default login credentials are admin/quest. Both HTTP and PostresSQL server reference database in `home_directory/db`

## Getting Started
V
Vlad Ilyushchenko 已提交
65

T
Tancrede 已提交
66 67
[Install](https://www.questdb.io/docs/install) and [run](https://www.questdb.io/docs/run) QuestDB.
Then, the easiest way to get started is to play with our
68
web [console](https://www.questdb.io/docs/console). This will allow you to import
T
Tancrede 已提交
69
and query data using an intuitive interface.
V
Vlad Ilyushchenko 已提交
70

T
Tancrede 已提交
71
You may also take a look at our [storage model](https://www.questdb.io/docs/storagemodel). In a nutshell,
J
j1897OS 已提交
72
we are a column-oriented database, which partitions data by time intervals.
V
Vlad Ilyushchenko 已提交
73

T
Tancrede 已提交
74
You can find more documentation [here](https://www.questdb.io/docs/documentation)
V
Vlad Ilyushchenko 已提交
75

76
## Support / Contact
V
Vlad Ilyushchenko 已提交
77

T
Tancrede 已提交
78
- [Slack Channel](https://join.slack.com/t/questdb/shared_invite/enQtNzk4Nzg4Mjc2MTE2LTEzZThjMzliMjUzMTBmYzVjYWNmM2UyNWJmNDdkMDYyZmE0ZDliZTQxN2EzNzk5MDE3Zjc1ZmJiZmFiZTIwMGY)
V
Vlad Ilyushchenko 已提交
79

T
Tancrede 已提交
80
### Roadmap
V
Vlad Ilyushchenko 已提交
81

T
Tancrede 已提交
82
We have built the ultimate performance for read and write on a single-thread.
J
j1897OS 已提交
83
But we still have some work to do.
T
Tancrede 已提交
84
Elements on our roadmap include:
V
Vlad Ilyushchenko 已提交
85

86
- Query and aggregates optimisation. Currently, we run aggregates through linear scans.
J
j1897OS 已提交
87 88
While our scans are highly efficient, our current implementations of aggregates are somehow naive.
Further optimisation will take performance to new levels.
89 90
- Multithreading. Currently, we use one single thread. While this is good for certain use cases
(you can limit QuestDB to one thread and leave resources for other programs), we will provide
J
j1897OS 已提交
91
the ability to distribute load/query work over several cores to benefit from parallelisation.
T
Tancrede 已提交
92
- High-availability. Working on providing out-of-the-box high-availability with extreme simplicity.
V
Vlad Ilyushchenko 已提交
93

T
Tancrede 已提交
94
### Contribution
V
Vlad Ilyushchenko 已提交
95

T
TheTanc 已提交
96 97
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).