What is kdb+?
How is kdb+ suited for real-time
business? Why is a unified architecture so important? Which platforms does
kdb+ run on? Why did you develop a next-generation database
product? Is kdb+ just an in-memory database? I've heard it's not possible
to run SQL series on streaming data. Is that true? What features
contribute to the performance of kdb+? As a relational database
vendor, how do you handle streaming data? Is it really necessary
to save all that data? Aside from kdb+tick, do you have other
layered products for kdb+? Why should development teams and
IT departments invest in new technologies such as kdb+, when
the trend is toward standard technologies? What if I've already
invested considerable resources in developing Java, C, and
.net programs? Is it complicated to administer a kdb+ database? Do you need
a big server to run kdb+? But what if you need a high-availability
environment? Do you think the kdb+
database will replace Oracle, DB2, SQL Server and other relational
databases?
What is kdb+?
Kdb+, introduced in 2003, is the new generation
of the kdb database. Like kdb, kdb+ is designed to capture,
analyze, compare, and store data -- all at high speeds and
on high volumes of data. But more than that, kdb+ was architected
specifically to meet the emerging needs of leading-edge, real-time
business.
TOP
How is kdb+ suited for real-time business?
Most data management/data
analysis solutions divide the world into real-time/in-memory/front-end
data and historical/on disk/back-end data. The division makes
it easier for partial approaches to claim proficiency at one
or the other. Having separate front-end and back-end data management
worked all right until recently. Now enormous growth in the
data volumes collected by business, along with the need for
instant analysis of data, and real-time comparisons of in-memory
to historical data, are becoming critically important to competitive
differentiation. The firms that are first to market with these
real-time business applications are the ones who can maintain
and expand their competitive strategies.
With kdb+ there is no architectural split between the front
end and the back end data management and analysis. We provide
a single architecture for managing and analyzing data across
the entire data management chain, maintaining exceptional performance
throughout. In addition, kdb+ was designed from the outset
to use 64-bit memory, because 64-bit addressability is essential
to holding increasing volumes of streaming data in memory.
It was also architected for extremely low latency, enabling
such time-critical applications as auto-trading and real-time
risk management.
Kdb+ takes full advantage of 64-bit platforms, giving you unlimited room to grow.
TOP
Why is a unified architecture so important?
It's enables leading-edge
customers to rapidly develop and deploy real-time applications
that deliver high-performance for business-critical applications
including: operational risk management, backtesting of trading
strategies, business activity monitoring, and other applications
that quickly identify out-of-range patterns so that the business
can respond in real-time.
The greater performance lead that kdb+ gives our customers
translates to increased capability to create competitive strategies.
TOP
Which platforms
does kdb+ run on?
Kdb+ is available today for
industry-standard 64-bit architectures (AMD Opteron,
Intel Xeon, and Sun) running Linux, Windows, Solaris, or Mac OS X.
TOP
Why did you develop a next-generation database product?
Kx
was founded in 1993, and our kdb database has been in use by
leading firms since 1998. In that time, we have seen customer
needs evolve. A major business driver for the enterprise today
is the requirement to analyze increasing volumes of data – on
financial or energy trading transactions, for telecom usage
analysis, for real-time CRM, in regulatory compliance/risk
management, and in other high-volume areas. Firms need immediate
results on these analyses, even when billions of records are
involved. That’s what real-time business is all about:
viewing and analyzing what is occurring in the business right
now and comparing it on the fly to historical patterns. Developed
for high data volume applications, kdb+ expands a firm’s
ability to capture, analyze, compare, and store enormous amounts
of data -- both streaming and on disk -- with analysis results
in real-time.
TOP
Is kdb+ just an in-memory database?
No. Kdb+ provides a full
relational database management system with time-series analysis
that handles data in memory as well as stored data on disk.
For advanced applications such as backtesting of auto trading
strategies or operational risk management, it is essential
to be able to compare streaming data against history. You must
be able to understand where the business has been in order
judge and act upon real-time occurrences. Approaches that handle
in-memory data alone or historical data alone can’t meet the needs of today’s
real-time enterprise, where accurate comparison on the fly
is becoming increasingly important. Approaches that try to
combine a streaming or in-memory product from one vendor with
a historical product from another can't deliver the performance
necessary for real-time business, because they have to cope
with two separate architectures. Excess overhead is unavoidable
with multiple architectures.
TOP
I've heard it's
not possible to run SQL series on streaming data. Is that
true?
That's untrue. Our customers have been running time-series
or SQL queries on streaming data since 2001 and achieving results
in real-time, even on complex queries involving millions of
records.
TOP
What features contribute to the performance of kdb+?
We’ve refined the architecture in a number of ways,
based on the company’s 10 years of experience:
• We
expanded the data types for greater flexibility, particularly
in writing time-series analytics. While other time-series
companies supply a limited time-series language, kdb+ was
specifically developed to let leading-edge customers go beyond
limits.
• We enhanced the speed and efficiency of application
development by combining our general programming, relational,
and time-series languages into a single, concise programming
language – q. The q language is integrated into the database,
contributing to very high query performance. Q uses English-like
commands and a simple syntax. C or SQL programmers typically
learn q in less than a day. (See the Kdb+
Primer written by
Dennis Shasha, Associate Professor of Computer Science at NYU's
Courant Institute.)
• We
reduced overhead and latency to maintain leadership performance
even as data volumes keep rising. For example, data on many
securities exchanges is doubling each year. Our product strategy
has always been to maintain the lead in performance for complex
data analysis, and with kdb+ we have further extended that
lead for our customers.
TOP
As a relational database vendor, how do you handle streaming
data?
Our product kdb+tick is
a real-time tickerplant application layered on kdb+. As data
streams in from a data feed or other source of streaming data,
it becomes available for immediate relational analysis. In
addition, the data is logged so that, in case of a system failure,
you do not lose the day's data, as you would with products
that support streaming or in-memory data only. Periodically,
the log file is written to the historical database -- a day's
worth of real-time data (easily 50 million records) can be
written to the database in couple of minutes. In fact, kdb+tick
is so fast at managing streaming, in-memory, and stored data
that some of our customers have used it to eliminate the traditional
end of day, where the database is taken off-line. Because kdb+
runs at top efficiency 24x7, it can be used to program advanced
applications such as global 24x7 trading.
TOP
Is it really necessary to save all that data?
Only if your
firm's strategy is to offer highly competitive, leading products.
One of the reasons we developed kdb+tick originally was in
response to trading departments asking us: isn't there a way
we can save the streaming data so we can analyze it later?
While it's true that small trading problems can be solved using
a streaming data or in-memory database alone, big, strategic
problems require you to be able to save data and to compare
streaming or in-memory and historical data on the fly, without
losing speed anywhere along the line.
TOP
Aside from kdb+tick, do you have other layered products for
kdb+?
To date, we have two in addition kdb+tick:
• Kdb+tow is
an application that enables traders to test sophisticated algorithms
by replaying historical ticks through their models.
• Kdb+taq is a fast loader for NYSE TAQ data (distributed via CD/DVD
or FTP) that enables you to create a full 10+ year history
of NYSE TAQ data quickly, update it daily, and have it immediately
available for relational, time-series analysis in kdb+.
TOP
Why should development teams and IT departments invest in
new technologies such as kdb+, when the trend is toward standard
technologies?
Doing business in real time demands new technologies
and fast ROI. The volumes of data encountered in business today
are like nothing the world has seen before -- and they are
growing rapidly. In addition, firms need to understand how
streaming data relates to historical patterns. Conventional
database paradigms are floundering, because the relational
databases of the 1980s are no longer able to keep up with escalating
volumes of data. The old model of overnight reporting is no
longer acceptable in real-time business. The business intelligence/OLAP/data
warehousing structures that were built to make relational databases
more efficient are also under increasing pressure to deliver
faster analysis -- and they can't. Newer in-memory databases
and streaming data products deliver speed as long as the data
is in memory, but they don't meet the needs of real-time business,
because they solve only a small part of the data volume and
data analysis problem.
TOP
What if I've already invested considerable resources in developing
Java, C, and .net programs?
Kdb+ provides native C and Java
interfaces. In addition, to make up for Java's inability to
handle large arrays, you can use our JDBC driver. To further
assist you, the q language data types map directory to Java
and .net.
TOP
Is it complicated to administer a kdb+ database?
Not at all.
Kdb+ is remarkably simple to manage, because native operating
system routines are used for much of the file management, including
backup and restore.
TOP
Do you need a big server to run kdb+?
No. Most of our customers
begin with a 2- or 3-CPU system and grow from there. As you
build a historical database, you will need multi-terabyte storage,
but kdb+ is flexible -- you can use local storage, SANs or
any combination.
TOP
But what if you need a high-availability environment?
No problem
-- get as big and redundant as you want to. Many Kx customers
have implemented large, fully-redundant systems, including
redundant tickerplants for kdb+tick. We support failover, so
there is no loss of data or performance. We provide local logging
as well as complete replication between data centers. Through
our relationship with Cassatt, we also enable IT organizations
to deploy kdb+ in distributed environments and dynamically
allocate system resources to meet real-time spikes, such as
unusual peaks in market data. That way you don't need to over-invest
in big hardware dedicated to kdb+, but you also have extra
capacity available instantly, when you need it. Contact
us for a demo.
TOP
Do
you think the kdb+ database will replace Oracle, DB2, SQL
Server and other relational databases?
As long as another database
meets your needs, use it. But for applications where you're
waiting too long for reports, or you don't have the data for
implementing a real-time business application, consider kdb+.
TOP |