Overview
SingleStore, founded in 2010, provides a distributed SQL database engineered for real-time data processing and analytics. The platform is designed to handle hybrid transactional/analytical processing (HTAP) workloads, which involve simultaneously executing both online transaction processing (OLTP) and online analytical processing (OLAP) queries. This capability aims to eliminate the need for separate databases for operational and analytical tasks, allowing applications to query and analyze live data without ETL processes or data movement to a data warehouse. SingleStore achieves this through a multi-model architecture that supports structured, semi-structured, and unstructured data, alongside a distributed query optimizer and a columnar store for analytical performance.
SingleStore targets use cases requiring high data ingest rates, low-latency query responses, and concurrent access for both transactional and analytical operations. This includes applications such as real-time dashboards, fraud detection systems, personalized recommendation engines, and high-throughput data pipelines. The database is compatible with MySQL wire protocol, allowing developers familiar with MySQL to connect and interact with SingleStore using existing tools and drivers. It offers both a fully managed cloud service, SingleStoreDB Cloud, and a self-managed option for deployment on various cloud platforms or on-premises infrastructure.
The architecture of SingleStore integrates memory-optimized rowstore tables for transactional workloads and disk-optimized columnstore tables for analytical queries within a single system. This design is intended to provide performance advantages for applications that require both fast writes and complex aggregations on large datasets. Developers can interact with SingleStore using standard SQL, and the platform offers client libraries for popular programming languages such as Python, Java, and Node.js. The availability of a free tier for its cloud service allows developers to evaluate the platform's capabilities without an initial investment.
Key features
- Hybrid Transactional/Analytical Processing (HTAP): SingleStore integrates OLTP and OLAP capabilities, enabling real-time analytics on live transactional data without separate systems or ETL processes.
- Distributed SQL Database: The platform scales horizontally by distributing data and query processing across multiple nodes, supporting high concurrency and large datasets.
- MySQL Wire Protocol Compatibility: SingleStore is compatible with the MySQL wire protocol, allowing existing MySQL tools, drivers, and applications to connect without modification.
- Columnstore and Rowstore: It utilizes both memory-optimized rowstore for high-performance transactions and disk-optimized columnstore for analytical queries, optimizing performance for different workload types.
- Data Ingest: Supports high-speed data ingestion from various sources, including Kafka, S3, and other databases, facilitating real-time data pipelines.
- JSON and Geospatial Data Support: Provides native support for JSON data types and geospatial functions, allowing for flexible data modeling and location-based analytics.
- Workload Management: Offers features for managing and prioritizing workloads to ensure critical queries receive necessary resources.
- High Availability and Durability: Includes features such as replication, automatic failover, and point-in-time recovery to ensure data availability and protection.
Pricing
SingleStore offers a free tier for its cloud service and consumption-based pricing for its paid tiers. Pricing for SingleStoreDB Cloud is based on compute (measured in SingleStore Units, or SSUs, which abstract CPU and memory) and storage consumed. The free tier includes up to 32 GB of storage and 2 vCPUs, intended for development and small-scale applications. Paid plans, starting with the Standard Tier, are consumption-based, with costs varying depending on the workload's resource demands. Self-managed deployments typically involve licensing costs and infrastructure expenses managed by the user.
Pricing as of 2026-05-08. For detailed and current pricing, refer to the SingleStore pricing page.
| Tier | Description | Key Features |
|---|---|---|
| Free Tier | For development and small projects. | Up to 32 GB storage, 2 vCPUs, 1 workspace. |
| Standard Tier | Consumption-based pricing for production workloads. | Scalable compute & storage, 24/7 support, advanced security features. |
| Premium Tier | Enhanced features for demanding applications. | Includes all Standard features plus additional support and enterprise capabilities. |
| Enterprise Tier | Custom solutions for large-scale enterprise deployments. | Dedicated support, custom SLAs, advanced compliance, and security options. |
Common integrations
- Apache Kafka: SingleStore provides native connectors for ingesting data directly from Kafka topics, supporting real-time data pipelines.
- Spark: Integration with Apache Spark allows for advanced analytics and machine learning workloads on data stored in SingleStore. The SingleStore Spark Connector facilitates this.
- Tableau: Business intelligence tools like Tableau can connect to SingleStore using its MySQL wire protocol compatibility, enabling data visualization and reporting.
- Looker: Similar to Tableau, Looker can connect to SingleStore for business intelligence and data exploration.
- Python: Developers can use standard Python database connectors like PyMySQL or SQLAlchemy to interact with SingleStore.
- Go: The Go-MySQL-Driver provides a way for Go applications to connect and query SingleStore.
Alternatives
- CockroachDB: A distributed SQL database known for its strong consistency, horizontal scalability, and multi-region deployment capabilities, often used for mission-critical applications. CockroachDB's architecture focuses on resilience and global data distribution.
- TiDB: An open-source, distributed SQL database compatible with the MySQL protocol, designed for large-scale online transactional and analytical applications. TiDB separates compute and storage, allowing independent scaling.
- ClickHouse: A columnar database management system for online analytical processing (OLAP), known for its high performance on analytical queries and large datasets. ClickHouse is often used for real-time analytics and data warehousing, as detailed in its distinctive features documentation.
- Apache Cassandra: A distributed NoSQL database system that provides high availability and linear scalability, suitable for large amounts of data across many commodity servers.
- Amazon Aurora (with analytics extensions): A relational database service that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open-source databases. It can be extended with services like Redshift for analytical workloads.
Getting started
To get started with SingleStoreDB Cloud, you can sign up for the free tier on the SingleStore website. Once your workspace is provisioned, you can connect to it using a MySQL client or a programming language client library. The following Python example demonstrates connecting to SingleStore, creating a table, inserting data, and querying it. This assumes you have the mysql-connector-python library installed (pip install mysql-connector-python).
import mysql.connector
# Replace with your SingleStoreDB Cloud connection details
# These can be found in your SingleStoreDB Cloud portal under 'Connect'
host = "YOUR_SINGLESTORE_HOST"
port = "3306"
user = "YOUR_SINGLESTORE_USER"
password = "YOUR_SINGLESTORE_PASSWORD"
database = "YOUR_SINGLESTORE_DATABASE"
try:
# Establish connection
connection = mysql.connector.connect(
host=host,
port=port,
user=user,
password=password,
database=database
)
if connection.is_connected():
db_Info = connection.get_server_info()
print(f"Connected to SingleStoreDB version {db_Info}")
cursor = connection.cursor()
# Create a table
create_table_query = """
CREATE TABLE IF NOT EXISTS sensor_data (
id INT AUTO_INCREMENT PRIMARY KEY,
sensor_id VARCHAR(50) NOT NULL,
temperature DECIMAL(5, 2),
humidity DECIMAL(5, 2),
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
"""
cursor.execute(create_table_query)
print("Table 'sensor_data' created or already exists.")
# Insert data
insert_query = """
INSERT INTO sensor_data (sensor_id, temperature, humidity)
VALUES (%s, %s, %s);
"""
sensor_readings = [
('sensor_1', 25.5, 60.2),
('sensor_2', 24.9, 61.5),
('sensor_1', 26.1, 59.8)
]
cursor.executemany(insert_query, sensor_readings)
connection.commit()
print(f"{cursor.rowcount} records inserted.")
# Query data
select_query = "SELECT id, sensor_id, temperature, humidity, timestamp FROM sensor_data WHERE sensor_id = 'sensor_1';"
cursor.execute(select_query)
records = cursor.fetchall()
print("\nQuery Results for sensor_1:")
for row in records:
print(f"ID: {row[0]}, Sensor: {row[1]}, Temp: {row[2]}, Humidity: {row[3]}, Time: {row[4]}")
except mysql.connector.Error as e:
print(f"Error connecting to SingleStoreDB: {e}")
finally:
if 'connection' in locals() and connection.is_connected():
cursor.close()
connection.close()
print("SingleStoreDB connection closed.")
Before running this code, ensure you replace the placeholder values for host, user, password, and database with your actual SingleStoreDB Cloud connection details, which are available in your SingleStoreDB Cloud portal.