Our instructors can come on site and tailor a course specifically to meet the needs of your team. The diagram below shows most of the modules included in our other courses. You can choose a list or if you have something else entirely you want covered we have an extensive range of in-house expertise that covers many areas.

For printing a PDF detailing our customized kdb+ course is available kdb+ customized course pdf.

Discuss Customized On-Site Training

Available Modules


Starting kdb, data types and manipulating each of the core data types.

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
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
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


Importing LibrariesCreating C DLL's and calling that code from kdb+
C / Java Interfaces Calling kdb+ from c/Java (Screen AvailableJava API screencast available)
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
Memory ManagementKdb's memory model, garbage collection (Screen Available Memory tutorial available)
Disk SlavesSegmented databases with multiple CPUs, what is happening below the covers,
Best practices for constructing map-reduce queries and edge cases to be careful of.
CompressionHow can data be compressed, when to use it and which data to use it on.

Personalized Training

By delivering the training on site we can:

  • Tailor the course content to your needs
  • Adjust the schedule to fit around your availability
  • Attune our discussions to your company's use of kdb
Discuss Customized On-Site Training