ClickHouse and ProxySQL queries rewrite


ProxySQL is a popular open source, high performance and protocol-aware proxy server for MySQL and its forks. Since September 2017 ProxySQL supports ClickHouse as a backend, so clients can connect to ClickHouse via MySQL protocol. In practice, this helps MySQL-aware applications to start using ClickHouse as without changes in the client library.

To avoid some limitations to this approach, ProxySQL creator René Cannaò added additional functionality for query rewrite. With his permission, we cross-post his article describing new functionality in our blog.

Read More
Analyze MySQL Audit Logs with ClickHouse and ClickTail

In this blog post, I’ll look at how you can analyze MySQL audit logs (Percona Server for MySQL) with ClickHouse and ClickTail.  Audit logs are available with a free plugin for Percona Server for MySQL. Besides providing insights about activity on your server, you might need the logs for compliance purposes.

Read More
Archiving MySQL Tables in ClickHouse

Why Archive? Hard drives are cheap nowadays, but storing lots of data in MySQL is not practical and can cause all sorts of performance bottlenecks. 

In this article Percona's blogger Alexander Rubin is talking about archiving MySQL tables in ClickHouse for storage and analytics.

Read More
Aggregate MySQL data at high speed with ClickHouse

Feb 12, 2018
There are multiple ways how ClickHouse and MySQL can work together. External Dictionaries, ProxySQL support or [realtime streaming] of MySQL binary logs into ClickHouse. A few weeks ago ClickHouse team has released mysql() table function that allows to access MySQL data directly from ClickHouse. This opens up a number of interesting capabilities. Accidentally we have found [a blog article in Japanese] by Mikage Sawatari? , that tests a new way of integration and translated it for our blog with some minor edits.

Read More
Updating/Deleting Rows From Clickhouse (Part 2)

Jervin Real is a Senior Consultant and blogger working for Percona. In this post, Jervin looks at updating and deleting rows with ClickHouse. It’s the second of two parts.

Read More
Updating/Deleting Rows with ClickHouse (Part 1)

Jan 23, 2018
Jervin Real is a Senior Consultant and blogger working for Percona.
In this post, Jervin looks at updating and deleting rows with ClickHouse. It’s the first of two parts.

Read More
Big Data Analysis in Digital Marketing Research

Dec 6, 2017
Christian Hotz-Behofsits, Teaching & Research Associate at Vienna University of Business and Economics, is one of the creators of RClickhouse package for R that we have recently introduced on our blog. In this article he describes data analysis challenges his group is facing and how ClickHouse helps in their research.

Read More
ClickHouse Primary Keys

Nov 27, 2017
In this tutorial, our guest blogger Yegor Andreenko (@f1yegor) is talking about The ClickHouse Primary keys.

  • How many columns could primary key have? And what is a layout of data on storage drive? Are there any theoretical/practical limits?
  • Could columns with missing data at some rows be part of the primary key?

Read More
Big Dataset: All Reddit Comments – Analyzing with ClickHouse

Oct 5, 2017   
In this blog, I'll use ClickHouse and Tabix to look at a new very large dataset for research.

It is an interesting dataset I found recently that has been available since 2015. This is Reddit's comments and submissions dataset, made possible thanks to Reddit's generous API. 

Read More
Massive Parallel Log Processing with ClickHouse

In this blog, I’ll look at how to use ClickHouse for parallel log processing. Below I’ll show how ClickHouse can be used to efficiently perform this task. ClickHouse is attractive because it has multi-core parallel query processing

Read More
Nested Data Structures in ClickHouse

In this blog post, we’ll look at nested data structures in ClickHouse for MySQL and how this can be used with PMM to look at queries.

Read More
ClickHouse AggregateFunctions and Aggregate State

Jul 10, 2017   
The guest article from ClickHouse evangelist Yegor Andreenko (@f1yegor) about an interesting extension of aggregate functions aggregate states, that can be used to pre-aggregate data that usually has to be kept in raw, like uniques.

Read More