Introduction to Kdb+

This practical introduction to Kdb+ from KX is for those that have no prior experience and want to become competent at selecting data, writing scripts and creating functions. From the philosophy behind kdb, through the core building-blocks and up to writing advanced analytics that use parallel processing, we will help you master kdb.
On completion, a comprehensive set of notes, examples, exercises and example scripts are provided to take away.


This course is either available:

Course Content

For printing a PDF outline of the intro kdb+ course is available introduction to kdb+ course outline pdf.

Day 1

The BasicsOrigins of kdb, installation, configuring a development environment
(Screen AvailableDev Environment tutorial available) , running q scripts/commands.
Data TypesThe philosophy behind kdb, the data types it provides, particularly its support for time.
Dictionaries / ListsCRUD - Create, Read, Update and Delete from these core data structures.
Primitive Operationsbuilt-in functions, using these functions on atoms / lists and dictionaries.
EnumerationStoring character data: strings and symbols, when to use which and why.
FunctionsDefining functions, control statements, accessing global variables.
Protected evaluation and catching exceptions

Day 2

TablesDefining, updating, deleting, adding columns, sorting.
Creating relationships between tables using enumeration and Foreign Keys
Importing DataImporting from csv and other file formats.
Inter-Process Communication Communication between servers, sending data (a)synchronously, buffering
Security / Stream processing - by overriding event handlers
Load Balancing - distributing real time and historical queries over multiple machines
qSQLStandard SQL queries: "select col from table where ..", what's unique to qSQL
JoinsCovers the standard SQL joins left-join, inner-join, union-join.
Specialized kdb joins: plus-join, equi-join, asof-join
Optimizing joins and queries using attributes

Day 3

Multithreadingbuilt-in threading, Parallel processing. (Screen AvailableParallel screencast available)
Disk StorageText Output and Standard serialization - for saving small files
Splaying / Partitioning - For storing large amounts of historical data
Segments - For storing extremely large data sets and processing them efficiently in parallel
Advanced AnalyticsBuilding on our knowledge of qSQL and disk storage
Efficiently constructing analytics e.g. VWAP / TWAP
Logging / Check pointingCrash recovery, Transactions and rolling back


This class is a good fit for you if you have a little or no prior kdb experience. By the end of the 3 days you will have a broad understanding of most areas giving you the ability to confidently use kdb+ to solve most problems.

If you already have significant kdb experience our Kdb+ Data Manipulation or Kdb+ Architecture and Administration courses would be a better fit. If you have any questions or you are unsure which is more suitable please contact us.

Ask about Training