This is a quick start guide to q, aimed primarily at those learning independently. It covers system installation, the q environment, IPC, tables and typical databases, and where to find more material. After completing this you should be able to follow the Borror textbook Q for Mortals, and the wiki Reference and Cookbook.
One caution: you can learn q reasonably well by independent study, but for serious evaluation of the product you need the help of a consultant. This is because q is typically used for very demanding applications that require experience to set up properly. Contact Kx Systems or one of its partners for help with such evaluations.
The kdb+ system is both a database and a programming language:
kdb+ the database (k database plus).
q the programming language for working with kdb+
Both kdb+ and q are written in the k programming language. You do not need to know k to work with kdb+, but will occasionally see references to it. For example, q is defined in the distributed script q.k.
This site is the best resource for learning q, and includes:
- Jeff Borror’s textbook Q for Mortals
- a cookbook of common tasks
- a reference for the built-in functions
- interfaces with other languages and processes
- The main discussion forum is the k4 listbox. This is available only to licensed customers – please use a work email address to apply for access.
- The Kdb+ Personal Developers forum is an open Google discussion group for users of the free 32-bit system.
1.4 Install free 32-bit system¶
If you do not already have access to a licensed copy, go to Get started to download and install q.
1.5 Example files¶
Two sets of scripts are referenced in this guide:
The free 32-bit system is distributed with the following example scripts in the main directory:
- sp.q – the Suppliers and Parts sample database
- trade.q – a stock trades sample database
If you do not have these scripts, get them from KxSystems/kdb and save them in your q directory.
Other example files are in the KxSystems/cookbook/start directory.
Move the start directory under your q directory, i.e. q/start. For example, there should be a file:
c:\q\start\buildhdb.q / Windows ~/q/start/buildhdb.q / Linux and macOS
Text editor for Windows
Since q source is in plain text files, it is worthwhile installing a good text editor such as Notepad++ or Notepad2.
When q is run, it displays a console where you can enter commands and see the results. This is all you need to follow the tutorial, and if you just want to learn a little about q, then it is easiest to work in the console.
As you become more familiar with q, you may try one of the GUIs.
- Most popular is Charlie Skelton’s Studio for kdb+, a cross-platform execution environment – worth having available even if you use another interface
- qStudio, a cross-platform IDE with charting and autocompletion by TimeStored
- First Derivatives offer their clients the qIDE development system
- Q and K Development Tools has an Eclipse plugin
- Q Insight Pad is an IDE for Windows
- Qconsole is an IDE using GTK
- PyQ lets you run q inside a Jupyter notebook