ksqldb.io Open in urlscan Pro
13.224.198.68  Public Scan

Submitted URL: http://ksqldb.io/
Effective URL: https://ksqldb.io/
Submission: On June 06 via api from GB — Scanned from GB

Form analysis 0 forms found in the DOM

Text Content

Home Overview Quickstart Distributions Examples Docs
News & Community GitHub Twitter


KSQLDB


THE DATABASE PURPOSE-BUILT FOR STREAM PROCESSING APPLICATIONS.

Get Started Get the code
What's new?
 * release
   
   ANNOUNCING KSQLDB 0.25

 * blog
   
   HOW TO EFFICIENTLY SUBSCRIBE TO A SQL QUERY FOR CHANGES

 * blog
   
   READINGS IN STREAMING DATABASE SYSTEMS

More …


REAL-TIME

Build applications that respond immediately to events. Craft materialized views
over streams. Receive real-time push updates, or pull current state on demand.


KAFKA-NATIVE

Seamlessly leverage your existing Apache Kafka® infrastructure to deploy
stream-processing workloads and bring powerful new capabilities to your
applications.


WHAT, NOT HOW

Use a familiar, lightweight syntax to pack a powerful punch. Capture, process,
and serve queries using only SQL. No other languages or services are required.


THOUSANDS OF ORGANIZATIONS LOVE & TRUST KSQLDB





BUILD A COMPLETE STREAMING APP WITH A FEW SQL STATEMENTS.

CAPTURE EVENTS

CREATE SOURCE CONNECTOR riders WITH (
  'connector.class' = 'JdbcSourceConnector',
  'connection.url'  = 'jdbc:postgresql://...',
  'topic.prefix'    = 'rider',
  'table.whitelist' = 'geoEvents, profiles',
  'key'             = 'profile_id',
  ...);


PERFORM CONTINUOUS TRANSFORMATIONS

CREATE STREAM locations AS
  SELECT rideId, latitude, longitude,
         GEO_DISTANCE(latitude, longitude,
                      dstLatitude, dstLongitude
                      ) AS kmToDst
  FROM geoEvents
  EMIT CHANGES;


CREATE MATERIALIZED VIEWS

CREATE TABLE activePromotions AS
  SELECT rideId,
         qualifyPromotion(kmToDst) AS promotion
  FROM locations
  GROUP BY rideId
  EMIT CHANGES;


SERVE LOOKUPS AGAINST MATERIALIZED VIEWS

SELECT rideId, promotion
FROM activePromotions
WHERE ROWKEY = '6fd0fcdb';


Learn the basics
 * Quickstart
   Take ksqlDB for a test drive
 * Video course
   Introduction to ksqlDB
 * Video course
   Inside ksqlDB's architecture

Dive deeper with end-to-end use cases
 * Tutorial
   Materialized cache
 * Tutorial
   Streaming ETL pipeline
 * Tutorial
   Event-driven microservices
 * Tutorials
   Stream processing cookbook


SIMPLE CONSTRUCTS FOR BUILDING STREAMING APPS.

ksqlDB enables you to build event streaming applications leveraging your
familiarity with relational databases. Three categories are foundational to
building an application: collections, stream processing, and queries.

COLLECTIONS

vehicleIdlatitudelongitudea1rc4r43.683117-79.611421wh4rfx51.509855-0.123746a1rc4r43.642826-79.387123ffk1t345.71654-121.526191wh4rfx51.50380.048346

STREAMS

Streams are immutable, append-only sequences of events. They're useful for
representing a series of historical facts.

CREATE STREAM routeWaypoints (
       vehicleId VARCHAR,
       latitude DOUBLE(10, 2),
       longitude DOUBLE(10, 2)
) WITH (
       kafka_topic = 'locations',
       partitions = 3,
       key = 'vehicleId',
       value_format = 'json'
);


vehicleIdlatitudelongitudea1rc4r43.642826-79.387123wh4rfx51.50380.048346ffk1t345.71654-121.526191

TABLES

Tables are mutable collections of events. They let you represent the latest
version of each value per key.

CREATE TABLE currentCarLocations (
       vehicleId VARCHAR,
       latitude DOUBLE(10, 2),
       longitude DOUBLE(10, 2)
) WITH (
       kafka_topic = 'locations',
       partitions = 3,
       key = 'vehicleId',
       value_format = 'json'
);


STREAM PROCESSING

Stream processing enables you to execute continuous computations over unbounded
streams of events, ad infinitum. Transform, filter, aggregate, and join
collections together to derive new collections or materialized views that are
incrementally updated in real-time as new events arrive.

QUERIES

PUSH

Push queries let you subscribe to a query's result as it changes in real-time.
When new events arrive, push queries emit refinements, which allow you to
quickly react to new information. They’re a perfect fit for asynchronous
application flows.

SELECT vehicleId,
       latitude,
       longitude
FROM currentCarLocations
WHERE ROWKEY = '6fd0fcdb'
EMIT CHANGES;


PULL

Pull queries allow you to fetch the current state of a materialized view.
Because materialized views are incrementally updated as new events arrive, pull
queries run with predictably low latency. They're a great match for
request/response flows.

SELECT vehicleId,
       latitude,
       longitude
FROM currentCarLocations
WHERE ROWKEY = '6fd0fcdb';



ONE MENTAL MODEL FOR THE ENTIRE STACK.

Today, nearly all streaming architectures are complex, piecemeal solutions. They
comprise multiple subsystems, each with its own mental model.

streaming DBDBAPPAPPAPP DB DB CONNECTOR CONNECTOR CONNECTORSTREAMPROCESSING
streaming DBDBAPPAPPAPP DB EXTRACT LOAD TRANSFORMSTORE STORE

With a lightweight, familiar SQL syntax, ksqlDB presents a single mental model
for working with event streams across your entire stack: event capture,
continuous event transformations, aggregations, and serving materialized views.

what is ksqldbDBAPPAPPAPPPULLPUSHDBksqlDBStream ProcessingMaterialized
ViewsConnectors
Get Started Get the code