Skip to main content

Fix of the version 0.2.4, for the clickhouse's version 22.3

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://github.com/mymarilyn/clickhouse-driver/actions/workflows/actions.yml/badge.svg

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.

  • Types support:

    • Float32/64

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

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

    • String/FixedString(N)

    • Enum8/16

    • Array(T)

    • Nullable(T)

    • Bool

    • 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.

Project details


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_fork_0_2_4-0.0.1.tar.gz (282.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file clickhouse_driver_fork_0_2_4-0.0.1.tar.gz.

File metadata

File hashes

Hashes for clickhouse_driver_fork_0_2_4-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9637a7784d19765944973cca262e08dd877800ed77ca2d6ba1a9d3fbc9fb544e
MD5 786ebf4285132d20bb928164b29dc7cf
BLAKE2b-256 9fc3a7421d9e6b92df729a2b171afa24464721f0ff3351a1dbe477686a8e1014

See more details on using hashes here.

File details

Details for the file clickhouse_driver_fork_0_2_4-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for clickhouse_driver_fork_0_2_4-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 116fa569692ea05319c086aa7cf08522f1715350f198588b98993c0760452986
MD5 462d55d8b0ee044ec7ea3bfefec67b12
BLAKE2b-256 d70ea65b31f7f6ec0707891dbd6e5cc8b7147b502273ada1fedfb00e8f71859b

See more details on using hashes here.

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