Citus Data: Distributed PostGreSQL for Big Data with Ozgun Erdogan and Craig Kerstiens - Episode 13
Jan 8, 2018
auto_awesome
Ozgun Erdogan and Craig Kerstiens from Citus Data discuss their work on scaling out PostGreSQL, including replication models, distributed backups, and upcoming features for real-time analytics. They also explore the considerations for deploying Citus and compare it to other offerings like Redshift and BigQuery.
Citus is an extension for PostgreSQL that enables horizontal scaling and improved performance, making it suitable for handling large datasets and complex queries.
Citus has proven to be highly effective in various use cases, including real-time analytics, multi-tenant applications, and combining the benefits of NoSQL with relational databases, providing high performance and scalability for critical applications.
Deep dives
Citus enables scaling and performance for relational databases
Citus is an extension for PostgreSQL that allows for horizontal scaling and improved performance. By distributing data across multiple machines, Citus enables the ability to handle large datasets and complex queries. It is particularly beneficial for multi-tenant applications, real-time analytics, and combining the best aspects of NoSQL with the relational properties of PostgreSQL. Citus provides the ability to shard tables, parallelize queries, and merge results for faster response times. It also offers seamless integration with PostgreSQL, allowing users to leverage existing tools and processes. With features like C-Store for column-oriented storage and upcoming extensions for count distinct approximation and percentile calculations, Citus continues to enhance and optimize its capabilities.
Use cases and notable examples of Citus in action
Citus has proven to be highly effective in various use cases. One standout example is Heap Analytics, a customer utilizing a petabyte-scale Citus cluster to perform real-time analysis on event data in seconds. Citus has also shown value in real-time analytics, providing scalability and responsiveness for complex queries with large volumes of data. Other impressive use cases involve multi-tenant applications, B2B applications, and businesses seeking to combine the benefits of NoSQL with relational databases. By ensuring high performance, data distribution, and scalability, Citus facilitates data access and analysis for critical applications.
Considerations when deploying and utilizing Citus
When considering using Citus, it is important to note that it is most suitable for applications requiring high concurrency and real-time responsiveness. Use cases that involve internal data analysts or don't require sub-second response times may find alternatives more fitting. Citus excels in scenarios where large data sets need to be sliced and diced in multiple ways and delivered in milliseconds. Performance is a key factor, making Citus a preferred choice for applications demanding quick data access and real-time analysis.
The future of Citus: Performance improvements and extensions
Citus continues to focus on performance enhancements, catering to a broader range of use cases. Alongside upcoming improvements to SQL for real-time analytics, Citus is open-sourcing additional extensions to address count distinct approximation and percentile calculations, benefiting large-scale data analysis. Efforts are underway to optimize and streamline data management and analytics, providing simpler tooling and reducing complexity for developers. By making advanced functionalities more accessible, Citus aims to empower developers with turnkey solutions and allow them to emphasize features rather than struggling with complex data management.
PostGreSQL has become one of the most popular and widely used databases, and for good reason. The level of extensibility that it supports has allowed it to be used in virtually every environment. At Citus Data they have built an extension to support running it in a distributed fashion across large volumes of data with parallelized queries for improved performance. In this episode Ozgun Erdogan, the CTO of Citus, and Craig Kerstiens, Citus Product Manager, discuss how the company got started, the work that they are doing to scale out PostGreSQL, and how you can start using it in your environment.
Preamble
Hello and welcome to the Data Engineering Podcast, the show about modern data infrastructure
When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at dataengineeringpodcast.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your data pipelines or trying out the tools you hear about on the show.
Continuous delivery lets you get new features in front of your users as fast as possible without introducing bugs or breaking production and GoCD is the open source platform made by the people at Thoughtworks who wrote the book about it. Go to dataengineeringpodcast.com/gocd to download and launch it today. Enterprise add-ons and professional support are available for added peace of mind.
Go to dataengineeringpodcast.com to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
You can help support the show by checking out the Patreon page which is linked from the site.
To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
Your host is Tobias Macey and today I’m interviewing Ozgun Erdogan and Craig Kerstiens about Citus, worry free PostGreSQL
Interview
Introduction
How did you get involved in the area of data management?
Can you describe what Citus is and how the project got started?
Why did you start with Postgres vs. building something from the ground up?
What was the reasoning behind converting Citus from a fork of PostGres to being an extension and releasing an open source version?
How well does Citus work with other Postgres extensions, such as PostGIS, PipelineDB, or Timescale?
How does Citus compare to options such as PostGres-XL or the Postgres compatible Aurora service from Amazon?
How does Citus operate under the covers to enable clustering and replication across multiple hosts?
What are the failure modes of Citus and how does it handle loss of nodes in the cluster?
For someone who is interested in migrating to Citus, what is involved in getting it deployed and moving the data out of an existing system?
How do the different options for leveraging Citus compare to each other and how do you determine which features to release or withhold in the open source version?
Are there any use cases that Citus enables which would be impractical to attempt in native Postgres?
What have been some of the most challenging aspects of building the Citus extension?
What are the situations where you would advise against using Citus?
What are some of the most interesting or impressive uses of Citus that you have seen?
What are some of the features that you have planned for future releases of Citus?