7. API Reference
navigate_next
7.14. PHP
search
Table Of Contents
1. Primer
1.1. Primer
1.1.1. What is quasardb?
1.1.2. Shall we dance?
1.1.3. Inserting timeseries data
1.1.4. Working with the data
1.1.5. Organizing your data
1.1.6. Going further
1.1.7. Wrap up
1.2. python notebooks
1.2.1. Data in rows
1.2.2. Using Pandas DataFrames
1.2.3. Data in columns
2. Tutorials
2.1. An installation tutorial for people with very little time
2.1.1. Installing a quasardb daemon in three steps
Without a configuration file
With a configuration file
2.1.2. Using the quasardb shell to test your quasardb installation
2.2. Your first quasardb cluster
2.2.1. Create a Cluster with Three Nodes
Configure the First Node
Configure the Second Node
Configure the Third Node
Starting the Daemons
2.2.2. Talk to your cluster with the quasardb shell
2.3. A secured cluster
2.3.1. Generating a cluster key pair
2.3.2. Creating an user
2.3.3. Generating the daemon configuration
2.3.4. Running the daemon with our secure setup
2.3.5. Establishing a secure connection from the shell
2.3.6. Growing the cluster
3. Concepts
3.1. Cluster Organization
3.1.1. What is a Cluster?
3.1.2. Stabilization
3.1.3. Adding a Node to a Cluster
3.1.4. Removing a Node from a Cluster
3.1.5. Recovering from Node Failure
3.1.6. Nodes IDs
3.2. Data Storage
3.2.1. Where are Entries Stored in the Cluster?
3.2.2. Where are Entries Stored in a Node?
Transient mode
3.2.3. Data Migration
Migration Process
3.2.4. Data replication
Principle
How replication works with migration
Conflict resolution
Impact on reliability
Impact on performance
Fault tolerance
Memory Cache and Eviction
3.2.5. Data trimming
3.2.6. Statistics
3.3. Data Transfer
3.3.1. Designed for Concurrency
Server
Client
3.3.2. Guarantees
3.3.3. The Transfer Process
3.3.4. Failure Cases
Cluster Unstable
Topology Changed
Timeout
3.3.5. Data Conflicts
A simple data conflict
Resolving the simple conflict
A more complex data conflict
Best Practice: Plan for Concurrency
3.4. Data Types
3.4.1. Blobs
3.4.2. Integers
3.4.3. Double-Ended Queues
3.4.4. Distributed Hash Sets
3.4.5. Time series
3.5. Tags
3.5.1. Names
3.5.2. Transactions
3.6. Transactions
3.6.1. Overview
3.6.2. Characteristics
3.6.3. Design
Unique Transaction Identifier
Multiple Versions and Garbage Collection
3.6.4. Batch or transaction
3.7. Change Stream
3.7.1. Purpose
3.7.2. Recorded information
3.7.3. Update types
4. Server Administration
4.1. System Requirements
4.1.1. Hardware Requirements
Main build
Core2 build
ARM64 build
4.1.2. Software Requirements
FreeBSD Requirements
Linux Requirements
Windows Requirements
4.1.3. Best Practices
4.2. Windows Installation
4.2.1. Software Installation
4.2.2. Configuration
4.2.3. Test the Node
4.2.4. Test the Cluster
4.3. Red Hat Installation
4.3.1. Software Installation
4.3.2. Configuration
4.3.3. Test the Node
4.3.4. Test the Cluster
4.4. Debian Ubuntu Installation
4.4.1. Software Installation
4.4.2. Configuration
4.4.3. Test the Node
4.4.4. Test the Cluster
4.5. Other Linux Installation
4.5.1. Software Installation
4.5.2. Configuration
4.5.3. Test the Node
4.5.4. Test the Cluster
4.6. FreeBSD Installation
4.6.1. Software Installation
4.6.2. Configuration
4.6.3. Test the Node
4.6.4. Test the Cluster
4.7. Docker Installation
4.7.1. Available docker images
4.7.2. Tags
4.7.3. Software Installation
4.7.4. Configuration
4.7.5. Test the Node
4.7.6. Test the Cluster
4.8. Amazon Web Services Installation
4.8.1. AWS Marketplace
4.8.2. Windows Instance
4.8.3. Linux Instance
4.9. Microsoft Azure Installation
4.9.1. Azure Marketplace
4.9.2. Windows Instance
4.9.3. Linux Instance
4.10. JuJu Charms Installation
4.10.1. Ubuntu Instance
4.11. Operations
4.11.1. Graceful shutdown
4.11.2. Statistics
4.11.3. Log and Dump Files
4.11.4. Database Storage
4.11.5. Expanding the cluster
4.12. Performance tuning
4.12.1. Daemon
4.12.2. Testing cluster connectivity
4.12.3. Measuring performance
4.12.4. Rules of thumb
4.12.5. Recommendations
4.12.6. OS X Recommendations
4.12.7. Linux Recommendations
4.13. Troubleshooting
4.13.1. Excessive transactions conflicts
4.13.2. Performance drop
4.13.3. Failures
4.13.4. Disk Full
4.13.5. Bugs
4.14. Backing up quasardb
4.14.1. Replication isn’t always enough
4.14.2. Offline backups
Offline backup of a quasardb node
Offline restoration of a quasardb node
Offline backup of a quasardb cluster
Partial offline restoration of a quasardb cluster
Complete offline restoration of a quasardb cluster
4.14.3. Online backups
Cluster to cluster online backups
Cluster to data online backups
4.15. Security
4.15.1. Privileges
4.15.2. Authentication
4.15.3. Privileges
4.15.4. Internal cluster communications
4.15.5. Access control
4.15.6. Disabling an user
4.15.7. Traffic encryption
4.15.8. Perfect forward secrecy
4.15.9. Denial of Service (DoS) protection
5. Application Reference
5.1. quasardb daemon
5.1.1. Introduction
5.1.2. Quick Reference
5.1.3. Configuration
Global and local options
Network distribution
Logging
Cache
Data Storage
Partitions
Asynchronous time series inserter
5.1.4. Statistics
Supported metrics
Performance data
5.1.5. Operating limits
Theoretical limits
Practical limits
5.1.6. Parameters Reference
Instance specific
5.1.7. Global
5.1.8. Config File Reference
5.1.9. Performance considerations
Persistence
Network
Memory management
Security
5.2. quasardb cluster key generator
5.2.1. Introduction
5.2.2. Usage
5.3. quasardb user adder
5.3.1. Introduction
5.3.2. Reserved username
5.3.3. User ID
5.3.4. Privileges
5.3.5. Usage
5.4. quasardb shell
5.4.1. Introduction
5.4.2. Quick Reference
Command line options
Commands
5.4.3. Interactive mode
Examples
5.4.4. Non-interactive mode
Examples
5.4.5. Reference
Options
Commands
5.5. quasardb database tool
5.5.1. Introduction
5.5.2. Quick Reference
5.5.3. Parameters reference
5.6. quasardb benchmarking tool
5.6.1. Introduction
5.6.2. Quick Reference
5.6.3. Usage scenarii
5.6.4. Parameters reference
5.7. quasardb insertion tool
5.7.1. Introduction
5.7.2. Quick Reference
5.7.3. Configuration file
Basic configuration
Advanced Configuration
5.7.4. Parsers
5.7.5. Program Options
5.8. quasardb export tool
5.8.1. Introduction
5.8.2. Quick Reference
5.8.3. Program Options
5.9. quasardb CSV generator tool
5.9.1. Introduction
5.9.2. Quick Reference
5.9.3. Program Options
5.10. quasardb configuration generator
5.10.1. Introduction
5.10.2. Usage
5.11. quasardb for Excel
5.11.1. Introduction
5.11.2. Installation
5.11.3. Speadsheet functions
5.11.4. Ribbon buttons
5.12. quasardb REST API
5.12.1. Introduction
5.12.2. Quick Reference
5.12.3. Setting up
https config
Secured cluster config
5.12.4. Routes
5.12.5. Examples
Default config
Secured config
5.12.6. Options
5.13. quasardb dashboard
5.13.1. Introduction
5.13.2. Running
5.14. quasardb for Grafana
5.14.1. Introduction
5.14.2. Prerequisites
5.14.3. Installation
5.14.4. Configuration
5.14.5. Usage
6. Query language
6.1. Create table
6.1.1. Synopsis
6.1.2. Description
6.1.3. Parameters
6.1.4. Examples
6.2. Delete from
6.2.1. Synopsis
6.2.2. Description
6.2.3. Parameters
6.2.4. Examples
6.3. Drop table
6.3.1. Synopsis
6.3.2. Description
6.3.3. Parameters
6.3.4. Examples
6.4. Alter table
6.4.1. Synopsis
6.4.2. Description
6.4.3. Parameters
6.4.4. Examples
6.5. Show tables
6.5.1. Synopsis
6.5.2. Description
6.5.3. Examples
6.6. Select
6.6.1. Synopsis
6.6.2. Description
6.6.3. Parameters
6.6.4. Examples
6.6.5. Advanced examples
6.6.6. ASOF joins
Examples
6.7. Insert
6.7.1. Synopsis
6.7.2. Description
6.7.3. Parameters
6.7.4. Examples
6.8. Function & Operators
6.8.1. Aggregate functions
6.8.2. Comparison operators
6.8.3. Logical operators
6.8.4. Arithmetic operator
6.8.5. Bitwise operators
6.8.6. Regular expressions
6.8.7. IP related functions
6.8.8. Geographical functions
6.8.9. Lookup function
Example
6.9. Managing tables
6.9.1. Defining your tables
6.9.2. Defining your tags
6.9.3. Querying using tags
6.10. Timestamps
6.10.1. Absolute
6.10.2. Durations
6.10.3. Offsets
6.11. Key/value lookups
6.11.1. Examples
6.12. Grant
6.12.1. Synopsis
6.12.2. Description
6.12.3. Parameters
6.12.4. Examples
6.13. Revoke
6.13.1. Synopsis
6.13.2. Description
6.13.3. Parameters
6.13.4. Examples
6.14. Show grants
6.14.1. Synopsis
6.14.2. Description
6.14.3. Parameters
6.14.4. Examples
6.15. Show disk usage
6.15.1. Synopsis
6.15.2. Description
6.15.3. Parameters
6.15.4. Examples
7. API Reference
7.1. Common principles
7.1.1. Connection
7.1.2. Aliases
7.1.3. Put vs update
7.1.4. Atomicity
7.1.5. Data Types
7.1.6. Tags
7.1.7. Memory management
7.1.8. Error management
7.1.9. Automatic Load Balancing
7.1.10. Expiry
7.1.11. Iteration
7.1.12. Automatic recovery
Network disruptions
Timeout
Unstable cluster
7.1.13. Batch operations
Introduction
C++ Example
Limitations
Allowed operations
Error management
Complexity
Summary
7.1.14. Transactions
Limitations
Allowed operations
7.2. Streams
7.2.1. Features
7.2.2. Design
7.2.3. When to use
7.2.4. When not to use
7.2.5. Performance
7.3. Time series
7.3.1. Goal
7.3.2. Features
Reliability
Performance
Columns
Distribution
Bulk loading
Size
Resolution
Real-time aggregation
Efficient storage
7.3.3. Usage
Creation
Data insertion
Time series lookup
Fetching the values of time series
Server-side aggregation
7.4. C
7.4.1. Introduction
7.4.2. Installing
7.4.3. Connecting to a cluster
7.4.4. Connecting to multiple nodes within the same cluster
7.4.5. Adding entries
7.4.6. Getting entries
7.4.7. Removing entries
7.4.8. Cleaning up
7.4.9. Timeout
7.4.10. Expiry
7.4.11. Integers
7.4.12. Tags
7.4.13. Batch operations
7.4.14. Memory management
7.4.15. Iteration
7.4.16. Queries
7.4.17. Streaming
7.4.18. Timeseries
1.1 - Inserting data
1.2 - Bulk insert
2.1 - Getting data
2.2 - Bulk get
3 - Aggregating data
4 - Deleting data
7.4.19. Logging
7.4.20. Reference
General
Error codes
Batches
Blobs
Cluster and nodes
Integers
Iterators
Log
Options
Prefix
Queries
Streams
Suffix
Tags
Time series
Performance profiling
7.5. Performance profiling
7.5.1. Introduction
7.5.2. When to use?
7.5.3. Design
7.5.4. Usage
Enabling the collection on the server
Enabling the collection on the client
Retrieving performance data
What does a performance profile contain?
Clearing all performance data
7.6. C++
7.6.1. Quick Reference
7.6.2. Introduction
7.6.3. Installing
7.6.4. The handle object
7.6.5. The api_buffer object
7.6.6. Connecting to a cluster
7.6.7. Adding and getting data to and from a cluster
7.6.8. Closing a connection
7.6.9. Expiry
7.6.10. Batch operations
7.6.11. Iteration
7.6.12. Exceptions
7.6.13. Reference
7.7. Excel integration
7.7.1. Introduction
7.7.2. Installation
7.7.3. First connection
7.7.4. Querying data
7.7.5. Exploring your tables
7.7.6. Editing your dataset
7.8. Go
7.8.1. Introduction
7.8.2. Requirements
7.8.3. Installation
For Go version >= 1.11
For Go version <= 1.10
7.8.4. Reference
7.8.5. Getting started
Import API
Create a handle
Entry 101
Timeseries 101
7.9. Hadoop integration
7.9.1. Introduction
7.9.2. Requirements
7.9.3. Installation
7.9.4. Package
7.9.5. Build your first Map Reduce Job
Configure the Job
Implement Mapper Class
Implement Reducer Class
Reducer as a Combiner
Run Your Job
7.10. Java
7.10.1. Introduction
7.10.2. Requirements
7.10.3. Adding QuasarDB to your build
Maven
Gradle
Snapshot releases
7.10.4. Connecting to the database
Establishing a connection
Establishing a secure connection
7.10.5. Table management
Create
7.10.6. Writing data
Explicit flushing
Implicit flushing
Multiple Tables
7.10.7. Reading data
Reader
Query
7.10.8. Reference
7.11. Kafka Connector
7.11.1. Introduction
7.11.2. Installation
QuasarDB C library
Plugin jar
7.11.3. Configuration
Worker
Connector
7.11.4. Additional options
Running the worker
7.11.5. Performance Considerations
7.12. .NET
7.12.1. Introduction
7.12.2. Connecting to the database
7.12.3. Blobs
7.12.4. Double-ended queues
7.12.5. Integers
7.12.6. Streams
7.12.7. Tags
7.12.8. Search by prefix or suffix
7.12.9. See Also (References):
Cluster
Blobs
Deque
Integer
Stream
Tag
Entry
PrefixSelector
SuffixSelector
7.12.10. Version-History
Version 2.1.0
Version 2.0.0
7.13. Node.js
7.13.1. Introduction
7.13.2. Requirements and Installation
7.13.3. Reference
The
Entity
interface
The
ExpirableEntity
interface
The
Blob
class
The
Cluster
class
The
Deque
class
The
Error
class
The
Integer
class
The
Tag
class
7.14. PHP
7.15. Python
7.15.1. Introduction
7.15.2. Requirements
7.15.3. Installation
Windows and MacOS
Linux
7.15.4. Verifying installation
7.15.5. Connection management
Secure cluster
Timeout
7.15.6. Timeseries
Creating a table
Columnar API
Tabular API
7.15.7. Pandas
Series
DataFrame
7.15.8. Key/Values
Tags
Entry expiry
7.15.9. Reference
7.16. R
7.16.1. Introduction
7.16.2. Requirements
7.16.3. Installation
7.16.4. Usage
Establishing a connection
Creating a timeseries
Retrieving timeseries
Executing queries
7.17. Rest
7.17.1. Introduction
7.17.2. Routes
7.18. Spark connector
7.18.1. Introduction
7.18.2. Querying quasardb
Querying using RDD
Querying using a DataFrame
Aggregating using an RDD
Aggregating using a DataFrame
7.18.3. Writing to quasardb
Writing using an RDD
Writing using a DataFrame
7.18.4. Tests
7.18.5. A note for macOS users
8. FAQ
8.1. Does quasardb support IPv6?
8.2. Which platform does quasardb support?
8.3. What is the best platform to use quasardb?
8.4. Does quasardb support multi-core and/or multi-processor computers?
8.5. How is data transmitted on the network?
8.6. How fast is quasardb?
8.7. Is quasardb faster than… ?
8.8. Does quasardb support 32-bit operating systems?
8.9. What is the largest possible size for an entry?
8.10. What is the maximum entries count?
8.11. How much RAM can quasardb handle?
8.12. Is quasardb free of charge?
8.13. Can I embed the quasardb technology in my hardware/software?
8.14. Do I need a license to write a client?
8.15. What happens when my license expires?
8.16. I deleted data, but my disk remains full
8.17. My quasardb cluster doesn’t scale in performance
8.18. How long are versions compatible?
8.19. In what language is quasardb written?
8.20. Is quasardb open source?
8.21. Does quasardb use open source libraries?
9. Change log
9.1. 3.4.2 - “Mnesarchus” - 09/17/2019
9.1.1. Changes in this version
9.2. 3.4.1 - “Mnesarchus” - 08/12/2019
9.2.1. Changes in this version
9.3. 3.4.0 - “Mnesarchus” - 07/23/2019
9.3.1. Changes in this version
9.4. 3.3.0 - “Panaetius” - 05/13/2019
9.4.1. Changes in this version
9.5. 3.2.0 - “Hierocles” - 03/29/2019
9.5.1. Changes in this version
9.6. 3.1.0 - “Diodotus ” - 01/08/2019
9.6.1. Changes in this version
9.7. 3.0.0 - “Posidonius” - 11/21/2018
9.7.1. Changes in this version
9.8. 2.7.0 - “Eratosthenes” - 07/02/2018
9.8.1. Changes in this version
9.9. 2.6.0 - “Cleomedes” - 06/01/2018
9.9.1. Changes in this version
9.10. 2.5.0 - “Theodosius” - 04/20/2018
9.10.1. Changes in this version
9.11. 2.4.0 - “Aratus” - 03/11/2018
9.11.1. Changes in this version
9.12. 2.3.0 - “Epictetus” - 02/15/2018
9.12.1. Changes in this version
9.13. 2.2.0 - “Chrysippus” - 12/21/2017
9.13.1. Changes in this version
9.14. 2.1.0 - “Cleanthes” - 11/01/2017
9.14.1. Changes in this version
9.15. 2.0.0 - “Aristotle” - 01/17/2017
9.15.1. Changes in this version
9.15.2. Changes in the version
9.16. 1.2.1 - “Anaximander” - 05/05/2015
9.16.1. Changes in this version
9.17. 1.2.0 - “Anaximander” - 02/09/2015
9.17.1. Changes in this version
9.18. 1.1.5 - “Pythagoras” - 12/15/2014
9.18.1. Changes in this version
9.19. 1.1.4 - “Pythagoras” - 06/30/2014
9.19.1. Changes in this version
9.20. 1.1.3 - “Pythagoras” - 04/29/2014
9.20.1. Changes in this version
9.21. 1.1.2 - “Pythagoras” - 02/03/2014
9.21.1. About
9.21.2. Changes in this version
9.22. 1.1.1 - “Pythagoras” - 01/07/2014
9.22.1. About
9.22.2. Changes in this version
9.23. 1.1.0 - “Pythagoras” - 09/16/2013
9.23.1. About
9.23.2. Changes in this version
9.24. 1.0.1 SR1 - “Zeno” - 09/11/2013
9.24.1. About
9.24.2. Changes in this version
9.25. 1.0.1 - “Zeno” - 07/08/2013
9.25.1. About
9.25.2. Changes in this version
9.26. 1.0.0 - “Zeno” - 06/10/2013
9.26.1. About
9.26.2. Changes in this version
9.27. 0.7.4 - 03/18/2013
9.27.1. Changes in this version
9.28. 0.7.3 - 02/11/2013
9.28.1. Changes in this version
9.29. 0.7.2 - 01/14/2013
9.29.1. Changes in this version
9.30. 0.7.1 - 10/15/2012
9.30.1. Changes in this version
9.31. 0.7.0 - 09/04/2012
9.31.1. Changes in this version
9.32. 0.6.66 - 07/02/2012
9.32.1. Changes in this version
9.33. 0.6.5 - 06/08/2012
9.33.1. Changes in this version
9.34. 0.6.0 - 01/16/2012
9.34.1. Changes in this version
9.35. 0.5.2 - 11/14/2011
9.35.1. Changes in this version
9.36. 0.5.1 - 10/01/2011
9.36.1. Changes in this version
9.37. 0.5.0 - 08/01/2011
9.37.1. Changes in this version
9.38. 0.4.2 - 05/26/2011
9.38.1. Changes in this version
9.39. 0.4.1 - 05/07/2011
9.39.1. Changes in this version
9.40. 0.4.0 - 04/22/2011
9.40.1. Changes in this version
9.41. 0.3.2 - 02/26/2011
9.41.1. Changes in this version
9.42. 0.3.1 - 02/22/2011
9.42.1. Changes in this version
9.43. 0.2.0 - 11/11/2010
9.43.1. Changes in this version
9.44. 0.1.0 - 07/26/2010
9.44.1. Changes in this version
10. License
10.1. Usage
10.2. License file
10.3. Expiration
10.4. Scope of the licensed rights
10.4.1. Software Use
10.4.2. Updates and Upgrades
10.4.3. Runtime programs
10.4.4. Back-up copies
10.5. Use restrictions
10.5.1. Software modification and reverse engineering
10.5.2. Interoperability
10.6. Third party software
10.7. Limitation of liability
10.8. Indemnifications
10.9. Intellectual property and ownership
11. Contacting us
11.1. About quasardb
11.2. Contacting a salesperson
11.3. Requesting a feature
12. Contacting Support
7.14. PHP
¶
arrow_back
Previous
7.13. Node.js
Next
arrow_forward
7.15. Python