ClickhouseEcto
Ecto driver for ClickHouse database using ODBC.
ClickHouse ODBC driver configuration
Primarily, you need to build and configure the ClickHouse ODBC driver: https://github.com/yandex/clickhouse-odbc. On MacOS typical commands to build the driver are (https://github.com/yandex/clickhouse-odbc/issues/35#issuecomment-338243661):
brew install unixodbc
git clone https://github.com/yandex/clickhouse-odbc
cd clickhouse-odbc
git checkout macos-build
git submodule init
git submodule update
mkdir build
cd build
cmake .. -DODBC_LIBRARIES=/usr/local/lib/libodbc.a
make -j8 clickhouse-odbcTypical ODBC config looks like this (MacOS):
$ cat /usr/local/etc/odbc.ini
[ODBC Data Sources]
AdTracker = "ClickHouse AdTracker"
[ClickHouse]
Driver = /Users/kgrabar/Projects/AdTracker/clickhouse-odbc/build/driver/clickhouse-odbc.dylib
Description = ClickHouse driver
DATABASE = default
SERVER = 127.0.0.1
PORT = 8123
FRAMED = 0
$ cat /usr/local/etc/odbcinst.ini
[ODBC Drivers]
ClickHouseDriver=Installed
[ClickHouseDriver]
Description=driver_description
Driver=/Users/kgrabar/Projects/AdTracker/clickhouse-odbc/build/driver/clickhouse-odbc.dylibTypical command to launch ClickHouse from docker:
docker run --name some-clickhouse-server -p 9000:9000 -p 8123:8123 --ulimit nofile=262144:262144 -v /usr/local/etc/clickhouse-server/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-serverInstallation
The package can be installed
by adding clickhouse_ecto to your list of dependencies in mix.exs:
def deps do
[
{:clickhouse_ecto, "~> 0.1.0"}
]
endDocumentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/clickhouse_ecto.