Skip to main content

Python driver with native interface for ClickHouse

Project description

ClickHouse Python Driver

https://img.shields.io/pypi/v/clickhouse-driver.svg https://coveralls.io/repos/github/mymarilyn/clickhouse-driver/badge.svg?branch=master https://img.shields.io/pypi/l/clickhouse-driver.svg https://img.shields.io/pypi/pyversions/clickhouse-driver.svg https://img.shields.io/pypi/dm/clickhouse-driver.svg https://travis-ci.org/mymarilyn/clickhouse-driver.svg?branch=master

ClickHouse Python Driver with native (TCP) interface support.

Asynchronous wrapper is available here: https://github.com/mymarilyn/aioch

Features

  • External data for query processing.

  • Query settings.

  • Compression support.

  • TLS support (since server version 1.1.54304).

  • Types support:

    • Float32/64

    • [U]Int8/16/32/64/128/256

    • Date/DateTime(‘timezone’)/DateTime64(‘timezone’)

    • String/FixedString(N)

    • Enum8/16

    • Array(T)

    • Nullable(T)

    • UUID

    • Decimal

    • IPv4/IPv6

    • LowCardinality(T)

    • SimpleAggregateFunction(F, T)

    • Tuple(T1, T2, …)

    • Nested

    • Map(key, value)

  • Query progress information.

  • Block by block results streaming.

  • Reading query profile info.

  • Receiving server logs.

  • Multiple hosts support.

  • Python DB API 2.0 specification support.

  • Optional NumPy arrays support.

Documentation

Documentation is available at https://clickhouse-driver.readthedocs.io.

Usage

There are two ways to communicate with server:

  • using pure Client;

  • using DB API.

Pure Client example:

>>> from clickhouse_driver import Client
>>>
>>> client = Client('localhost')
>>>
>>> client.execute('SHOW TABLES')
[('test',)]
>>> client.execute('DROP TABLE IF EXISTS test')
[]
>>> client.execute('CREATE TABLE test (x Int32) ENGINE = Memory')
[]
>>> client.execute(
...     'INSERT INTO test (x) VALUES',
...     [{'x': 100}]
... )
1
>>> client.execute('INSERT INTO test (x) VALUES', [[200]])
1
>>> client.execute(
...     'INSERT INTO test (x) '
...     'SELECT * FROM system.numbers LIMIT %(limit)s',
...     {'limit': 3}
... )
[]
>>> client.execute('SELECT sum(x) FROM test')
[(303,)]

DB API example:

>>> from clickhouse_driver import connect
>>>
>>> conn = connect('clickhouse://localhost')
>>> cursor = conn.cursor()
>>>
>>> cursor.execute('SHOW TABLES')
>>> cursor.fetchall()
[('test',)]
>>> cursor.execute('DROP TABLE IF EXISTS test')
>>> cursor.fetchall()
[]
>>> cursor.execute('CREATE TABLE test (x Int32) ENGINE = Memory')
>>> cursor.fetchall()
[]
>>> cursor.executemany(
...     'INSERT INTO test (x) VALUES',
...     [{'x': 100}]
... )
>>> cursor.rowcount
1
>>> cursor.executemany('INSERT INTO test (x) VALUES', [[200]])
>>> cursor.rowcount
1
>>> cursor.execute(
...     'INSERT INTO test (x) '
...     'SELECT * FROM system.numbers LIMIT %(limit)s',
...     {'limit': 3}
... )
>>> cursor.rowcount
0
>>> cursor.execute('SELECT sum(x) FROM test')
>>> cursor.fetchall()
[(303,)]

License

ClickHouse Python Driver is distributed under the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clickhouse-driver-0.2.1.tar.gz (211.3 kB view hashes)

Uploaded Source

Built Distributions

clickhouse_driver-0.2.1-pp37-pypy37_pp73-win32.whl (148.9 kB view hashes)

Uploaded PyPy Windows x86

clickhouse_driver-0.2.1-pp37-pypy37_pp73-manylinux2010_x86_64.whl (178.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (147.2 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

clickhouse_driver-0.2.1-pp36-pypy36_pp73-win32.whl (148.9 kB view hashes)

Uploaded PyPy Windows x86

clickhouse_driver-0.2.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl (178.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl (147.2 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

clickhouse_driver-0.2.1-cp39-cp39-win_amd64.whl (176.2 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

clickhouse_driver-0.2.1-cp39-cp39-win32.whl (160.5 kB view hashes)

Uploaded CPython 3.9 Windows x86

clickhouse_driver-0.2.1-cp39-cp39-manylinux2010_x86_64.whl (689.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-cp39-cp39-manylinux2010_i686.whl (676.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

clickhouse_driver-0.2.1-cp39-cp39-manylinux1_i686.whl (676.8 kB view hashes)

Uploaded CPython 3.9

clickhouse_driver-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (172.7 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

clickhouse_driver-0.2.1-cp38-cp38-win_amd64.whl (176.0 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

clickhouse_driver-0.2.1-cp38-cp38-win32.whl (160.9 kB view hashes)

Uploaded CPython 3.8 Windows x86

clickhouse_driver-0.2.1-cp38-cp38-manylinux2010_x86_64.whl (716.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-cp38-cp38-manylinux2010_i686.whl (699.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

clickhouse_driver-0.2.1-cp38-cp38-manylinux1_i686.whl (699.6 kB view hashes)

Uploaded CPython 3.8

clickhouse_driver-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl (171.9 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

clickhouse_driver-0.2.1-cp37-cp37m-win_amd64.whl (173.3 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

clickhouse_driver-0.2.1-cp37-cp37m-win32.whl (158.1 kB view hashes)

Uploaded CPython 3.7m Windows x86

clickhouse_driver-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl (602.9 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-cp37-cp37m-manylinux2010_i686.whl (591.2 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

clickhouse_driver-0.2.1-cp37-cp37m-manylinux1_x86_64.whl (602.9 kB view hashes)

Uploaded CPython 3.7m

clickhouse_driver-0.2.1-cp37-cp37m-manylinux1_i686.whl (591.2 kB view hashes)

Uploaded CPython 3.7m

clickhouse_driver-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl (170.2 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

clickhouse_driver-0.2.1-cp36-cp36m-win_amd64.whl (173.2 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

clickhouse_driver-0.2.1-cp36-cp36m-win32.whl (158.1 kB view hashes)

Uploaded CPython 3.6m Windows x86

clickhouse_driver-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl (600.1 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-cp36-cp36m-manylinux2010_i686.whl (588.1 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

clickhouse_driver-0.2.1-cp36-cp36m-manylinux1_x86_64.whl (600.1 kB view hashes)

Uploaded CPython 3.6m

clickhouse_driver-0.2.1-cp36-cp36m-manylinux1_i686.whl (588.1 kB view hashes)

Uploaded CPython 3.6m

clickhouse_driver-0.2.1-cp36-cp36m-macosx_10_9_x86_64.whl (173.7 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

clickhouse_driver-0.2.1-cp35-cp35m-win_amd64.whl (170.9 kB view hashes)

Uploaded CPython 3.5m Windows x86-64

clickhouse_driver-0.2.1-cp35-cp35m-win32.whl (156.0 kB view hashes)

Uploaded CPython 3.5m Windows x86

clickhouse_driver-0.2.1-cp35-cp35m-manylinux2010_x86_64.whl (592.0 kB view hashes)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

clickhouse_driver-0.2.1-cp35-cp35m-manylinux2010_i686.whl (581.5 kB view hashes)

Uploaded CPython 3.5m manylinux: glibc 2.12+ i686

clickhouse_driver-0.2.1-cp35-cp35m-manylinux1_x86_64.whl (592.0 kB view hashes)

Uploaded CPython 3.5m

clickhouse_driver-0.2.1-cp35-cp35m-manylinux1_i686.whl (581.5 kB view hashes)

Uploaded CPython 3.5m

clickhouse_driver-0.2.1-cp35-cp35m-macosx_10_9_x86_64.whl (168.3 kB view hashes)

Uploaded CPython 3.5m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page