Skip to content

alex-zaitsev/clickhouse-cpp

This branch is 7 commits ahead of, 49 commits behind artpaul/clickhouse-cpp:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b4e7dbc · Feb 5, 2019
Jan 27, 2018
Feb 5, 2019
Feb 1, 2019
Oct 5, 2018
Oct 18, 2017
Feb 5, 2019
Apr 27, 2017
Feb 5, 2019
Jan 2, 2017
Feb 1, 2019
Jun 13, 2018
Apr 27, 2017
Feb 1, 2019
Mar 16, 2017
Oct 18, 2017

Repository files navigation

ClickHouse C++ client Build Status

C++ client for Yandex ClickHouse

Supported data types

  • Array(T)
  • Date
  • DateTime
  • Enum8, Enum16
  • FixedString(N)
  • Float32, Float64
  • Nullable(T)
  • String
  • Tuple
  • UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64

Building

$ mkdir build .
$ cd build
$ cmake ..
$ make

Example

#include <clickhouse/client.h>

using namespace clickhouse;

/// Initialize client connection.
Client client(ClientOptions().SetHost("localhost"));

/// Create a table.
client.Execute("CREATE TABLE IF NOT EXISTS test.numbers (id UInt64, name String) ENGINE = Memory");

/// Insert some values.
{
    Block block;

    auto id = std::make_shared<ColumnUInt64>();
    id->Append(1);
    id->Append(7);

    auto name = std::make_shared<ColumnString>();
    name->Append("one");
    name->Append("seven");

    block.AppendColumn("id"  , id);
    block.AppendColumn("name", name);

    client.Insert("test.numbers", block);
}

/// Select values inserted in the previous step.
client.Select("SELECT id, name FROM test.numbers", [] (const Block& block)
    {
        for (size_t i = 0; i < block.GetRowCount(); ++i) {
            std::cout << block[0]->As<ColumnUInt64>()->At(i) << " "
                      << block[1]->As<ColumnString>()->At(i) << "\n";
        }
    }
);

/// Delete table.
client.Execute("DROP TABLE test.numbers");

About

ClickHouse C++ client library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.2%
  • C 7.5%
  • Other 0.3%