Distributed PostgreSQL as an extension
 
 
 
 
 
 
Go to file
eren ef6d5c7571 Fix spurious NOTICE messages with ANY/ALL
Fixes issue #258

Prior to this change, Citus gives a deceptive NOTICE message when a query
including ANY or ALL on a non-partition column is issued on a hash
partitioned table.

Let the github_events table be hash-distributed on repo_id column. Then,
issuing this query:
    SELECT count(*) FROM github_events WHERE event_id = ANY ('{1,2,3}')

Gives this message:
    NOTICE: cannot use shard pruning with ANY (array expression)
    HINT: Consider rewriting the expression with OR clauses.

Note that since event_id is not the partition column, shard pruning would
not be applied in any case. However, the NOTICE message would be valid
and be given if the ANY clause would have been applied on repo_id column.

Reviewer: Murat Tuncer
2016-03-25 14:30:02 +02:00
src Fix spurious NOTICE messages with ANY/ALL 2016-03-25 14:30:02 +02:00
.gitattributes Switch to using git attributes to ignore files 2016-02-15 23:41:51 -07:00
.gitignore Initial commit of Citus 5.0 2016-02-11 04:05:32 +02:00
.travis.yml Initial commit of Citus 5.0 2016-02-11 04:05:32 +02:00
CHANGELOG.md Add CHANGELOG 2016-03-23 17:28:16 -06:00
CONTRIBUTING.md Add CLA link to contributing.md 2016-03-23 16:29:33 -07:00
LICENSE Add AGPL-3.0 in LICENSE file 2016-03-23 17:04:58 -06:00
Makefile Fix various build issues 2016-03-11 13:38:47 -07:00
Makefile.global.in Fix various build issues 2016-03-11 13:38:47 -07:00
README.md Update Travis links 2016-03-24 23:24:09 -07:00
autogen.sh Changed product name to citus 2016-02-15 16:04:31 +02:00
configure Update copyright dates 2016-03-23 17:14:37 -06:00
configure.in Update copyright dates 2016-03-23 17:14:37 -06:00
github-banner.png Readme for 5.0 2016-03-18 13:32:13 -07:00
prep_buildtree Changed product name to citus 2016-02-15 16:04:31 +02:00

README.md

Citus Banner

Build Status Citus IRC Latest Docs

What is Citus?

  • Open-source PostgreSQL extension (not a fork)
  • Scalable across multiple hosts through sharding and replication
  • Distributed engine for query parallelization
  • Highly available in the face of host failures

Citus horizontally scales PostgreSQL across commodity servers using sharding and replication. Its query engine parallelizes incoming SQL queries across these servers to enable real-time responses on large datasets.

Citus extends the underlying database rather than forking it, which gives developers and enterprises the power and familiarity of a traditional relational database. As an extension, Citus supports new PostgreSQL releases, allowing users to benefit from new features while maintaining compatibility with existing PostgreSQL tools. Note that Citus supports many (but not all) SQL commands; see the FAQ for more details.

Common Use-Cases:

  • Powering real-time analytic dashboards
  • Exploratory queries on events as they happen
  • Large dataset archival and reporting
  • Session analytics (funnels, segmentation, and cohorts)

To learn more, visit citusdata.com.

Quickstart

Local Citus Cluster

  • Install docker-compose: Mac | Linux

  • (Mac only) connect to Docker VM

    eval $(docker-machine env default)
    
  • Pull and start the docker images

    wget https://raw.githubusercontent.com/citusdata/docker/master/docker-compose.yml
    docker-compose -p citus up -d
    
  • Connect to the master database

    docker exec -it citus_master psql -U postgres -d postgres
    
  • Follow the first tutorial instructions

  • To shut the cluster down, run

    docker-compose -p citus down
    

Learn More

The project documentation and tutorials are good places to start. Were responsive on Github, so you can use the issue tracker to check for or submit bug reports and feature requests. For more immediate help or general discussion were on IRC at #citus on Freenode and @citusdata on Twitter.

We also offer training and dedicated support options. More information is available on our support page.

Contributing

Citus is built on and of open source. We welcome your contributions, and have added a helpwanted label to issues which are accessible to new contributors. The CONTRIBUTING.md file explains how to get started developing the Citus extension itself and our code quality guidelines.

Who is Using Citus?

Citus is deployed in production by many customers, ranging from technology start-ups to large enterprises. Here are some examples:

  • CloudFlare uses Citus to provide real-time analytics on 100 TBs of data from over 4 million customer websites. Case Study
  • MixRank uses Citus to efficiently collect and analyze vast amounts of data to allow inside B2B sales teams to find new customers. Case Study
  • Neustar builds and maintains scalable ad-tech infrastructure that counts billions of events per day using Citus and HyperLogLog.
  • Agari uses Citus to secure more than 85 percent of U.S. consumer emails on two 6-8 TB clusters. Case Study
  • Heap uses Citus to run dynamic funnel, segmentation, and cohort queries across billions of users and tens of billions of events. Watch Video

Copyright © 20122016 Citus Data, Inc.