Archive for the 'kdb+' Category

Pulse 3.25 Released

Pulse 3.25 released with Conditional formatting, a new form creator and new date picker widgets:

 

 

 

  • 2025-09-13 – 3.25 – Enable User Customization.
    • Add burger menu that allows end user chart and table customization (user Control option?).
    • Add conditional formatting to right-click context menu.
    • Tags support multiples.
    • SQL Notebooks – Add copy to clipboard to code displays.
    • Add Clickable SD_LINK columns in tables help.
    • Connection Scalability – Improve JDBC connection pool settings for large 100+ user deploys.
  • 2025-09-10 – 3.24 – Improvements to Forms
    • Forms – Form editor now supports multi-column drag-and-drop.
    • Add Icon support to buttons and text inputs.
    • Select multi-dropdown supports select __ALL__ for when there are lots of options.
    • Add intent and size support to all controls.
    • Checkbox and Radio support segmented style.
    • Improved date pickers help.
    • Change default to 30 min refresh.
    • Add ability to delete variables in debug UI.
    • bugfix: Select multi-dropdown no longer scrolls to top on selection.
    • bugfix: Non-editors shown some editor controls when receiving URL.
    • bugfix: SQL Notebooks – Fix show queries button.

100 plus people Fired at KX

  • We previously wrote an article on: Kdb+ Acquired by Private Equity
  • In July KX was acquired by TA and went private.
  • Today 2025-09-04 we are hearing that 100 plus staff may have been let go.What does this mean for KX next?

Update 2025-09-13 – Number being reported is closer to 200.

Update 2025-09-15 – KX and onemarketdata (onetick) have merged.
https://kx.com/news-room/kx-and-onetick-merge-to-unite-capital-markets-data-analytics-ai-and-surveillance-on-one-platform/

QStudio 4.09 – NEW! Dive-into Nested kdb+ Results.

QStudio 4.09 introduces a number of new features to make exploring data easier than ever.

Column Stats

Allows getting a count of nulls, averages and how many distinct values a column contains by hovering the column header:

Transposed row(s)

Have a very wide table? Want to quickly see all the column?
Transpose from a row to column based layout for those rows. Allowing you to quickly see all values:

Dive-into Nested Results

Double-click on a nested array or kdb structure (table/dict) to pop-out a table showing only the nested item. You can repeat this to dig deeper and deeper into nested data. (Thanks to Oleg/QPad on pioneering this idea).

As well as these new features, a large number of bugs were fixed:

  • 4K Monitor support was significantly improved. You have the option to scale the full UI in preferences.
  • Apple Mac got a dedicated release and custom App download.
  • We upgraded kdb+ c/jdbc.java to allow SSL TLS.

 

Full Release Info:

All past release changes can be found here.

2025-05-12 – 4.09 – Improve Autocomplete suggestions
– Add namespace listing panel.
– Improve QDoc to add file level details.

2025-04-22 – 4.08 – Bugfix: Candlestick charts were wrong as receiving wrong timezone from kdb driver. Timezone now set to UTC.
– Bugfix: “Save as” to .sql was shrinking text. Now fixed.
– Bugfix: Show red X close on every document tab.

2025-04-06 – 4.07 – Add UI Scaling and Font size as separate options to help with 4K monitors
– Bugfix: Kdb+ Queries with errors could cause 30 second freezes.
– Bugfix: Switch back to MonoSpaced font. Variable width fonts cause wrong caret position.
– Improved high resolution QStudio icon.
– Mac: Bugfix: Prefences dialog fixed and allows choosing font.
– Mac: Fixed Menu shoing about/preferences/exit.
– Mac: Allow Command+Option+E to run current query.
– 4K handling improved sizing of dialogs.
– Bugfix: Improved duckdb init when folder is empty.

2025-03-13 – 4.06 – Add ability to transpose rows.
– DuckDB 1.2.1. Improve display of DuckDB arrays.
– Add comma separator for thousands option.

2025-02-23 – 4.05 – Upgrade kdb+ c/jdbc.java to allow SSL TLS.
– Add preference to allow hiding all tooltips.
– Double-click on kdb+ table with dictionary/table/list nested in cell will pop it out.

2025-01-23 – 4.04 – Show column info (avg/min/max) when column header is hovered.
– Remove watched expressions entirely.
– Improved UI threading for tree/chart display.

 

Kdb+ Acquired by Private Equity

2025-05-08 – Private equity firm TA announced an “All-Cash Offer to Acquire FD Technologies, Owner of Global Real-Time Analytics Leader KX”.

Most people are probably wondering how this came about:

  • 1996 – Brian established First Derivatives (FD) in 1996 from his mother’s spare bedroom (Newry, Northern Ireland) with a loan of £5,000 from the Credit Union.
  • 1993 – Arthur Whitney and Janet Lustgarten jointly form the company KX
  • 1998 – Kdb+ – In-memory column based database created by KX
  • KX and FD work in partnership to grow the business.
  • 2014-10 – First Derivatives acquires a controlling stake in Kx Systems.
  • 2018 – FD agrees to buy out minority Kx Systems shareholders (Arthur and Janet)
  • 2019 – First Derivatives completes acquisition of the minority shareholdings in Kx Systems, taking the company’s total stake in the business to 100 per cent for $53.8 million (€48m) in cash.
    “The deal marks an important milestone for the company”, chief executive Brian Conlon said.
  • 2019-07-28 – Brian Conlon, one of Northern Ireland’s most successful businessmen passes away. (link)
  • 2020-01 – Seamus Keating appointed as CEO
  • 2024-03 – FD Technologies broken into 3 separate firms:
    • MRP – Marketing (spun off into a merger)
    • First Derivative consulting arm.
    • FD Technologies owning the KX software business
  • 2024-12 – FD Technologies plc (LON:FDP) completes sale of First Derivative (consultancy) to EPAM Systems, Inc..
  • 2025-05-08 – Private equity firm TA announced an “All-Cash Offer to Acquire FD Technologies, Owner of Global Real-Time Analytics Leader KX”.

Pulse 3.14 Released

Releasing dashboards from file to allow git file based deploys:

Improved Form Customization with radio/checkbox inline/disabled/large options. Allow specifying step size and labels for numeric slider.

Send {{ALL}} variables to kdb+ as a nested dictionary:

QStudio is now Free!

QStudio is now 100% Free. No registration or license required.

Free QStudio

Why? Are you shutting down?

Quite the opposite, we believe free and open source is the future and that is where we are going.
If anything we want customers to take this as a massive thanks.
Thank you for being part of driving QStudio forward and sponsoring development and cheering us along all these years.

Thanks in particular to

Thanks in particular to the large finance firms that took a chance on us. Big firms can be bureaucratic with onboarding, purchasing policies, vendor lists, 30 page contracts so I want to thanks all those individuals that jumped those hurdles to get us onboarded and those that put it on the corporate credit card.  Below this post is an image containing what may or may not be some customers and other firms that have provided feedback, assistance and input over the years. Strictly speaking we are not allowed to confirm nor deny customers.

What I would say as an external party is that on average these places knew how to complete paperwork, get out of staffs way and enable them to get work done so they are probably better places to work on average.

 

Over the years, a few larger firms failed to onboard as those attempting it were ground down under the paperwork.
The good news for them is that QStudio is now free and the paperwork should be halved!

We look forward to improving QStudio together.

Being Free opens up more opportunities, please:

This is me cancelling all the individual users that paid annually for QStudio after 10+ years of building them up! Similarly all corporate contracts are also terminated.

Thanks

Note: For those who recently renewed we are offering a Free Pulse license for 10x the users you purchased for QStudio. Get in touch for a demo.

The Best SQL Notebooks

Want to create beautiful live updating SQL notebooks?
While being able to easily source control the code?
and take static snapshots to share with colleagues that don’t have database access?

Today we launched exactly what you need and it’s available in both:

  • QStudio Version 4 – Desktop SQL Client entirely based on editing markdown files locally.
  • Pulse Version 3 – As a shared team server, where users only need a web address to get started and share results.

 

SQL Notebook Examples

We have worked with leading members of the community to create a showcase of examples.
These are snapshotted versions with static data. The source markdown and most the data to recreate them are available on github.SQL Notebook Examples

Let us know what you think, please report any issues, feature suggestions or bugs on our github QStudio issue or Pulse issue tracker.

Thanks to everyone that made this possible. Particularly Brian Luft, Rich Brown, Javier Ramirez, Alexander Unterrainer, Mark Street, James Galligan, Sean Keevey, Kevin Smyth, KX, Nick Psaris and QuestDB.

Ryan will be at Duckcon #6 Amsterdam

Duckcon #6 – Amsterdam

DuckDB has skyrocketed in the last year and Amsterdam is it’s home. QStudio will be there in 2025.


31st January 2025 – 16:40 Stock data analysis with DuckDB
One year ago we decided to bundle DuckDB as we thought it was awesome. A free column oriented database that can open local databases and perform ASOF joins at speed! We knew QStudio users would love it. This year Ryan is excited to be speaking at Duckcon #6 in Amsterdam.

QStudio was at Bigdata LDN

Ryan attended Big Data LDN in September, the highlights were:

  • Meeting the QuestDB team in-person and seeing their talk live.
  • Listening this talk on modern data lake data formats.
  • Complaining to Jonny Press and Gary Davies about over 50% of the hall being AI dominated.

kdb 5.0 – The Roadmap Ahead

kdb 5.0In 1998 kdb+ was released and changed the finance database industry. We want to do it again.

Today we are releasing kdb+ 5.0 that Works Easily for Everyone, Everywhere, with Everything.

  • A Data Platform that Easily Works for
  • Everyone – Is the most user friendly q ever
  • Everywhere – Finance and beyond
  • Works with Everything
    • Works with every major database tool seamlessly.
    • Interoperates with R/Python and almost every major data tool using high speed standards

The Past – What we have done

Purpose of MS-DOS in Windows 95... - BetaArchive

15 years ago we had a product that was light years ahead of our competition. When you download q today it looks fundamentally similar to how it looked then. Users are presented with a bare q prompt and left to create a tickerplant, a framework and various parts themselves to get real work done.

The landscape has changed and we need to change faster with it. Today we address that. How?

 

Computer developer with glasses and colorful jumper sitting on a trading floor amongst finance people with grey business suits. Cartoon Lego style.

1. We are going to listen and embed ourselves with customers. Pierre and Oleg have been sitting and working with kdb teams at every major bank and hedge fund. They have seen the problems that are being solved, what amazing work those teams have done and where we can improve the core to help them.

2. We are working with the community. Data Intellect invented the marvellous Torq framework, Jo Shinonome has created Kola, Daniel Nugent wrote a wonderful testing framework and numerous others have written useful q modules. They’ve written some great useful components and provided us with lots of insight.

3. We are learning from the competition. Andrew and Ashok have gone round every database and technology similar to ours and examined their strengths and weaknesses. They coded on each and have found some amazing parts but going further they have looked at how those businesses operate and how they attract users.

 

The Past

2347: Dependency - explain xkcd

Previously. Someone downloaded kdb then needed to email us to use commercially and wait months for their company to negotiate a contract.

Previously. Someone starting with kdb has to recreate a lot of the framework work teams in banks have done and they have to discover and adapt the wonderful work the community has done. We want to unleash that creativity.

Previously. Someone trying to use kdb with tableau, pulse, java, c# has to learn our own driver and struggle to get it to communicate.

Previously. Someone trying to write queries has to write qSQL.

Today we are releasing an amazing version of kdb+ that Works Easily for Everyone, Everywhere with Everything.

Everyone = Modules

Q&A: NASA's New Spaceship - NASAToday: We are revealing a Module Framework built into kdb+.  This is going to make it easier for everyone to get started.
Bringing the current enterprise quality code to everyone AND enabling existing community contributions to be reused easily.

The great news is, we’ve worked with partners to already have production quality modules available from day zero:

  • Torq – from Data Intellect
  • qSpec – Testing framework from Daniel Nugent
  • QML – q math library – by Andrey Zholos
  • qTips – analytics library from Nick Psaris
  • S3 – querying from KX
import `qml
import `:https://github.com/nugend/qspec as qspec
import `torq/utils
import `log
q).qml.nicdf .25 .5 .975
-0.6744898 0 1.959964

The framework is documented and public, so you can even load modules from github or your own git URL. (This has required making namespaces stricter to prevent one module from being able to affect another. No more IPC vs local loading oddities). Kdb now ships with a packaging tool called qpm based on concepts similar to NPM.

This will allow both KX and the community to experiment in modules and if successful to integrate those libraries into core.
It will allow you to get up and running with kdb+ faster, at less cost and receive production quality maintenance and feature updates for larger parts of your stack.

Everyone = SQL = Becoming as SQL compatible as possible.

Big_Data

Before – piv:{…….}    ij  -100 sublist.

  1. Example: Select *
  2. Example: Select * from t inner join v LIMIT 50
  3. Example: Pivot using duckdb notation
  4. Example: sums, prods, finance functions.
  5. Query it as if standard postresql database – The old driver is loadable via module.
  6. Partitioned databases now all “date=…” to be placed anywhere in the query. If it’s not a nice clear error message is sent.

q)select * from partitionedtable where (price<10) AND (date=.z.d)
q)PIVOT Cities ON Year USING first Population as POP,Population as P
Country	Name	    | 2000_POP	2000_P	2010_POP	2010_P	2020_POP	2020_P
--------------------|----------------------------------------------------------------------
NL	Amsterdam     | 1005	[1005]	1065	[1065]	1158	[1158]
US	Seattle	      | 564	[564]	608	[608]	738	[738]
US	New York City | 8015	[8015]	8175	[8175]	8772	[8772]

 

With Everything = Postgres Wire Compatible

We’ve listened to user problems with ODBC, tableau, kx drivers over the years and we are now bundling pgwire compatibility within the default kdb engine.
Anything that bundles a postgres driver will now work with kdb+.

With Everything = PyArrow + Parquet

Select from and save to a wide range of open standards: parquet, arrow, delta lake, iceberg.

q)select * from file.parquet
q)select * from s3://blah.com/foo
q)select * from http://homer.internal/data.csv
q)`:asd.parquet 0: table
`:asd.parquet

 

Type Hints

func:{ [argA;argB] if[not -6h=type argA;'wrongType]  if[not -9h=type argB;'wrongTypeB]  }
/ now
func:{ [argA:int; argB:real] }

 

This will provide: runtime checking, optimization of code and we’ve worked with qStudio and vs code to automate checks in the UI.

Previously

You had to spend months getting kdb+, then setting it up and building a platform, integrating it with other systems, finding experts.

Today

Download, reuse the existing modules, it works with all existing tools, and the greater SQL and typing support allows more people to safely run queries.

Works Easily for Everyone, Everywhere with Everything.

  1. Everyone = friendlier SQL, type hints, more functions builtin including PIVOT.
  2. With Everything = S3 / Parquet / HTTP / Postresql wire compatible.

With modules to allowing greater community contribution and reuse.

One Last Thing: Everywhere = We are releasing the 32 bit version of q FREE for all usages including commercial.

Disclaimer: The above is entirely fictional based on some wishes of the author, no proprietary information is known nor being shared. If you like the ideas let KX know. If you dislike the ideas, let me know and post your thoughts for improvement.