Giter VIP home page Giter VIP logo

questdb's Introduction

What is QuestDB

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.

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 protocol or via Java API. The whole database and console fits in a 3.5Mb package.

Project goals

  • Treat time-series as first class citizen within a relational database framework.

  • Minimise hardware resources through software optimisation. Don’t waste CPU cycles, memory nor storage.

  • Be a reliable and trustworthy store of critical data.

  • Low friction operation. Empower developers with SQL. Simplify every database interaction.

  • Operate efficiently at both extremes: allow users to prioritise performance over data loss, and vice versa.

  • Be both embedded and standalone.

Getting Started

See our My First Database tutorial. The easiest way to get started is to play with our web console. This will allow you to import and query data using an intuitive interface.

You may also take a look at our storage model. In short, we are a column-oriented database, which partitions data by time intervals.

You can find more documentation here

Support / Contact

Roadmap

Our roadmap is here

Building from source

Pre-requitites:

  • Java 8 64-bit. We recommend Oracle Java 8, but OpenJDK8 will also work (although a little slower).
  • 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
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.

Building & Running

git clone https://github.com/questdb/questdb.git
cd questdb

# check java version
# output should be similar to:
#
# java version "1.8.0_212"
# Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
# Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
#
# if your java version is above 8 you can download & install JDK8 and use absolute
# path to java executable instead of 'java'

java -version

# remove 'skipTests' if you want to run all tests (3000+ unit tests, 3-5 mins)
mvn clean package -DskipTests

# check contents of 'core/target' directory to find QuestDB's current version number

# create QuestDB root directory if one does not exist already
# replace <root_dir> with actual directory name
mkdir <root_dir>

# <version> is QuestDB's current version from pom.xml
# <root_dir> is the root directory created at the previous step
java -cp core/target/core-<version>.jar io.questdb.ServerMain -d <dir>

QuestDB will start the 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's server on 0:8812, default login credentials are admin/quest. Both HTTP and PostresSQL server reference database in <root_directory>/db

Contribution

Feel free to contribute to the project by forking the repository and submitting pull requests. Please make sure you have read our contributing guide.

questdb's People

Contributors

bluestreak01 avatar ideoma avatar thetanc avatar patrickspacesurfer avatar tris0laris avatar bluestreak02 avatar clickingbuttons avatar jaugsburger avatar sirinath avatar igor-suhorukov avatar apjanke avatar mpsq avatar gitter-badger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.