I have been an avid user of Columnar based storage engines for as long as I have been a DBA. The advantage is instantly obvious once you and your teams start to write or convert queries which previously took tens of minutes, are now returning in fractions of a second. Just like when SSD’s became the standard, there was no going back to spinning rust.
Having a columnar based engine built right into MariaDB, aptly named ColumnStore, means there is no excuse for you to not give it a whirl where you probably already have a MariaDB replica server for OLAP workloads like reporting, archiving, or data warehousing.
So for the new year I thought, what better way to share my love of ColumnStore than to host a webinar just before the Spring?
While I personally run ColumnStore on my trusty server in the garage, I needed to create a portable environment using Docker in a repository for people attending to follow along with. Pretty standard so far.
Alas to my surprise, the official ColumnStore image is out of date, built manually, and actually does not work as the required processes are being run by a tool that has since been migrated to use systemd. And there is no official Vagrant image. See MCOL-5646 and MCOL-3906.
I guess we should just make our own ColumnStore images for Docker and Vagrant then!
And so the ColumnStore adventure begins here at Vettabase.
Another issue we quickly encountered was the lack of documentation. MariaDB has great documentation, the MariaDB Knowledge Base, and it used to include ColumnStore documentation. It is a wiki that anyone can edit, and the contents are covered by the GNU FDL and CC-BY-SA3 licenses. Unfortunately all ColumnStore documentation was removed and only a small part of it migrated to MariaDB Enterprise documentation. See MCOL-5655.
So we decided to start the MariaDB ColumnStore Unofficial Documentation Project! It is a public wiki that the community can edit, and the contents are covered by the same licenses as the original documentation. See our manifesto.
At the time of this writing registration is broken due to a problem with Amazon SES. We are working to fix it. In the meanwhile, feel free to ask us to give you access by writing an email to co**************@ve*******.com.
So what does this mean going forward? Should yee abandon all hope for those who dare adventure outside of our new realm? No, of course not.
While we are working on a solution for customers and the community to run and understand ColumnStore, you can help by voting on existing issues to bring the official docker image up to date and have ColumnStore enabled in the community image:
- The ColumnStore Docker images are out of date: https://jira.mariadb.org/browse/MCOL-5646
- Columnstore support: https://github.com/MariaDB/mariadb-docker/issues/457
While our own OCI image, at the time of writing, is still facing some issues, we are making progress:
MariaDB [(none)]> create schema test; create table test.t (a int) engine=columnstore;
Query OK, 1 row affected (0.001 sec)
Query OK, 0 rows affected (0.300 sec)
MariaDB [(none)]> insert into test.t () values (1);
Query OK, 1 row affected (0.059 sec)
The current state is:
- The OCI image is still under development, thus the only available tag is
dev
. - When we publish a
latest
tag, you will know that the image is fairly stable. - The Vagrant image is usable and we are refining it.
So for both our container and Vagrant efforts please do raise an issue or submit a pull request.
ColumnStore is a great engine, which I will be demonstrating in my first and next webinar at Vettabase, it really does deserve some love.
Do you have any ColumnStore success stories? We would love to hear them.
Links
- MariaDB ColumnStore Unofficial Documentation Project
- Vettabase ColumnStore container (
vettadock/mariadb-columnstore
) - Vettabase ColumnStore Vagrant machine (
vettabase/mariadb-columnstore
) - The Official MariaDB Columnstore Documentation
Richard Bensley
0 Comments