Skip to content

GetShopTV/ClickHaskell

Repository files navigation

ClickHaskell

built with nix

ClickHaskell is a set of Haskell libraries which allows
you to build integrations with ClickHouse DBMS

ClickHaskell aims to be balanced between
lightweightness, composability and simplicity

Design factors

  1. ClickHouse stores data in a tables
  2. ClickHouse has HTTP interface for accessing and manipulating tables states
  3. HTTP request message-body to a DBMS server consists of a statement
  4. There are a few formats that defines data serialization in statement
  5. ClickHaskell should cover only problems related to communication protocol of ClickHouse DBMS
  6. ClickHaskell should provide safe API that will help the end user think less about ClickHouse interface

Development environment

We are using Nix flakes to set up whole development environment.

When you have configured Nix. Enter into nix shell and then run:

nix run

Nix will setup a database with development required schemas for you.

After dev-database Health status is Ready, you can start to work with database dependent code parts.

Profiling

nix run .#profiling

will start profiling process.

You should see profiler.eventlog.html in the project
directory after the profiling process has completed successfully