If you want to learn more about Citus on Microsoft Azure, read this post about Hyperscale (Citus) on Azure Database for PostgreSQL.
Three Ways to
Open Source Download
Citus Community is our open source edition. If you need
Hyperscale (Citus) is a
Citus Enterprise gives you the same awesome scale-out features as our open source edition, plus advanced features like shard rebalancing & tenant isolation.
See How Citus Shards Postgres Across Nodes
FROM ads JOIN campaigns ON
ads.company_id = campaigns.company_id
WHERE ads.designer_name = 'Isaac'
AND campaigns.company_id = 'Elly Co';
SET start_date = '2018-03-17'
WHERE company_id = 'Pat Co';
avg(spend) AS avg_campaign_spend
GROUP BY company_id;
SET feedback = 'relevance'
WHERE company_type = 'platinum';
SET feedback = 'relevance'
WHERE company_type = 'platinum';
ALTER TABLE campaigns
ADD COLUMN campaign_type text
All queries to a Citus database cluster are managed by the Citus coordinator node, which looks just like single-node Postgres to the application—modulo the performance benefits from scaling out. The Citus coordinator is equipped with a distributed SQL engine that transforms SQL queries & routes the transformed queries to the correct shards on the correct worker nodes. In this animation, the co-located join and update scenarios are examples of single-tenant SQL queries, hence they only need to query a subset of shards on a subset of the worker nodes. Whereas the distributed aggregate and distributed transaction scenarios need to access shards across multiple nodes.
Why Scale Out Postgres? Performance.
Citus vs. Single-Node Postgres
A side-by-side comparison of Citus vs. single-node Postgres, comparing the performance of
CREATE INDEX, data loading, analytical queries, and lookup queries.
Is Citus Right For You?
Citus scales out Postgres horizontally—transforming your favorite relational & open source database into a distributed database. If you’re running into the limits of single-node Postgres, Citus might be right for you. Some common workloads that work well on Citus are:
What happens when your SaaS business becomes an overnight success? The good news is you no longer have to re-architect your app to migrate to NoSQL or to shard your application. Because most SaaS applications already have the notion of a tenant or customer built into their data model, SaaS apps are a good fit for a distributed database like Citus. Citus gives you relational semantics—including ACID transactions and full SQL coverage—and allows you to transparently scale to hundreds of machines.
Customer-facing analytics dashboards often require sub-second response times. And since so many users query their dashboards at the same time, the ability to support high numbers of concurrent users is important as well. By sharding and parallelizing your SQL queries across multiple nodes, Citus gives you real-time analytics and transactions. So you can perform sub-second scans and aggregations across billions of events, while still providing millisecond latency on inserts, upserts, and small look ups.
- If single-node Postgres can support your application as-is & you do not expect to grow.
- If you only need offline analytics & do not need real-time ingest nor real-time queries.
- If your analytics app does not need to support a large number of concurrent users.
Ready to get started with Citus?
Scale Out Your Database Without Giving Up Postgres
- Citus is a PostgreSQL extension and not a fork, in sync with all the latest releases.
- Leverage your PostgreSQL expertise and all the tools in the Postgres ecosystem.
- Take advantage of all the innovations in Postgres—including rich data types and extensions like JSONB, PostGIS, HyperLogLog, pg_stat_statements, and full text search.
- Scale out your database without giving up SQL. You don’t get joins from NoSQL databases. And application-level sharding solutions will not give you joins when you need them.
- At Citus, we make sharding simple. We’ve done the distributed systems engineering to scale out Postgres without losing the things that make Postgres great. So you can scale out without sacrifice.
Migrating Your Application to Citus
No longer do you have to give up the relational benefits of SQL in order to get the performance of a scale-out database. And no longer do you have to redesign your data model and re-architect your SaaS application in order to scale out. Because Citus is an extension to Postgres, Citus works just like Postgres, with support for complex transactions, foreign keys, relationships between models, and joins.
As for migrating your data from single-node Postgres to Citus, the tools you need depend on the size of your database. For some, pg_dump and pg_restore are sufficient. For others migrating from single-node RDS Postgres to Citus, we’ve created a citus_warp utility that replicates your current database into Citus and keeps the two in sync while you’re getting ready to deploy to production. If you need help figuring out if Citus is right for you and how best to migrate, just contact us and we’ll help figure it out.
Compare Citus Products
Citus is available as open source,
What’s happening with Citus & Microsoft Azure? Sign up to stay in the loop.
Benefits of Scaling Out Postgres with Citus
Power of Postgres
Citus is a Postgres extension (not a fork), so you can stay current with new releases, use your familiar SQL toolset, & leverage all your Postgres expertise.
Scale Out Without Sacrifice
We make it simple to shard PostgreSQL. So you don’t have to re-architect your app when you hit the ceiling on single-node Postgres.
By sharding your data & parallelizing SQL across multiple nodes, Citus delivers insanely fast performance. Even with real-time data ingest & billions of rows.
Forget About Your Database
Citus is built into Azure Database for PostgreSQL, a managed database as a service. With Citus & Azure, you can focus on your app & forget about your database.
Consolidating Data Stores
A distributed Postgres database like Citus can handle both your analytics & your transactional workloads. Hence the “transactional & analytics” acronym: HTAP.