Real-time analytics
on operational data

Spice replicates your operational databases into a columnar analytics replica, so agents and dashboards can run large analytical queries on real-time operational data.

Diagram of agents, apps, and dashboards querying a Spice Cayenne analytics replica that high-throughput CDC replication keeps current from PostgreSQL, MySQL, DynamoDB, and Kafka, over an object store of Vortex, Iceberg, Delta, and Parquet files

Operational databases weren't built for analytics

Analytical queries on MySQL, PostgreSQL, or MongoDB compete with production traffic for CPU, memory, and locks. The usual fix is an ETL pipeline into a separate analytical system. Pipelines cost time to build and money to operate, and the data arrives hours or days late.

Add analytics to your operational data, without ETL

Analytical queries scan many rows at once. Spice runs them on a columnar replica that stays current, so the production database keeps serving transactions.

Isolated replica

Reduce load on production databases

Replicate changes from operational databases to an isolated analytics replica via high-throughput CDC, so agents can run large analytical queries against operational data.

Read the CDC docs (opens in a new tab)

Reduce load on production databases: an app writes to MySQL, and CDC streams each change into an isolated Spice analytics replica beside it. Agents run heavy analytical queries on the replica, not on MySQLisolatedCDCMySQLanalytics replicaAppAgent 1Agent 2Real-time analytics on operational data
Real-time CDC

Stream every change as it occurs

Spice captures every insert, update, and delete from PostgreSQL, MySQL, and MongoDB, so the replica reflects the latest changes in the source database.

Read the PostgreSQL replication docs (opens in a new tab)

High-throughput queries

Serve query volume as it grows

Serve a high volume of concurrent analytical queries from agents and dashboards. Spice Cayenne reads only the columns each query needs, so each query scans less data and more queries run at once.

Read the Cayenne docs (opens in a new tab)

Deploy in minutes

Add analytics to the databases you already run

Add an analytics replica to PostgreSQL, MySQL, or MongoDB in minutes on Spice Cloud, with no ETL or migration. Query it from agents, dashboards in tools such as Power BI, or your own apps.

Read the Spice Cloud docs

Deploy an analytics replica in minutes

MySQL CDC example

An example of replicating a MySQL table into a Cayenne analytics replica.

# spicepod.yamldatasets:  - from: mysql:mydb.orders    name: orders    params:      mysql_host: db.example.com      mysql_user: replicator      mysql_pass: ${secrets:MYSQL_PASS}      mysql_db: mydb    acceleration:      engine: cayenne  # High-throughput analytical queries      mode: file      refresh_mode: changes  # Set up an analytics replica in one line      primary_key: id      on_conflict:        id: upsertsql> -- a large analytical query, on the replica     SELECT status, COUNT(*) AS orders,       SUM(total) AS revenue     FROM orders     GROUP BY status ORDER BY revenue DESC;# example outputshipped   18204  1204550pending    3120   208400
  1. Connect your operational database

    In a spicepod.yaml, the Spice configuration file, list each table to replicate. Set refresh_mode to changes to stream every insert, update, and delete to the analytics replica.

  2. Deploy Spice anywhere

    Start Spice locally with spice run, or deploy it as a sidecar, at the edge, in your cluster, or on Spice Cloud.

  3. Query from any client

    Run queries against the replica from agents, dashboards, or your own apps.

  1. /plugin marketplace add spiceai/skills
  2. /plugin install spiceai@spiceai

Proven in production

Teams building real-time systems at scale run Spice to serve analytics and AI from operational data.

Darin Douglass

100x

Faster queries

“It just spins up and works, which is really nice. The responsiveness is amazing, which is a huge gain for the customer.”

Peter Janovsky

“Spice opened the door to take these critical control-plane datasets and move them next to our services in the runtime path.”

Peter Janovsky

Software Architect, Twilio

FAQs

Answers for teams that run analytics on operational data.

You query the rows that your applications write in PostgreSQL, MySQL, MongoDB, or DynamoDB, seconds after each commit, without a batch pipeline. Spice copies the tables that you list into a columnar replica and applies each insert, update, and delete from the database change log. The production database serves its transactional workload and the replication stream. To set up a replica, read Analytics Replica.

Move a workload to the replica when it needs fresh data and puts scan or aggregation load on production. Common examples are operational dashboards, usage charts inside a SaaS product, and AI agents that query live orders. Ad hoc investigations and reports that join several sources also fit. Each of these runs on the replica, not on production.

Add each source as a dataset in the same Spicepod. Replicated and federated datasets share one SQL namespace, so one query can join a MySQL replica, a PostgreSQL replica, and Parquet files on Amazon S3. Spice reads the S3 files at query time and joins them with the local replicas. For more, read SQL federation and acceleration.

Move one dashboard at a time, and keep the original connection until you switch. Replicate each table that the dashboard reads with refresh_mode: changes, a primary_key, and an on_conflict upsert. Wait until GET /v1/datasets?status=true reports each dataset as Ready. Then connect the BI tool to the Arrow Flight SQL endpoint, compare the results with production, and switch the dashboard.

A warehouse fits queries that scan years of history that no longer changes, or teams that model data from many systems on a schedule. The replica fits queries that need data from the last few seconds. Many teams use both: the warehouse for historical reporting, and the replica for dashboards, product features, and AI agents. For data that does not fit on one node, distributed query spreads the work across a cluster.