ClickHouse is an open-source column-oriented DBMS for online analytical processing
that allows users to generate analytical reports using SQL queries in real-time.
It supports LZ4 compression by default. It also provides a C++ interface
ICompressionCodec to integrate third-party compressors with it.
Steps to integrate AOCL-Compression with ClickHouse:
Add AOCL-Compression library source code to
contrib/aocl-compression.Add the parent
CMakeLists.txtin AOCL-Compression library tocontrib/aocl-compression-cmake.Create a new compressor in
src/Compression/CompressionCodecAocl.cpp. Create a classCompressionCodecAoclby deriving fromICompressionCodec. OverridedoCompressData()anddoDecompressData()methods to call AOCL-Compression unified APIs.Make necessary changes in
programs/compressor/Compressor.cppto add a new compressor option “aocl”. Make changes insrc/Compression/CompressionFactory.cppandsrc/Compression/CompressionInfo.hto register the new compressor.Make necessary changes in
CMakeLists.txtin contrib, src, programs and utils to include the newly added compressor.Build and launch ClickHouse server with “aocl” as compressor.