From 61d7363eedcb57e04fa83bd3b55461b2b9accb12 Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Wed, 3 Mar 2021 11:35:38 +0100 Subject: [PATCH] Rewrite the README --- README.md | 448 +++++++++++++++++++++++++++++----------- citus-architecture.png | Bin 0 -> 96184 bytes citus-readme-banner.png | Bin 0 -> 21985 bytes citus-scale-out.png | Bin 0 -> 17874 bytes github-banner.png | Bin 4139 -> 0 bytes 5 files changed, 333 insertions(+), 115 deletions(-) create mode 100755 citus-architecture.png create mode 100755 citus-readme-banner.png create mode 100755 citus-scale-out.png delete mode 100644 github-banner.png diff --git a/README.md b/README.md index 68e67adf4..d71954160 100644 --- a/README.md +++ b/README.md @@ -1,154 +1,372 @@ -![Citus Banner](/github-banner.png) +![Citus Banner](/citus-readme-banner.png) [![Slack Status](http://slack.citusdata.com/badge.svg)](https://slack.citusdata.com) [![Latest Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.citusdata.com/) -[![Circleci Status](https://circleci.com/gh/citusdata/citus.svg?style=svg)](https://circleci.com/gh/citusdata/citus.svg?style=svg) [![Code Coverage](https://codecov.io/gh/citusdata/citus/branch/master/graph/badge.svg)](https://codecov.io/gh/citusdata/citus/branch/master/graph/badge.svg) -### What is Citus? +## What is Citus? -* **Open-source** PostgreSQL extension (not a fork) -* **Built to scale out** across multiple nodes -* **Distributed** engine for query parallelization -* **Database** designed to scale out multi-tenant applications, real-time analytics dashboards, and high-throughput transactional workloads +Citus is a [PostgreSQL extension](https://www.citusdata.com/blog/2017/10/25/what-it-means-to-be-a-postgresql-extension/) that transforms Postgres into a distributed database—so you can achieve high performance at any scale. -Citus is an open source extension to Postgres that distributes your data and your queries across multiple nodes. Because Citus is an extension to Postgres, and not a fork, Citus gives developers and enterprises a scale-out database while keeping the power and familiarity of a relational database. As an extension, Citus supports new PostgreSQL releases, and allows you to benefit from new features while maintaining compatibility with existing PostgreSQL tools. +With Citus, you extend your PostgreSQL database with new superpowers: -Citus serves many use cases. Three common ones are: +- **Distributed tables** are sharded across a cluster of PostgreSQL nodes to combine their CPU, memory, storage and I/O capacity. +- **References tables** are replicated to all nodes for joins and foreign keys from distributed tables and maximum read performance. +- **Distributed query engine** routes and parallelizes SELECT, DML, and other operations on distributed tables across the cluster. +- **Columnar storage** compresses data, speeds up scans, and supports fast projections, both on regular and distributed tables. -1. [Multi-tenant & SaaS applications](https://www.citusdata.com/blog/2016/10/03/designing-your-saas-database-for-high-scalability): -Most B2B applications already have the notion of a tenant / -customer / account built into their data model. Citus allows you to scale out your -transactional relational database to 100K+ tenants with minimal changes to your -application. +You can use these Citus superpowers to make your Postgres database scale-out ready on a single Citus node. Or you can build a large cluster capable of handling **high transaction throughputs**, especially in **multi-tenant apps**, run **fast analytical queries**, and process large amounts of **time series** or **IoT data** for **real-time analytics**. When your data size and volume grow, you can easily add more worker nodes to the cluster and rebalance the shards. -2. [Real-time analytics](https://www.citusdata.com/blog/2017/12/27/real-time-analytics-dashboards-with-citus/): -Citus enables ingesting large volumes of data and running -analytical queries on that data in human real-time. Example applications include analytic -dashboards with sub-second response times and exploratory queries on unfolding events. +![Citus scales out from a single node](/citus-scale-out.png) -3. High-throughput transactional workloads: -By distributing your workload across a database cluster, Citus ensures low latency and high performance even with a large number of concurrent users and high volumes of transactions. +Since Citus is an extension to Postgres, you can use Citus with the latest Postgres versions. And Citus works seamlessly with the PostgreSQL tools and extensions you are already familiar with. -To learn more, visit [citusdata.com](https://www.citusdata.com) and join -the [Citus slack](https://slack.citusdata.com/) to -stay on top of the latest developments. +- [Why Citus?](#why-citus) +- [Getting Started](#getting-started) +- [Using Citus](#using-citus) +- [Documentation](#documentation) +- [Architecture](#architecture) +- [Performance](#performance) +- [When to Use Citus](#when-to-use-citus) +- [Need Help?](#need-help) +- [Contributing](#contributing) +- [Stay Connected](#stay-connected) -### Getting started with Citus +## Why Citus? -The fastest way to get up and running is to deploy Citus in the cloud. You can also setup a local Citus database cluster with Docker. +Developers choose Citus for two reasons: -#### Hyperscale (Citus) on Azure Database for PostgreSQL +1. Your application is outgrowing a single PostgreSQL node -Hyperscale (Citus) is a deployment option on Azure Database for PostgreSQL, a fully-managed database as a service. Hyperscale (Citus) employs the Citus open source extension so you can scale out across multiple nodes. To get started with Hyperscale (Citus), [learn more](https://www.citusdata.com/product/hyperscale-citus/) on the Citus website or use the [Hyperscale (Citus) Quickstart](https://docs.microsoft.com/en-us/azure/postgresql/quickstart-create-hyperscale-portal) in the Azure docs. +If the size and volume of your data increases over time, you may start seeing any number of performance and scalability problems on a single PostgreSQL node. For example: High CPU utilization and I/O wait times slow down your queries, SQL queries return out of memory errors, autovacuum cannot keep up and increases table bloat, etc. -#### Citus Cloud +With Citus you can distribute and optionally compress your tables to always have enough memory, CPU, and I/O capacity to achieve high performance at scale. The distributed query engine can efficiently route transactions across the cluster, while parallelizing analytical queries and batch operations across all cores. Moreover, you can still use the PostgreSQL features and tools you know and love. -Citus Cloud runs on top of AWS as a fully managed database as a service. You can provision a Citus Cloud account at [https://console.citusdata.com](https://console.citusdata.com/users/sign_up) and get started with just a few clicks. +2. PostgreSQL can do things other systems can’t -#### Local Citus Cluster +There are many data processing systems that are built to scale out, but few have as many powerful capabilities as PostgreSQL, including: Advanced joins and subqueries, user-defined functions, update/delete/upsert, constraints and foreign keys, powerful extensions (e.g. PostGIS, HyperLogLog), many types of indexes, time-partitioning, and sophisticated JSON support. -If you're looking to get started locally, you can follow the following steps to get up and running. +Citus makes PostgreSQL’s most powerful capabilities work at any scale, allowing you to handle complex data-intensive workloads on a single database system. -1. Install Docker Community Edition and Docker Compose - * Mac: - 1. [Download](https://www.docker.com/community-edition#/download) and install Docker. - 2. Start Docker by clicking on the application’s icon. - * Linux: - ```bash - curl -sSL https://get.docker.com/ | sh - sudo usermod -aG docker $USER && exec sg docker newgrp `id -gn` - sudo systemctl start docker +## Getting Started - sudo curl -sSL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - ``` - The above version of Docker Compose is sufficient for running Citus, or you can install the [latest version](https://github.com/docker/compose/releases/latest). +The quickest way to get started with Citus is to use the [Hyperscale (Citus)](https://docs.microsoft.com/azure/postgresql/quickstart-create-hyperscale-portal) deployment option in the Azure Database for PostgreSQL managed service—or [set up Citus locally](https://docs.citusdata.com/en/stable/installation/single_node.html). -2. Pull and start the Docker images - ```bash - curl -sSLO https://raw.githubusercontent.com/citusdata/docker/master/docker-compose.yml - docker-compose -p citus up -d - ``` +### Hyperscale (Citus) on Azure Database for PostgreSQL -3. Connect to the master database - ```bash - docker exec -it citus_master psql -U postgres - ``` +You can get a fully-managed Citus cluster in minutes through the Hyperscale (Citus) deployment option in the [Azure Database for PostgreSQL](https://azure.microsoft.com/services/postgresql/) portal. Azure will manage your backups, high availability through auto-failover, software updates, monitoring, and more for all of your servers. To get started with Hyperscale (Citus), use the [Hyperscale (Citus) Quickstart](https://docs.microsoft.com/azure/postgresql/quickstart-create-hyperscale-portal) in the Azure docs. -4. Follow the [first tutorial][tutorial] instructions -5. To shut the cluster down, run +### Running Citus using Docker - ```bash - docker-compose -p citus down - ``` +The smallest possible Citus cluster is a single PostgreSQL node with the Citus extension, which means you can try out Citus by running a single Docker container. -### Talk to Contributors and Learn More +```sql +# run PostgreSQL with Citus on port 5500 +docker run -d --name citus -p 5500:5432 -e POSTGRES_PASSWORD=mypassword citusdata/citus - --- - - - - - - - - - - - - - - - - - - - -
DocumentationTry the Citus - tutorial for a hands-on introduction or
the documentation for - a more comprehensive reference.
SlackChat with us in our community Slack channel.
Github IssuesWe track specific bug reports and feature requests on our project - issues.
TwitterFollow @citusdata - for general updates and PostgreSQL scaling tips.
Citus BlogRead our Citus Data Blog - for posts on Postgres, Citus, and scaling your database.
+# connect using psql within the Docker container +docker exec -it citus psql -U postgres -### Contributing +# or, connect using local psql +psql -U postgres -d postgres -h localhost -p 5500 +``` -Citus is built on and of open source, and we welcome your contributions. -The [CONTRIBUTING.md](CONTRIBUTING.md) file explains how to get started -developing the Citus extension itself and our code quality guidelines. +### Install Citus locally -### Who is Using Citus? +If you already have a local PostgreSQL installation, the easiest way to install Citus is to use our packaging repo -Citus is deployed in production by many customers, ranging from -technology start-ups to large enterprises. Here are some examples: +Install packages on Ubuntu / Debian: -* [Algolia](https://www.algolia.com/) uses Citus to provide real-time analytics for over 1B searches per day. For faster insights, they also use TopN and HLL extensions. [User Story](https://www.citusdata.com/customers/algolia) -* [Heap](https://heapanalytics.com/) uses Citus to run dynamic -funnel, segmentation, and cohort queries across billions of users -and has more than 700B events in their Citus database cluster. [Watch Video](https://www.youtube.com/watch?v=NVl9_6J1G60&list=PLixnExCn6lRpP10ZlpJwx6AuU3XIgNWpL) -* [Pex](https://pex.com/) uses Citus to ingest 80B data points per day and analyze that data in real-time. They use a 20+ node cluster on Google Cloud. [User Story](https://www.citusdata.com/customers/pex) -* [MixRank](https://mixrank.com/) uses Citus to efficiently collect -and analyze vast amounts of data to allow inside B2B sales teams -to find new customers. [User Story](https://www.citusdata.com/customers/mixrank) -* [Agari](https://www.agari.com/) uses Citus to secure more than -85 percent of U.S. consumer emails on two 6-8 TB clusters. [User -Story](https://www.citusdata.com/customers/agari) -* [Copper (formerly ProsperWorks)](https://copper.com/) powers a cloud CRM service with Citus. [User Story](https://www.citusdata.com/customers/copper) +```bash +curl https://install.citusdata.com/community/deb.sh > add-citus-repo.sh +sudo bash add-citus-repo.sh +sudo apt-get -y install postgresql-13-citus-10.0 +``` + +Install packages on CentOS / Fedora / Red Hat: +```bash +curl https://install.citusdata.com/community/rpm.sh > add-citus-repo.sh +sudo bash add-citus-repo.sh +sudo yum install -y citus100_13 +``` + +To add Citus to your local PostgreSQL database, add the following to `postgresql.conf`: + +```sql +shared_preload_libraries = 'citus' +``` + +After restarting PostgreSQL, connect using `psql` and run: + +```sql +CREATE EXTENSION citus; +```` +You’re now ready to get started and use Citus tables on a single node. + +### Install Citus on multiple nodes + +If you want to set up a multi-node cluster, you can also set up additional PostgreSQL nodes with the Citus extensions and add them to form a Citus cluster: + +```sql +-- before adding the first worker node, tell future worker nodes how to reach the coordinator +-- SELECT citus_set_coordinator_host('10.0.0.1', 5432); + +-- add worker nodes +SELECT citus_add_node('10.0.0.2', 5432); +SELECT citus_add_node('10.0.0.3', 5432); + +-- rebalance the shards over the new worker nodes +SELECT rebalance_table_shards(); +``` + +For more details, see our [documentation on how to set up a multi-node Citus cluster](https://docs.citusdata.com/en/stable/installation/multi_node.html) on various operating systems. + +## Using Citus + +Once you have your Citus cluster, you can start creating distributed tables, reference tables and use columnar storage. + +### Creating Distributed Tables + +The `create_distributed_table` UDF will transparently shard your table locally or across the worker nodes: + +```sql +CREATE TABLE events ( + device_id bigint, + event_id bigserial, + event_time timestamptz default now(), + data jsonb not null, + PRIMARY KEY (device_id, event_id) +); + +-- distribute the events table across shards placed locally or on the worker nodes +SELECT create_distributed_table('events', 'device_id'); +``` + +After this operation, queries for a specific device ID will be efficiently routed to a single worker node, while queries across device IDs will be parallelized across the cluster. + +```sql +-- insert some events +INSERT INTO events (device_id, data) +SELECT s % 100, ('{"measurement":'||random()||'}')::jsonb FROM generate_series(1,1000000) s; + +-- get the last 3 events for device 1, routed to a single node +SELECT * FROM events WHERE device_id = 1 ORDER BY event_time DESC, event_id DESC LIMIT 3; +┌───────────┬──────────┬───────────────────────────────┬───────────────────────────────────────┐ +│ device_id │ event_id │ event_time │ data │ +├───────────┼──────────┼───────────────────────────────┼───────────────────────────────────────┤ +│ 1 │ 1999901 │ 2021-03-04 16:00:31.189963+00 │ {"measurement": 0.88722643925054} │ +│ 1 │ 1999801 │ 2021-03-04 16:00:31.189963+00 │ {"measurement": 0.6512231304621992} │ +│ 1 │ 1999701 │ 2021-03-04 16:00:31.189963+00 │ {"measurement": 0.019368766051897524} │ +└───────────┴──────────┴───────────────────────────────┴───────────────────────────────────────┘ +(3 rows) + +Time: 4.588 ms + +-- explain plan for a query that is parallelized across shards, which shows the plan for +-- a query one of the shards and how the aggregation across shards is done +EXPLAIN (VERBOSE ON) SELECT count(*) FROM events; +┌────────────────────────────────────────────────────────────────────────────────────┐ +│ QUERY PLAN │ +├────────────────────────────────────────────────────────────────────────────────────┤ +│ Aggregate │ +│ Output: COALESCE((pg_catalog.sum(remote_scan.count))::bigint, '0'::bigint) │ +│ -> Custom Scan (Citus Adaptive) │ +│ ... │ +│ -> Task │ +│ Query: SELECT count(*) AS count FROM events_102008 events WHERE true │ +│ Node: host=localhost port=5432 dbname=postgres │ +│ -> Aggregate │ +│ -> Seq Scan on public.events_102008 events │ +└────────────────────────────────────────────────────────────────────────────────────┘ +``` + +### Creating Distributed Tables with Co-location + +Distributed tables that have the same distribution column can be co-located to enable high performance distributed joins and foreign keys between distributed tables. +By default, distributed tables will be co-located based on the type of the distribution column, but you define co-location explicitly with the `colocate_with` argument in `create_distributed_table`. + +```sql +CREATE TABLE devices ( + device_id bigint primary key, + device_name text, + device_type_id int +); +CREATE INDEX ON devices (device_type_id); + +-- co-locate the devices table with the events table +SELECT create_distributed_table('devices', 'device_id', colocate_with := 'events'); + +-- insert device metadata +INSERT INTO devices (device_id, device_name, device_type_id) +SELECT s, 'device-'||s, 55 FROM generate_series(0, 99) s; + +-- optionally: make sure the application can only insert events for a known device +ALTER TABLE events ADD CONSTRAINT device_id_fk +FOREIGN KEY (device_id) REFERENCES devices (device_id); + +-- get the average measurement across all devices of type 55, parallelized across shards +SELECT avg((data->>'measurement')::double precision) +FROM events JOIN devices USING (device_id) +WHERE device_type_id = 55; + +┌────────────────────┐ +│ avg │ +├────────────────────┤ +│ 0.5000191877513974 │ +└────────────────────┘ +(1 row) + +Time: 209.961 ms +``` + +Co-location also helps you scale [INSERT..SELECT]( https://docs.citusdata.com/en/stable/articles/aggregation.html), [stored procedures]( https://www.citusdata.com/blog/2020/11/21/making-postgres-stored-procedures-9x-faster-in-citus/), and [distributed transactions](https://www.citusdata.com/blog/2017/06/02/scaling-complex-sql-transactions/). + +### Creating Reference Tables + +When you need fast joins or foreign keys that do not include the distribution column, you can use `create_reference_table` to replicate a table across all nodes in the cluster. + +```sql +CREATE TABLE device_types ( + device_type_id int primary key, + device_type_name text not null unique +); + +-- replicate the table across all nodes to enable foreign keys and joins on any column +SELECT create_reference_table('device_types'); + +-- insert a device type +INSERT INTO device_types (device_type_id, device_type_name) VALUES (55, 'laptop'); + +-- optionally: make sure the application can only insert devices with known types +ALTER TABLE devices ADD CONSTRAINT device_type_fk +FOREIGN KEY (device_type_id) REFERENCES device_types (device_type_id); + +-- get the last 3 events for devices whose type name starts with laptop, parallelized across shards +SELECT device_id, event_time, data->>'measurement' AS value, device_name, device_type_name +FROM events JOIN devices USING (device_id) JOIN device_types USING (device_type_id) +WHERE device_type_name LIKE 'laptop%' ORDER BY event_time DESC LIMIT 3; + +┌───────────┬───────────────────────────────┬─────────────────────┬─────────────┬──────────────────┐ +│ device_id │ event_time │ value │ device_name │ device_type_name │ +├───────────┼───────────────────────────────┼─────────────────────┼─────────────┼──────────────────┤ +│ 60 │ 2021-03-04 16:00:31.189963+00 │ 0.28902084163415864 │ device-60 │ laptop │ +│ 8 │ 2021-03-04 16:00:31.189963+00 │ 0.8723803076285073 │ device-8 │ laptop │ +│ 20 │ 2021-03-04 16:00:31.189963+00 │ 0.8177634801548557 │ device-20 │ laptop │ +└───────────┴───────────────────────────────┴─────────────────────┴─────────────┴──────────────────┘ +(3 rows) + +Time: 146.063 ms +``` + +Reference tables enable you to scale out complex data models and take full advantage of relational database features. + +### Creating Tables with Columnar Storage + +To use columnar storage in your PostgreSQL database, all you need to do is add `USING columnar` to your `CREATE TABLE` statements and your data will be automatically compressed using the columnar access method. + +```sql +CREATE TABLE events_columnar ( + device_id bigint, + event_id bigserial, + event_time timestamptz default now(), + data jsonb not null +) +USING columnar; + +-- insert some data +INSERT INTO events_columnar (device_id, data) +SELECT d, '{"hello":"columnar"}' FROM generate_series(1,10000000) d; + +-- create a row-based table to compare +CREATE TABLE events_row AS SELECT * FROM events_columnar; + +-- see the huge size difference! +\d+ + List of relations +┌────────┬──────────────────────────────┬──────────┬───────┬─────────────┬────────────┬─────────────┐ +│ Schema │ Name │ Type │ Owner │ Persistence │ Size │ Description │ +├────────┼──────────────────────────────┼──────────┼───────┼─────────────┼────────────┼─────────────┤ +│ public │ events_columnar │ table │ marco │ permanent │ 25 MB │ │ +│ public │ events_row │ table │ marco │ permanent │ 651 MB │ │ +└────────┴──────────────────────────────┴──────────┴───────┴─────────────┴────────────┴─────────────┘ +(2 rows) +``` + +You can use columnar storage by itself, or in a distributed table to combine the benefits of compression and the distributed query engine. + +When using columnar storage, you should only load data in batch using `COPY` or `INSERT..SELECT` to achieve good compression. Update, delete, indexes, and foreign keys are currently unsupported on columnar tables. However, you can use partitioned tables in which newer partitions use row-based storage, and older partitions are compressed using columnar storage. + +To learn more about columnar storage, check out the [columnar storage README](https://github.com/citusdata/citus/blob/master/src/backend/columnar/README.md). + +## Documentation + +If you’re ready to get started with Citus or want to know more, we recommend reading the [Citus open source documentation](https://docs.citusdata.com/en/stable/). Or, if you are using Citus on Azure, then the [Hyperscale (Citus) documentation](https://docs.microsoft.com/azure/postgresql/hyperscale/) is online and available as part of the Azure Database for PostgreSQL docs. + +Our Citus docs contain comprehensive use case guides on how to build a [multi-tenant SaaS application]( https://docs.citusdata.com/en/stable/use_cases/multi_tenant.html), [real-time analytics dashboard]( https://docs.citusdata.com/en/stable/use_cases/realtime_analytics.html), or work with [time series data]( https://docs.citusdata.com/en/stable/use_cases/timeseries.html). + +## Architecture + +A Citus database cluster grows from a single PostgreSQL node into a cluster by adding worker nodes. In a Citus cluster, the original node to which the application connects is referred to as the coordinator node. The Citus coordinator contains both the metadata of distributed tables and reference tables, as well as regular (local) tables, sequences, and other database objects (e.g. foreign tables). + +Data in distributed tables is stored in “shards”, which are actually just regular PostgreSQL tables on the worker nodes. When querying a distributed table on the coordinator node, Citus will send regular SQL queries to the worker nodes. That way, all the usual PostgreSQL optimizations and extensions can automatically be used with Citus. + +![Citus architecture](/citus-architecture.png) + +When you send a query in which all (co-located) distributed tables have the same filter on the distribution column, Citus will automatically detect that and send the whole query to the worker node that stores the data. That way, arbitrarily complex queries are supported with minimal routing overhead, which is especially useful for scaling transactional workloads. If queries do not have a specific filter, each shard is queried in parallel, which is especially useful in analytical workloads. The Citus distributed executor is adaptive and is designed to handle both query types at the same time on the same system under high concurrency, which enables large-scale mixed workloads. -You can read more user stories about how they employ Citus to scale Postgres for both multi-tenant SaaS applications as well as real-time analytics dashboards [here](https://www.citusdata.com/customers/). +## When to use Citus + +Citus is uniquely capable of scaling both analytical and transactional workloads with up to petabytes of data. Use cases in which Citus is commonly used: + +- **[Customer-facing analytics dashboards](http://docs.citusdata.com/en/stable/use_cases/realtime_analytics.html)**: + Citus enables you to build analytics dashboards that simultaneously ingest and process large amounts of data in the database and give sub-second response times even with a large number of concurrent users. + + The advanced parallel, distributed query engine in Citus combined with PostgreSQL features such as [array types](https://www.postgresql.org/docs/current/arrays.html), [JSONB](https://www.postgresql.org/docs/current/datatype-json.html), [lateral joins](https://heap.io/blog/engineering/postgresqls-powerful-new-join-type-lateral), and extensions like [HyperLogLog](https://github.com/citusdata/postgresql-hll) and [TopN](https://github.com/citusdata/postgresql-topn) allow you to build responsive analytics dashboards no matter how many customers or how much data you have. + + Example real-time analytics users: [Algolia](https://www.citusdata.com/customers/algolia), [Heap](https://www.citusdata.com/customers/heap) + +- **[Time series data](http://docs.citusdata.com/en/stable/use_cases/timeseries.html)**: + Citus enables you to process and analyze very large amounts of time series data. The biggest Citus clusters store well over a petabyte of time series data and ingest terabytes per day. + + Citus integrates seamlessly with [Postgres table partitioning](https://www.postgresql.org/docs/current/ddl-partitioning.html) and [pg_partman](https://www.citusdata.com/blog/2018/01/24/citus-and-pg-partman-creating-a-scalable-time-series-database-on-PostgreSQL/), which can speed up queries and writes on time series tables. You can take advantage of Citus’s parallel, distributed query engine for fast analytical queries, and use the built-in *columnar storage* to compress old partitions. + + Example users: [MixRank](https://www.citusdata.com/customers/mixrank), [Windows team](https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/architecting-petabyte-scale-analytics-by-scaling-out-postgres-on/ba-p/969685) + +- **[Software-as-a-service (SaaS) applications](http://docs.citusdata.com/en/stable/use_cases/multi_tenant.html)**: + SaaS and other multi-tenant applications need to be able to scale their database as the number of tenants/customers grows. Citus enables you to transparently shard a complex data model by the tenant dimension, so your database can grow along with your business. + + By distributing tables along a tenant ID column and co-locating data for the same tenant, Citus can horizontally scale complex (tenant-scoped) queries, transactions, and foreign key graphs. Reference tables and distributed DDL commands make database management a breeze compared to manual sharding. On top of that, you have a built-in distributed query engine for doing cross-tenant analytics inside the database. + + Example multi-tenant SaaS users: [Copper](https://www.citusdata.com/customers/copper), [Salesloft](https://fivetran.com/case-studies/replicating-sharded-databases-a-case-study-of-salesloft-citus-data-and-fivetran), [ConvertFlow](https://www.citusdata.com/customers/convertflow) + +- **Geospatial**: + Because of the powerful [PostGIS](https://postgis.net/) extension to Postgres that adds support for geographic objects into Postgres, many people run spatial/GIS applications on top of Postgres. And since spatial location information has become part of our daily life, well, there are more geospatial applications than ever. When your Postgres database needs to scale out to handle an increased workload, Citus is a good fit. + + Example geospatial users: [Helsinki Regional Transportation Authority (HSL)](https://customers.microsoft.com/en-us/story/845146-transit-authority-improves-traffic-monitoring-with-azure-database-for-postgresql-hyperscale), [MobilityDB]( https://www.citusdata.com/blog/2020/11/09/analyzing-gps-trajectories-at-scale-with-postgres-mobilitydb/). + +## Need Help? + +- **Slack**: Ask questions in our Citus community [Slack channel](https://slack.citusdata.com). +- **GitHub issues**: Please submit issues via [GitHub issues](https://github.com/citusdata/citus/issues). +- **Documentation**: Our [Citus docs](https://docs.citusdata.com ) have a wealth of resources, including sections on [query performance tuning](https://docs.citusdata.com/en/stable/performance/performance_tuning.html), [useful diagnostic queries](https://docs.citusdata.com/en/stable/admin_guide/diagnostic_queries.html), and [common error messages](https://docs.citusdata.com/en/stable/reference/common_errors.html). +- **Docs issues**: You can also submit documentation issues via [GitHub + issues for our Citus docs](https://github.com/citusdata/citus_docs/issues). + +## Contributing + +Citus is built on and of open source, and we welcome your contributions. The [CONTRIBUTING.md](CONTRIBUTING.md) file explains how to get started developing the Citus extension itself and our code quality guidelines. + +## Stay Connected + +- **Twitter**: Follow us [@citusdata](https://twitter.com/citusdata) to track the latest posts & updates on what’s happening. +- **Citus Blog**: Read our popular [Citus Blog](https://www.citusdata.com/blog/) for useful & informative posts about PostgreSQL and Citus. +- **Citus Newsletter**: Subscribe to our monthly technical [Citus Newsletter](https://www.citusdata.com/join-newsletter) to get a curated collection of our favorite posts, videos, docs, talks, & other Postgres goodies. +- **Slack**: Our [Citus Public slack]( https://slack.citusdata.com/) is a good way to stay connected, not just with us but with other Citus users. +- **Sister Blog**: Read our Azure Database for PostgreSQL [sister blog on Microsoft TechCommunity](https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/bg-p/ADforPostgreSQL) for posts relating to Postgres (and Citus) on Azure. +- **Videos**: Check out this [YouTube playlist](https://www.youtube.com/playlist?list=PLixnExCn6lRq261O0iwo4ClYxHpM9qfVy) of some of our favorite Citus videos and demos. If you want to deep dive into how Citus extends PostgreSQL, you might want to check out Marco Slot’s talk at Carnegie Mellon titled [Citus: Distributed PostgreSQL as an Extension](https://youtu.be/X-aAgXJZRqM) that was part of Andy Pavlo’s Vaccination Database Talks series at CMUDB. +- **Our other Postgres projects**: Our team also works on other awesome PostgreSQL open source extensions & projects, including: [pg_cron]( https://github.com/citusdata/pg_cron), [HyperLogLog](https://github.com/citusdata/postgresql-hll), [TopN](https://github.com/citusdata/postgresql-topn), [pg_auto_failover](https://github.com/citusdata/pg_auto_failover), [activerecord-multi-tenant](https://github.com/citusdata/activerecord-multi-tenant), and [django-multitenant](https://github.com/citusdata/django-multitenant). ___ Copyright © Citus Data, Inc. - -[faq]: https://www.citusdata.com/frequently-asked-questions -[tutorial]: https://docs.citusdata.com/en/stable/tutorials/multi-tenant-tutorial.html diff --git a/citus-architecture.png b/citus-architecture.png new file mode 100755 index 0000000000000000000000000000000000000000..5eb7f9816d64ad143a59a3a32121e49c985bfa29 GIT binary patch literal 96184 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%0DphK^cf*Bc;@p^8-r`JL`(C;Wg_9nEbXv$u z%0z@|<4Qyu8BLFk5q3-M;LQv(YFv9CH61H}ON`6+Va8E?U~kn2V;8-(1dox#($eknOXwr_%eBa;-@={_MB~oE6I)$Mi9sZWBWvRBGh1{Il

2-0e% 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 RBgyD*80Z@76z`&(`G38mNP++W literal 0 HcmV?d00001 diff --git a/citus-readme-banner.png b/citus-readme-banner.png new file mode 100755 index 0000000000000000000000000000000000000000..bf5796bb5824667c2fe1ab7432359d46150cc7dc GIT binary patch literal 21985 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 b%o57N&pFXNhqpfx|Kw3r$A8%h5KSn#Bv literal 0 HcmV?d00001 diff --git a/citus-scale-out.png b/citus-scale-out.png new file mode 100755 index 0000000000000000000000000000000000000000..0bbaf2737b7f6d8c0899376c6547fbe4b2d76fa5 GIT binary patch literal 17874 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 z z4rHAZtgLamrg1IUbVzA-ID+)Da_p5X)8k8CJe)G5D8sk8$t)~)EOd9yfGUMN-p{R; zjk!My6_;fi?h2xVQYv<*@6&*<&7x$Tog?OH+&rdva=G@ux=2#J1M^Ch z{~?q&T2(5dqo}z=@p9F9t}2SpU7UciBExbzKLVz(Y+j=lQ|ytT+NTqgz*JPJ`x%Po zjsC7hy`${KH`%F_9_JIVY=&++Gh0CWI4IaRmvB_&O}01F?*(uw_L?5w|IJ5-|My9f zTl;tS48o;kE)FrmmYk+XW2=o?Z==EMpT;a^7L?(Kj~?Qh?(B;?aYU{q+Z&Vn9<$g7 zHV>$$9eJeoSl&N-a`FOqMc9-|!z9b<+sGM;qQlyHBh$e)p>lsJoS(Aa@y3h(Y1OlT z*Ry$=c^)Z3BkUhYO=9b>_bu)9*PPq$PhM2a8{u$SAkjXCZ<|>|`V=cVVCQstjC$Nv z80w`<;^fqlHMu>%L@b~n&yk{njiILk)Jr>_>}&o5kV8KuRx1b|5W zR8yu$*Le5vd{2Dz!MCA*M!qi*$T=wPk339XYnhfEm5=ve%0?>HoY8(ZccA(@{B=ri z9JPPB>u$_NLp`%jR~m@s<&o%1JzGJV?d=46cVVM9T+kN$zs2m3IvD#6pNA-H?MrFSPH9I4-Ll}#h?_T`1`z#mwoPJis0$-4H{{Q#&-CHkY z-gb`kIzg9lLvKsi7B;lDgEX}uKkdvcj<2Mxm-h^kC;JY7vjXx#)XO&>e3vIlx=q2t zhIm2Q|EsU-Cr-0t_)h)-(^^dT{z7-|bSTLeBPdGtp;wFbvd$|~$;eddMX zB4>&||Ih(v9?m29vd2~ITPy$4i~*_GjEjrStb+b8YPXoYAksl>`_$Xm$Qt_$;yFaP zD^gvB(H`8V zIFvCEnU7(4wXq{(ede8Raem%DQu4c@9}V~9-c#RwqBYItNg&b@T$8fKBCNGd_o(XS z#Bes%If5%?#I!nUE^*uKz(u_^d$x$)XQLxhKMzA}s355K!`>vH2_^;}D@}sXD6KKh zjp4Z1-q}Vrt6i>PAbhV*i3y(=*j9EexEFRp5Jjnh^3Q&Yc#8abhk0NGoHSuYM3=Bx zwa)%ExKsh5+2bZtsD^y*f61LVV7wM7j zhPAqdtq6Ob0O_ne;)i{tEw{lDBXIg@D@%)%s%axo!4!?MD~pO(wq#c2t*|qF@PKP8 z_^gd!(UvhD#DQa#8DQ4e+ooQK3+`7G8s`9qmTvKNB|uQAd|hgT4G{~3)<@t#m6`CG zf!|@a;7ARhcTukM^-cX7S9-n$dmJjMisB21ehChBWv#cD`}J%MX%MRX94z;43yYbCiV-L$52&31sJL63;p!fGqo`+v~3Aeyt*qrI!QD*+VT zB)CS(ytab!^Ph`ccnsE5YqedbLe}yHL-y+DsjHXi9=eM)^yq*9^i=}xHu3g))|P-# zL;nxiI;%z3Sy{?LNKJ3q*!sCasnkiQp1eafHD@wGV2V?B?GC`71avAqcu<$>7Sw(V zoF9sLgO$9du(qt}r|G4;09 literal 0 HcmV?d00001 diff --git a/github-banner.png b/github-banner.png deleted file mode 100644 index d7818f345ce4be5c3c9a2411e9e961b21cdab762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4139 zcmV+`5Y+F9P)1dOVH)5R* z{0sQ45{M<@HK4WWbd!#k6>CWqkV?cmK*Or|#4hu*qJefmXBTt<;`yCAKu6(uC;GjX z%0VJj1O%S8dXvKgLw-PL?Q4x5K|L7a}==ELGbqhZvl5l zrRVsg(sBj^-GDYgbfKr`)4et^&$H3+t~ii{iyKq4D1R3IZp zD}E>55X=xvr{NU3R8ZFFO#iB=KG;)9(n*U(bO52wf)L#fyb5dqb^$wpO}q*$2JQzg z0(v2TJ%_s60iU}NYK`g4SPdZ8VJ6mY5Njd~6wv~yx+E>gngqdl zn*}H+OrHYtfUAMifs>K1GYEAe&Eh~?po8m*=JStqAy|GGBp|c;nZTcb3xE;8sX$x= z2-aFbur^gpbn5RjfU*3YnLq=NazOE;-FYm=F`0T>zlTdOpFf_%=xAGTE?WazMvP$g zHmcuk3Y^B4(6PK4o>r0PBF4 z*?2-~-~eE#d$59(I#_rRZlHzd!-a9Nu)+xUghh6{l2G~T1gq^mhdU3~Uz zD8fu0@E@TP?u+V`JIqF`1guI=v(NwE?McwTG`g&dtQ>1cd_kTKl1Qx-&7!3;5gBy5PXvE1oQc4 zhT!ikl>9b|%iEw?#^<&+OpvtI4YCPgu2(^h13rS;eMfYr|CHd*Nef4eV<8F-%Gb1K z@u0saa!A!^)|FE{h0yr?GZY`a9&L?rAs2-#EeV5MK~N+|bKb)^5$s9L@(S3p8fk)E z?D4xcV|>fi|MVPE$yY@vob6bG1y-X-g~|m9_PJ*Mot%G&hv*|WcqZ6fbnx!ze$Y*6 z)ml6}7OU3d!hpO%#tDtGdH~Z|Uo8+CMrQsGforsgMlJ!_2d2U3;=X!a?;u771N_cOyZN<(9#uFL%S$`*j z*~%dGZ;zzjCPKcR5hj>S6&_@Jw?0n*8!AkcnO0wKlZ+9~_*0~lVIV|lw+6v(SLAsG z=%}zRE_9HaF+%>+BzfMJ?7L)TePUTfE4HB#a8LLIqp0Id|9Yr}meuT}=Z2@SVA%)h zNsV$Y=8b8o=H_v`>qaqPzODFv&&x(}Thq|C779VUSt4vDc7uR}5GMn{Lq12L44Ls^m}0D^x{OgD#R>I%>+D{@8u_W@`NxjIz&?K+g>gYfFn33@ z&%acvI?|rg`THIYmtgn9pfR3Tt{&+8uY>_wq*2CA9u7@TXTM5QD+bZoM883z8qTK2 zo#u>8fNzadz!-@T#sI5Tv4Uavm8vVjf_tzL3Kf^?o)4rt^!Ied>|Q^_eR4jNq+^-O zryM0#?5TUXT@?lfZv^xCn=8WaCTX;x8L%rfg8BTZFvU-0V@7-EX2OvZC2s_b3agdf^i+S+ZX||-|!#{&qRP=JtWV!Xv6>OA zm!zF;1e2{$mk4y=xV$#tHj^Y@5CBdN5X2cN+s8XwWXip;3!rznU@&CMzko&{O6 zSty-^Fo7c?L^F9xH6vJ8URmw=esGE8cv&)D7bx=jfEScR%R}AsMs{W&*h`XeyIxZO zQzR-_zAdIzwzsRNS@yCB5UiWz1U(t#T4=W6(UA6FWPyXg?vQl;!y1)d<$+-9m4TN5 zVvS~>S;d2#sk!}aPVZc9-{UUdMQ6DFEBUUgsu{r&B0spO%3B1{^xsQU_1qr;g0)eEMxCqChPqY&Mo0w9%eqq$ zgO{dJ@wFa3-+5N22COm^>o$-bmn!Gq8jvf+My{bOq`&B_M07uf!nqu;@h%18cC7+} z#VRI(@rrh}k_7M;i~S+fJ~*o7F|jWA5tmsRQgg>C+$qCdhXS>G{}*%n`d)Wjqin9veb<$q_!hxz{D%V;JyQ8@W!k z&GZjyt~P@edyltVRIqs7=g>tpH`tHVM4Dinccr9_8)Vj7{5DgPcQ+X}YO;HHo3Qe`3MI~G?x&?!Lj=dU?i{kaZutlyXXc8=1v0n*V(Qf1D z_)ZK890_zLYda+#A~|#jM!v8w73IAL zT*T)5MAohzatQ^S>m+3ltU~S@iTu;4;14>pivy+3zAuXv*bKj zUEcHP3h|2^#V`JTwj}7dqLEB>=}jQ`xLC6dudoU!{yyJH;AXfS25c3QBnJ-bjpaX8 zw2(V!2_He2!U3g9{}t4gMtsymY}2(-VJ3>6=RMX|4dEjr!E_06PU8rXql_Z9Op5th zv+<$GmbcLDRw;_E(3l8l#hj|T&xB7&FO@j3?Rd@gux!Az{g_Jt_bOiT2D17XL=pSC zR96O!cRAF#i;pwK@ZUTr7Rnwils8nUznDX;VjRAYWbs`W?dmSR4|JZ;hGNSB?l6$g zx(woks47nEtJx^q#7FW@ce0SOsz;agJj$_o^EvWi5*t1mDc+?Cpf`n(@xOh59>L=* zwtRJ2&{J*sDQcshM*Cv9FK#4to!d8$jWVMusC4RbsNO5+u15a8*-XrS9w*I2j>dS1 zjSq7;PSjWC+YAJ5r}AYuy*a|Zn~Q+QaY)=Pmbw)vdnR9g6K~6x#CLeu%Wf)^)mT!0 zvc|W?SQb*B|3?0<`8=sydQ6<6&)-SXh7L}hzg%MmZ&5|WYR~=|*^HYX@@i_5NxxTO z{oPGXdPOypN2m?)tg@-BeDr${Gg>CqM1sxG+z8Wg^KKEYnLUl}1U_nU$fZ6Cg&Jc<$)uW0uw(~6mzccpUN-4? zC)o)cAi6P3Qhm$eSQH)J%=D~DCLK$(IvmkGjsF7Uc0OlR%ttVa_`i?vp~%f_k-USi pZ#DtCCYfZCNhX