Skip to main content

chDB is an in-process SQL OLAP Engine powered by ClickHouse

Project description

Build X86 PyPI Downloads Discord Twitter

chDB

chDB is an in-process SQL OLAP Engine powered by ClickHouse [^1] For more details: The birth of chDB

Features

  • In-process SQL OLAP Engine, powered by ClickHouse
  • No need to install ClickHouse
  • Minimized data copy from C++ to Python with python memoryview
  • Input&Output support Parquet, CSV, JSON, Arrow, ORC and 60+more formats, samples
  • Support Python DB API 2.0, example

Arch

Get Started

Get started with chdb using our Installation and Usage Examples


Installation

Currently, chDB supports Python 3.8+ on macOS and Linux (x86_64 and ARM64).

pip install chdb

Usage

Run in command line

python3 -m chdb SQL [OutputFormat]

python3 -m chdb "SELECT 1,'abc'" Pretty

Data Input

The following methods are available to access on-disk and in-memory data formats:

🗂️ Connection based API (recommended)

import chdb

# Create a connection (in-memory by default)
conn = chdb.connect(":memory:")
# Or use file-based: conn = chdb.connect("test.db")

# Create a cursor
cur = conn.cursor()

# Execute queries
cur.execute("SELECT number, toString(number) as str FROM system.numbers LIMIT 3")

# Fetch data in different ways
print(cur.fetchone())    # Single row: (0, '0')
print(cur.fetchmany(2))  # Multiple rows: ((1, '1'), (2, '2'))

# Get column information
print(cur.column_names())  # ['number', 'str']
print(cur.column_types())  # ['UInt64', 'String']

# Use the cursor as an iterator
cur.execute("SELECT number FROM system.numbers LIMIT 3")
for row in cur:
    print(row)

# Always close resources when done
cur.close()
conn.close()

For more details, see examples/connect.py.

🗂️ Query On File

(Parquet, CSV, JSON, Arrow, ORC and 60+)

You can execute SQL and return desired format data.

import chdb
res = chdb.query('select version()', 'Pretty'); print(res)

Work with Parquet or CSV

# See more data type format in tests/format_output.py
res = chdb.query('select * from file("data.parquet", Parquet)', 'JSON'); print(res)
res = chdb.query('select * from file("data.csv", CSV)', 'CSV');  print(res)
print(f"SQL read {res.rows_read()} rows, {res.bytes_read()} bytes, storage read {res.storage_rows_read()} rows, {res.storage_bytes_read()} bytes, elapsed {res.elapsed()} seconds")

Pandas dataframe output

# See more in https://clickhouse.com/docs/en/interfaces/formats
chdb.query('select * from file("data.parquet", Parquet)', 'Dataframe')

🗂️ Query On Table

(Pandas DataFrame, Parquet file/bytes, Arrow bytes)

Query On Pandas DataFrame

import chdb.dataframe as cdf
import pandas as pd
# Join 2 DataFrames
df1 = pd.DataFrame({'a': [1, 2, 3], 'b': ["one", "two", "three"]})
df2 = pd.DataFrame({'c': [1, 2, 3], 'd': ["①", "②", "③"]})
ret_tbl = cdf.query(sql="select * from __tbl1__ t1 join __tbl2__ t2 on t1.a = t2.c",
                  tbl1=df1, tbl2=df2)
print(ret_tbl)
# Query on the DataFrame Table
print(ret_tbl.query('select b, sum(a) from __table__ group by b'))
# Pandas DataFrames are automatically registered as temporary tables in ClickHouse
chdb.query("SELECT * FROM Python(df1) t1 JOIN Python(df2) t2 ON t1.a = t2.c").show()

🗂️ Query with Stateful Session

from chdb import session as chs

## Create DB, Table, View in temp session, auto cleanup when session is deleted.
sess = chs.Session()
sess.query("CREATE DATABASE IF NOT EXISTS db_xxx ENGINE = Atomic")
sess.query("CREATE TABLE IF NOT EXISTS db_xxx.log_table_xxx (x String, y Int) ENGINE = Log;")
sess.query("INSERT INTO db_xxx.log_table_xxx VALUES ('a', 1), ('b', 3), ('c', 2), ('d', 5);")
sess.query(
    "CREATE VIEW db_xxx.view_xxx AS SELECT * FROM db_xxx.log_table_xxx LIMIT 4;"
)
print("Select from view:\n")
print(sess.query("SELECT * FROM db_xxx.view_xxx", "Pretty"))

see also: test_stateful.py.

🗂️ Query with Python DB-API 2.0

import chdb.dbapi as dbapi
print("chdb driver version: {0}".format(dbapi.get_client_info()))

conn1 = dbapi.connect()
cur1 = conn1.cursor()
cur1.execute('select version()')
print("description: ", cur1.description)
print("data: ", cur1.fetchone())
cur1.close()
conn1.close()

🗂️ Query with UDF (User Defined Functions)

from chdb.udf import chdb_udf
from chdb import query

@chdb_udf()
def sum_udf(lhs, rhs):
    return int(lhs) + int(rhs)

print(query("select sum_udf(12,22)"))

Some notes on chDB Python UDF(User Defined Function) decorator.

  1. The function should be stateless. So, only UDFs are supported, not UDAFs(User Defined Aggregation Function).
  2. Default return type is String. If you want to change the return type, you can pass in the return type as an argument. The return type should be one of the following: https://clickhouse.com/docs/en/sql-reference/data-types
  3. The function should take in arguments of type String. As the input is TabSeparated, all arguments are strings.
  4. The function will be called for each line of input. Something like this:
    def sum_udf(lhs, rhs):
        return int(lhs) + int(rhs)
    
    for line in sys.stdin:
        args = line.strip().split('\t')
        lhs = args[0]
        rhs = args[1]
        print(sum_udf(lhs, rhs))
        sys.stdout.flush()
    
  5. The function should be pure python function. You SHOULD import all python modules used IN THE FUNCTION.
    def func_use_json(arg):
        import json
        ...
    
  6. Python interpertor used is the same as the one used to run the script. Get from sys.executable

see also: test_udf.py.

🗂️ Streaming Query

Process large datasets with constant memory usage through chunked streaming.

from chdb import session as chs

sess = chs.Session()

# Example 1: Basic example of using streaming query
rows_cnt = 0
with sess.send_query("SELECT * FROM numbers(200000)", "CSV") as stream_result:
    for chunk in stream_result:
        rows_cnt += chunk.rows_read()

print(rows_cnt) # 200000

# Example 2: Manual iteration with fetch()
rows_cnt = 0
stream_result = sess.send_query("SELECT * FROM numbers(200000)", "CSV")
while True:
    chunk = stream_result.fetch()
    if chunk is None:
        break
    rows_cnt += chunk.rows_read()

print(rows_cnt) # 200000

# Example 3: Early cancellation demo
rows_cnt = 0
stream_result = sess.send_query("SELECT * FROM numbers(200000)", "CSV")
while True:
    chunk = stream_result.fetch()
    if chunk is None:
        break
    if rows_cnt > 0:
        stream_result.cancel()
        break
    rows_cnt += chunk.rows_read()

print(rows_cnt) # 65409

sess.close()

For more details, see test_streaming_query.py.

🗂️ Python Table Engine

Query on Pandas DataFrame

import chdb
import pandas as pd
df = pd.DataFrame(
    {
        "a": [1, 2, 3, 4, 5, 6],
        "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"],
        "dict_col": [
            {'id': 1, 'tags': ['urgent', 'important'], 'metadata': {'created': '2024-01-01'}},
            {'id': 2, 'tags': ['normal'], 'metadata': {'created': '2024-02-01'}},
            {'id': 3, 'name': 'tom'},
            {'id': 4, 'value': '100'},
            {'id': 5, 'value': 101},
            {'id': 6, 'value': 102},
        ],
    }
)

chdb.query("SELECT b, sum(a) FROM Python(df) GROUP BY b ORDER BY b").show()
chdb.query("SELECT dict_col.id FROM Python(df) WHERE dict_col.value='100'").show()

Query on Arrow Table

import chdb
import pyarrow as pa
arrow_table = pa.table(
    {
        "a": [1, 2, 3, 4, 5, 6],
        "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"],
        "dict_col": [
            {'id': 1, 'value': 'tom'},
            {'id': 2, 'value': 'jerry'},
            {'id': 3, 'value': 'auxten'},
            {'id': 4, 'value': 'tom'},
            {'id': 5, 'value': 'jerry'},
            {'id': 6, 'value': 'auxten'},
        ],
    }
)

chdb.query("SELECT b, sum(a) FROM Python(arrow_table) GROUP BY b ORDER BY b").show()
chdb.query("SELECT dict_col.id FROM Python(arrow_table) WHERE dict_col.value='tom'").show()

Query on chdb.PyReader class instance

  1. You must inherit from chdb.PyReader class and implement the read method.
  2. The read method should:
    1. return a list of lists, the first demension is the column, the second dimension is the row, the columns order should be the same as the first arg col_names of read.
    2. return an empty list when there is no more data to read.
    3. be stateful, the cursor should be updated in the read method.
  3. An optional get_schema method can be implemented to return the schema of the table. The prototype is def get_schema(self) -> List[Tuple[str, str]]:, the return value is a list of tuples, each tuple contains the column name and the column type. The column type should be one of the following: https://clickhouse.com/docs/en/sql-reference/data-types
import chdb

class myReader(chdb.PyReader):
    def __init__(self, data):
        self.data = data
        self.cursor = 0
        super().__init__(data)

    def read(self, col_names, count):
        print("Python func read", col_names, count, self.cursor)
        if self.cursor >= len(self.data["a"]):
            self.cursor = 0
            return []
        block = [self.data[col] for col in col_names]
        self.cursor += len(block[0])
        return block

    def get_schema(self):
        return [
            ("a", "int"),
            ("b", "str"),
            ("dict_col", "json")
        ]

reader = myReader(
    {
        "a": [1, 2, 3, 4, 5, 6],
        "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"],
        "dict_col": [
            {'id': 1, 'tags': ['urgent', 'important'], 'metadata': {'created': '2024-01-01'}},
            {'id': 2, 'tags': ['normal'], 'metadata': {'created': '2024-02-01'}},
            {'id': 3, 'name': 'tom'},
            {'id': 4, 'value': '100'},
            {'id': 5, 'value': 101},
            {'id': 6, 'value': 102}
        ],
    }
)

chdb.query("SELECT b, sum(a) FROM Python(reader) GROUP BY b ORDER BY b").show()
chdb.query("SELECT dict_col.id FROM Python(reader) WHERE dict_col.value='100'").show()

see also: test_query_py.py and test_query_json.py.

JSON Type Inference

chDB automatically converts Python dictionary objects to ClickHouse JSON types from these sources:

  1. Pandas DataFrame

    • Columns with object dtype are sampled (default 10,000 rows) to detect JSON structures.
    • Control sampling via SQL settings:
      SET pandas_analyze_sample = 10000  -- Default sampling
      SET pandas_analyze_sample = 0      -- Force String type
      SET pandas_analyze_sample = -1     -- Force JSON type
      
    • Columns are converted to String if sampling finds non-dictionary values.
  2. Arrow Table

    • struct type columns are automatically mapped to JSON columns.
    • Nested structures preserve type information.
  3. chdb.PyReader

    • Implement custom schema mapping in get_schema():
      def get_schema(self):
          return [
              ("c1", "JSON"),  # Explicit JSON mapping
              ("c2", "String")
          ]
      
    • Column types declared as "JSON" will bypass auto-detection.

When converting Python dictionary objects to JSON columns:

  1. Nested Structures

    • Recursively process nested dictionaries, lists, tuples and NumPy arrays.
  2. Primitive Types

    • Automatic type recognition for basic types such as integers, floats, strings, and booleans, and more.
  3. Complex Objects

    • Non-primitive types will be converted to strings.

Limitations

  1. Column types supported: pandas.Series, pyarrow.array, chdb.PyReader
  2. Data types supported: Int, UInt, Float, String, Date, DateTime, Decimal
  3. Python Object type will be converted to String
  4. Pandas DataFrame performance is all of the best, Arrow Table is better than PyReader

For more examples, see examples and tests.


Demos and Examples

Benchmark

Documentation

Events

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. There are something you can help:

  • Help test and report bugs
  • Help improve documentation
  • Help improve code quality and performance

Bindings

We welcome bindings for other languages, please refer to bindings for more details.

Paper

License

Apache 2.0, see LICENSE for more information.

Acknowledgments

chDB is mainly based on ClickHouse [^1] for trade mark and other reasons, I named it chDB.

Contact


[^1]: ClickHouse® is a trademark of ClickHouse Inc. All trademarks, service marks, and logos mentioned or depicted are the property of their respective owners. The use of any third-party trademarks, brand names, product names, and company names does not imply endorsement, affiliation, or association with the respective owners.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

chdb-3.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl (158.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp313-cp313-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

chdb-3.4.0-cp313-cp313-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

chdb-3.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp312-cp312-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl (158.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp312-cp312-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

chdb-3.4.0-cp312-cp312-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

chdb-3.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp311-cp311-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl (158.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp311-cp311-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

chdb-3.4.0-cp311-cp311-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

chdb-3.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp310-cp310-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl (158.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp310-cp310-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

chdb-3.4.0-cp310-cp310-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

chdb-3.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp39-cp39-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl (158.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp39-cp39-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

chdb-3.4.0-cp39-cp39-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

chdb-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (122.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

chdb-3.4.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

chdb-3.4.0-cp38-cp38-macosx_11_0_arm64.whl (86.6 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

chdb-3.4.0-cp38-cp38-macosx_10_15_x86_64.whl (95.1 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

File details

Details for the file chdb-3.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 74366354fa7377a9ce29ba9098d337daabfd322c63f5af6b004bf6de900b3d51
MD5 bea5e9dd1ed486ea0776af8f1fbb4fe4
BLAKE2b-256 d393943e652898e3facbde019999f8079d24dccbda20c103f85a62ebf92dac72

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 248009094e64dfb475c713363062758821fc3f338040355eae19fc45439acad4
MD5 b673ec17a096b3b2c19233a1a4cd5725
BLAKE2b-256 a917010c594a80b5ccbb8d98ebb751469e1cdedf71e61045843602031f7583fd

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fae1b6d2a4daeff0b60a5dd9d140b5dbcf4db3780292764550fe1a65c3e7b56
MD5 8cebe1803e317be54fe4993e1c42625e
BLAKE2b-256 4df45c80be391bb5a087ecea5e98808a7e3e597fbfe920f42ab7424019faa7c8

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4af75280ba04313c81f7ac2648e1163f43336352f5676eb484aca4b5ecb06085
MD5 c6063afe0f02e4eaa362038deca617e7
BLAKE2b-256 1b4eaffd4bdf7337c1e56df62b4a0632b907f4394af5940854caf499bd589fd5

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 0a1bd4dd5cff4c40853bc9aa646967da432f1132f5d9d85ab43495eb72c243da
MD5 72f7406619eac5d581ea6984942d18e9
BLAKE2b-256 2a7dfdf576fbfc8bdf26e63204eb1e2203a78ff41958ab309c956829da0cd452

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp312-cp312-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp312-cp312-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9de270221e0dafb66086050afc7ff0e9caafe8ea516e6d395a7860b378fac6d1
MD5 f3cc910efbccf02dfde96a57f5c01c91
BLAKE2b-256 0e7de3ad1e77242cb8acdf11ad9749127dbdbad5fc6766de48a5f31d0ac4bf8a

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe756b13cd2869ac503c0b096054a51b2a9068444c71a2b911dcb6da66e5cb3f
MD5 103cfeeb1c6be2176aff7b9e483fe5dd
BLAKE2b-256 06381930be1ed79aed4c24c13734ad82dbf0a67927a5289904c6e94cc246c7f6

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5a53558e04e2345454d60abffc04151f5815cdd1284e006cc20f69b909dba15b
MD5 4e87862f53336c511d5912ffd27aa47f
BLAKE2b-256 931f3bd0a1e59b5149015903d577576cca3e9aff9da3af9c73cff7c162c50aac

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ba2c4fec8e3aac0650fc651118a7b53c1ccb348a5fa1dd88d7cad9d039816b49
MD5 dba0d91072356a7815e74181cc65704b
BLAKE2b-256 25884f981582e5cda609ba4c823772588d5d5a386def3c3aac85b9675da5fe4b

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp311-cp311-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp311-cp311-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b54d7f5dfacea9e9ce4a83a18bd4fb1c44a6de1b44cc1d9feb77f405101d1756
MD5 d48a77d0f316a53155dff95244d5ca73
BLAKE2b-256 9ae9f577f6da854abcbc05b18e76ab03183083cb6ee5dda4bd676d5dda58f39e

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 057945517ec492f0435561f5f8ba29cae7eaaed656c25034f95a902cec99e51a
MD5 c202fc78b6ada95ca403aa0d68ab509f
BLAKE2b-256 7c465da42c6d4b677816cefc2b266b8ef82566de137aab379ee9bc187ecada21

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6ffd1eb11a3c99130557989f2b1a4b36be4c6864b03e8cb2c80cb5df3d2e857a
MD5 5417ee56b2559310e2e50079e3fe717b
BLAKE2b-256 bfbf09a17df9136772338766b57e5bc9eb36778668a5c59f503c4f4dc616415f

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 7539c2fc8cef81f07e4a7db5a17b6c33fbfaf7be0355223f178ec6c5e4f89ce0
MD5 ca0e7a58c1fd2dff70fb3eb9de6290b0
BLAKE2b-256 306586b9aeef74d238c56a0a3116b25afde304ef0e7f189ea2438debfa3e749e

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp310-cp310-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp310-cp310-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 780f8fae449001693fa14e60d6f4e102987ca0764a6605b8de245ffa96d9663b
MD5 3294f111ddfec63c30e5825f9390c6aa
BLAKE2b-256 85668d32ca27390add28ae1f6f3bbdc3e2fbbb5d7e3643e18f62a34eb942e6a6

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c172e161c46e1d1620cb98609baa10e361d02e96497e152f0725429058bcbd6
MD5 b0224b141406cb53dabe14f63c21f443
BLAKE2b-256 8f1faa972faba4b780f3a5b0520349b121b274c55958695080789ab8d4cff30f

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b4712d12fe280ddc33ce24b4d6f9126c2a2da42f9b5014bb3e1a399c16ec79fd
MD5 a2f6e6e0c7ab5fa408bd6054b06cad8b
BLAKE2b-256 0c8da861bff5fdc6b514316a0b5a8d9857787eb0227e81819e95f846d2f7c67c

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a092c08521212c96015536ca198160aa322bc99a50f4b3c62a9bc44184c3399d
MD5 e4f11949d20da70c24621df9cea7f00d
BLAKE2b-256 7c329da2872f3aa9143e51e9f5cba38dd7f34eb38b929dfd8ae501f640714bd6

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp39-cp39-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp39-cp39-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 431db4c80b2caa44d04e7062d3af9c1549bc80e36a719fb23af876c88b3e46dc
MD5 aeaca5fbbb65ce088810570ba8c1e7e5
BLAKE2b-256 6a855e9f5de5a4e4498c7ff801ff6e64a504f65bc4fb497c03084344c2531b56

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: chdb-3.4.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 86.6 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for chdb-3.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 296c3e52f1455af88b601da4dc30060c93ca56c5c629f7fc1e563ef019d5e7ee
MD5 1417af09db72ea433e62fb2bd18e066e
BLAKE2b-256 4845197bb555e874d53fad4c4d0b9678f9389b9f377f541c07fad338504de7f5

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 698da771203d792baa35e9589d465a100167a4ffe5986a722275a440b8dbba9f
MD5 b05cd556bb6372148640bd586f0d6ca6
BLAKE2b-256 4bd66ee10d2f9fab656364051fae613c3c0b852d144b5f0f22bf9d056bef7645

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 39e625ee3a9ef1a5a47bdd5fed0605b628cd2bf6170255650fae4e184e58027a
MD5 bd007af6f6b2e1ae829d641e71518c9d
BLAKE2b-256 8dcb0a67c41e3e521848b7c96e1a08fbd65aa137b4ac632d669ad30c1c94eb98

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de70f404a68bef8319daf0b86939d9a764a0e2ad7d5e2d7d530f4f7fd6d04655
MD5 8cb91035ab4e69a584247d0f7b1a5b74
BLAKE2b-256 cbc837b3f13565cf82f309577bf7122467f432df126a32b255456fa6f2288d36

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: chdb-3.4.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 86.6 MB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for chdb-3.4.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 041954146427266cce31f0bd171fea974b108e059c0cff6be0001c3de4f55295
MD5 e7c271a00f3ddfdd74db0d0e68a35f84
BLAKE2b-256 d03ce4875804b9f915558c1f6e2c194bca7ea17a00868d417256417d2ad32814

See more details on using hashes here.

File details

Details for the file chdb-3.4.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for chdb-3.4.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1e9c134d9e6722fccbd774f70d50c7ae0101a2d7ccd3201c3a0557c944fb04e8
MD5 dbccf54c82705cc4b4c17a431d679e0e
BLAKE2b-256 de767d71ed2ec0f14d4c07016e4b446ec723966f31479872232cc97a1888e0fb

See more details on using hashes here.

Supported by

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