From f70437cffadfa70688997715288a2efb6802e6af Mon Sep 17 00:00:00 2001 From: victor Date: Wed, 27 Aug 2025 16:15:50 +0800 Subject: [PATCH 1/9] update chdb docs --- docs/chdb/index.md | 38 +- docs/chdb/install/bun.md | 121 +++- docs/chdb/install/c.md | 336 ++++++++++- docs/chdb/install/go.md | 241 +++++++- docs/chdb/install/nodejs.md | 205 +++++-- docs/chdb/install/python.md | 904 +++++++++++++++++++++++----- docs/chdb/install/rust.md | 149 ++++- docs/chdb/reference/data-formats.md | 9 +- 8 files changed, 1725 insertions(+), 278 deletions(-) diff --git a/docs/chdb/index.md b/docs/chdb/index.md index 13c9e708bab..afba9812b6f 100644 --- a/docs/chdb/index.md +++ b/docs/chdb/index.md @@ -11,6 +11,14 @@ keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process'] chDB is a fast in-process SQL OLAP Engine powered by [ClickHouse](https://github.com/clickhouse/clickhouse). You can use it when you want to get the power of ClickHouse in a programming language without needing to connect to a ClickHouse server. +## Key Features {#key-features} + +- **In-process SQL OLAP Engine** - Powered by ClickHouse, no need to install ClickHouse server +- **Multiple data formats** - Input & Output support for Parquet, CSV, JSON, Arrow, ORC and [70+ more formats](/interfaces/formats) +- **Minimized data copy** - From C++ to Python with [python memoryview](https://docs.python.org/3/c-api/memoryview.html) +- **Rich Python Ecosystem Integration** - Native support for Pandas, Arrow, DB API 2.0, seamlessly fits into existing data science workflows +- **Zero dependencies** - No need for external database installations + ## What languages are supported by chDB? {#what-languages-are-supported-by-chdb} chDB has the following language bindings: @@ -20,14 +28,11 @@ chDB has the following language bindings: * [Rust](install/rust.md) * [NodeJS](install/nodejs.md) * [Bun](install/bun.md) - -## What input and output formats are supported? {#what-input-and-output-formats-are-supported} - -chDB supports Parquet, CSV, JSON, Apache Arrow, ORC, and [60+ more formats](/interfaces/formats). +* [C and C++](install/c.md) ## How do I get started? {#how-do-i-get-started} -* If you're using [Go](install/go.md), [Rust](install/rust.md), [NodeJS](install/nodejs.md), or [Bun](install/bun.md), take a look at the corresponding language pages. +* If you're using [Go](install/go.md), [Rust](install/rust.md), [NodeJS](install/nodejs.md), [Bun](install/bun.md) or [C and C++](install/c.md), take a look at the corresponding language pages. * If you're using Python, see the [getting started developer guide](getting-started.md). There are also guides showing how to do common tasks like: * [JupySQL](guides/jupysql.md) * [Querying Pandas](guides/querying-pandas.md) @@ -37,12 +42,6 @@ chDB supports Parquet, CSV, JSON, Apache Arrow, ORC, and [60+ more formats](/int * [Querying remote ClickHouse](guides/query-remote-clickhouse.md) * [Using clickhouse-local database](guides/clickhouse-local.md) - - ## An introductory video {#an-introductory-video} You can listen to a brief project introduction to chDB, courtesy of Alexey Milovidov, the original creator of ClickHouse: @@ -51,12 +50,25 @@ You can listen to a brief project introduction to chDB, courtesy of Alexey Milov +## Performance Benchmarks {#performance-benchmarks} + +chDB delivers exceptional performance across different scenarios: + +- **[ClickBench of embedded engines](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQXRoZW5hIChwYXJ0aXRpb25lZCkiOnRydWUsIkF0aGVuYSAoc2luZ2xlKSI6dHJ1ZSwiQXVyb3JhIGZvciBNeVNRTCI6dHJ1ZSwiQXVyb3JhIGZvciBQb3N0Z3JlU1FMIjp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIiOnRydWUsIkNpdHVzIjp0cnVlLCJjbGlja2hvdXNlLWxvY2FsIChwYXJ0aXRpb25lZCkiOnRydWUsImNsaWNraG91c2UtbG9jYWwgKHNpbmdsZSkiOnRydWUsIkNsaWNrSG91c2UiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoenN0ZCkiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQiOnRydWUsIkNsaWNrSG91c2UgKHdlYikiOnRydWUsIkNyYXRlREIiOnRydWUsIkRhdGFiZW5kIjp0cnVlLCJEYXRhRnVzaW9uIChzaW5nbGUpIjp0cnVlLCJBcGFjaGUgRG9yaXMiOnRydWUsIkRydWlkIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQpIjp0cnVlLCJEdWNrREIiOnRydWUsIkVsYXN0aWNzZWFyY2giOnRydWUsIkVsYXN0aWNzZWFyY2ggKHR1bmVkKSI6ZmFsc2UsIkdyZWVucGx1bSI6dHJ1ZSwiSGVhdnlBSSI6dHJ1ZSwiSHlkcmEiOnRydWUsIkluZm9icmlnaHQiOnRydWUsIktpbmV0aWNhIjp0cnVlLCJNYXJpYURCIENvbHVtblN0b3JlIjp0cnVlLCJNYXJpYURCIjpmYWxzZSwiTW9uZXREQiI6dHJ1ZSwiTW9uZ29EQiI6dHJ1ZSwiTXlTUUwgKE15SVNBTSkiOnRydWUsIk15U1FMIjp0cnVlLCJQaW5vdCI6dHJ1ZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2VsZWN0REIiOnRydWUsIlNpbmdsZVN0b3JlIjp0cnVlLCJTbm93Zmxha2UiOnRydWUsIlNRTGl0ZSI6dHJ1ZSwiU3RhclJvY2tzIjp0cnVlLCJUaW1lc2NhbGVEQiAoY29tcHJlc3Npb24pIjp0cnVlLCJUaW1lc2NhbGVEQiI6dHJ1ZX0sInR5cGUiOnsic3RhdGVsZXNzIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsIkphdmEiOmZhbHNlLCJjb2x1bW4tb3JpZW50ZWQiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQyI6ZmFsc2UsIlBvc3RncmVTUUwgY29tcGF0aWJsZSI6ZmFsc2UsIkNsaWNrSG91c2UgZGVyaXZhdGl2ZSI6ZmFsc2UsImVtYmVkZGVkIjp0cnVlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiUnVzdCI6ZmFsc2UsInNlYXJjaCI6ZmFsc2UsImRvY3VtZW50IjpmYWxzZSwidGltZS1zZXJpZXMiOmZhbHNlfSwibWFjaGluZSI6eyJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNS40eGxhcmdlLCA1MDBnYiBncDIiOnRydWUsIjE2IHRocmVhZHMiOnRydWUsIjIwIHRocmVhZHMiOnRydWUsIjI0IHRocmVhZHMiOnRydWUsIjI4IHRocmVhZHMiOnRydWUsIjMwIHRocmVhZHMiOnRydWUsIjQ4IHRocmVhZHMiOnRydWUsIjYwIHRocmVhZHMiOnRydWUsIm01ZC4yNHhsYXJnZSI6dHJ1ZSwiYzVuLjR4bGFyZ2UsIDIwMGdiIGdwMiI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDE1MDBnYiBncDIiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMjQiOnRydWUsIlMyIjp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZX0sImNsdXN0ZXJfc2l6ZSI6eyIxIjp0cnVlLCIyIjp0cnVlLCI0Ijp0cnVlLCI4Ijp0cnVlLCIxNiI6dHJ1ZSwiMzIiOnRydWUsIjY0Ijp0cnVlLCIxMjgiOnRydWUsInNlcnZlcmxlc3MiOnRydWUsInVuZGVmaW5lZCI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** - Comprehensive performance comparison +- **[chDB vs Pandas](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - DataFrame processing performance +- **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** - chDB vs Pandas, DuckDB, and Polars + +
+ DataFrame Benchmark Results +
+ ## About chDB {#about-chdb} - Read the full story about the birth of the chDB project on [Auxten's blog](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle) - Read about chDB and its use cases on the [Official ClickHouse Blog](https://clickhouse.com/blog/welcome-chdb-to-clickhouse) - Discover chDB in your browser using [codapi examples](https://antonz.org/trying-chdb/) +- More examples see (https://github.com/chdb-io/chdb/tree/main/examples) -## What license does it use? {#what-license-does-it-use} +## License {#license} -chDB is available under the Apache License, Version 2.0. +chDB is available under the Apache License, Version 2.0. See [LICENSE](https://github.com/chdb-io/chdb/blob/main/LICENSE.txt) for more information. diff --git a/docs/chdb/install/bun.md b/docs/chdb/install/bun.md index 16f2b86740a..4b1e4a06b53 100644 --- a/docs/chdb/install/bun.md +++ b/docs/chdb/install/bun.md @@ -1,55 +1,122 @@ --- -title: 'Installing chDB for Bun' +title: 'chDB for Bun' sidebar_label: 'Bun' slug: /chdb/install/bun -description: 'How to install chDB for Bun' -keywords: ['chdb', 'embedded', 'clickhouse-lite', 'bun', 'install'] +description: 'How to install and use chDB with Bun runtime' +keywords: ['chdb', 'bun', 'javascript', 'typescript', 'embedded', 'clickhouse', 'sql', 'olap'] --- -# Installing chDB for Bun +# chDB for Bun -## Requirements {#requirements} +chDB-bun provides experimental FFI (Foreign Function Interface) bindings for chDB, enabling you to run ClickHouse queries directly in your Bun applications with zero external dependencies. -Install [libchdb](https://github.com/chdb-io/chdb): +## Installation {#installation} + +### Step 1: Install System Dependencies {#install-system-dependencies} + +First, install the required system dependencies: + +#### Install libchdb {#install-libchdb} ```bash curl -sL https://lib.chdb.io | bash ``` -## Install {#install} +#### Install Build Tools {#install-build-tools} -See: [chdb-bun](https://github.com/chdb-io/chdb-bun) +You'll need either `gcc` or `clang` installed on your system: -## GitHub repository {#github-repository} +### Step 2: Install chDB-bun {#install-chdb-bun} -You can find the GitHub repository for the project at [chdb-io/chdb-bun](https://github.com/chdb-io/chdb-bun). +```bash +# Install from the GitHub repository +bun add github:chdb-io/chdb-bun + +# Or clone and build locally +git clone https://github.com/chdb-io/chdb-bun.git +cd chdb-bun +bun install +bun run build +``` ## Usage {#usage} -### Query(query, *format) (ephemeral) {#queryquery-format-ephemeral} +chDB-bun supports two query modes: ephemeral queries for one-time operations and persistent sessions for maintaining database state. + +### Ephemeral Queries {#ephemeral-queries} + +For simple, one-off queries that don't require persistent state: -```javascript +```typescript import { query } from 'chdb-bun'; -// Query (ephemeral) -var result = query("SELECT version()", "CSV"); -console.log(result); // 23.10.1.1 +// Basic query +const result = query("SELECT version()", "CSV"); +console.log(result); // "23.10.1.1" + +// Query with different output formats +const jsonResult = query("SELECT 1 as id, 'Hello' as message", "JSON"); +console.log(jsonResult); + +// Query with calculations +const mathResult = query("SELECT 2 + 2 as sum, pi() as pi_value", "Pretty"); +console.log(mathResult); + +// Query system information +const systemInfo = query("SELECT * FROM system.functions LIMIT 5", "CSV"); +console.log(systemInfo); ``` - -### Session.Query(query, *format) {#sessionqueryquery-format} - +### Persistent Sessions {#persistent-sessions} -```javascript -import { Session } from 'chdb-bun'; -const sess = new Session('./chdb-bun-tmp'); +For complex operations that require maintaining state across queries: -// Query Session (persistent) -sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV"); -var result = sess.query("SELECT hello()", "CSV"); -console.log(result); +```typescript +import { Session } from 'chdb-bun'; -// Before cleanup, you can find the database files in `./chdb-bun-tmp` +// Create a session with persistent storage +const sess = new Session('./chdb-bun-tmp'); -sess.cleanup(); // cleanup session, this will delete the database +try { + // Create a database and table + sess.query(` + CREATE DATABASE IF NOT EXISTS mydb; + CREATE TABLE IF NOT EXISTS mydb.users ( + id UInt32, + name String, + email String + ) ENGINE = MergeTree() ORDER BY id + `, "CSV"); + + // Insert data + sess.query(` + INSERT INTO mydb.users VALUES + (1, 'Alice', 'alice@example.com'), + (2, 'Bob', 'bob@example.com'), + (3, 'Charlie', 'charlie@example.com') + `, "CSV"); + + // Query the data + const users = sess.query("SELECT * FROM mydb.users ORDER BY id", "JSON"); + console.log("Users:", users); + + // Create and use custom functions + sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV"); + const greeting = sess.query("SELECT hello() as message", "Pretty"); + console.log(greeting); + + // Aggregate queries + const stats = sess.query(` + SELECT + COUNT(*) as total_users, + MAX(id) as max_id, + MIN(id) as min_id + FROM mydb.users + `, "JSON"); + console.log("Statistics:", stats); + +} finally { + // Always cleanup the session to free resources + sess.cleanup(); // This deletes the database files +} ``` diff --git a/docs/chdb/install/c.md b/docs/chdb/install/c.md index 8d5a914c1ac..a9c4b239c6e 100644 --- a/docs/chdb/install/c.md +++ b/docs/chdb/install/c.md @@ -1,46 +1,330 @@ --- -title: 'Installing chDB for C and C++' +title: 'chDB for C and C++' sidebar_label: 'C and C++' slug: /chdb/install/c -description: 'How to install chDB for C and C++' -keywords: ['chdb', 'embedded', 'clickhouse-lite', 'install'] +description: 'How to install and use chDB with C and C++' +keywords: ['chdb', 'c', 'cpp', 'embedded', 'clickhouse', 'sql', 'olap', 'api'] --- - -# Installing chDB for C and C++ - +# chDB for C and C++ -## Requirements {#requirements} +chDB provides a native C/C++ API for embedding ClickHouse functionality directly into your applications. The API supports both simple queries and advanced features like persistent connections and streaming query results. -Install [libchdb](https://github.com/chdb-io/chdb): +## Installation {#installation} + +### Step 1: Install libchdb {#install-libchdb} + +Install the chDB library on your system: ```bash curl -sL https://lib.chdb.io | bash ``` -## Usage {#usage} +### Step 2: Include Headers {#include-headers} + +Include the chDB header in your project: + +```c +#include +``` + +### Step 3: Link Library {#link-library} + +Compile and link your application with chDB: + +```bash +# C compilation +gcc -o myapp myapp.c -lchdb + +# C++ compilation +g++ -o myapp myapp.cpp -lchdb +``` + +## C Examples {#c-examples} + +### Basic Connection and Queries {#basic-connection-queries} + +```c +#include +#include + +int main() { + // Create connection arguments + char* args[] = {"chdb", "--path", "/tmp/chdb-data"}; + int argc = 3; + + // Connect to chDB + chdb_connection* conn = chdb_connect(argc, args); + if (!conn) { + printf("Failed to connect to chDB\n"); + return 1; + } + + // Execute a query + chdb_result* result = chdb_query(*conn, "SELECT version()", "CSV"); + if (!result) { + printf("Query execution failed\n"); + chdb_close_conn(conn); + return 1; + } + + // Check for errors + const char* error = chdb_result_error(result); + if (error) { + printf("Query error: %s\n", error); + } else { + // Get result data + char* data = chdb_result_buffer(result); + size_t length = chdb_result_length(result); + double elapsed = chdb_result_elapsed(result); + uint64_t rows = chdb_result_rows_read(result); + + printf("Result: %.*s\n", (int)length, data); + printf("Elapsed: %.3f seconds\n", elapsed); + printf("Rows: %llu\n", rows); + } + + // Cleanup + chdb_destroy_query_result(result); + chdb_close_conn(conn); + return 0; +} +``` + +### Streaming Queries {#streaming-queries} + +```c +#include +#include -Follow the instructions for [libchdb](https://github.com/chdb-io/chdb/blob/main/bindings.md) to get started. +int main() { + char* args[] = {"chdb", "--path", "/tmp/chdb-stream"}; + chdb_connection* conn = chdb_connect(3, args); + + if (!conn) { + printf("Failed to connect\n"); + return 1; + } + + // Start streaming query + chdb_result* stream_result = chdb_stream_query(*conn, + "SELECT number FROM system.numbers LIMIT 1000000", "CSV"); + + if (!stream_result) { + printf("Failed to start streaming query\n"); + chdb_close_conn(conn); + return 1; + } + + uint64_t total_rows = 0; + + // Process chunks + while (true) { + chdb_result* chunk = chdb_stream_fetch_result(*conn, stream_result); + if (!chunk) break; + + // Check if we have data in this chunk + size_t chunk_length = chdb_result_length(chunk); + if (chunk_length == 0) { + chdb_destroy_query_result(chunk); + break; // End of stream + } + + uint64_t chunk_rows = chdb_result_rows_read(chunk); + total_rows += chunk_rows; + + printf("Processed chunk: %llu rows, %zu bytes\n", chunk_rows, chunk_length); + + // Process the chunk data here + // char* data = chdb_result_buffer(chunk); + + chdb_destroy_query_result(chunk); + + // Progress reporting + if (total_rows % 100000 == 0) { + printf("Progress: %llu rows processed\n", total_rows); + } + } + + printf("Streaming complete. Total rows: %llu\n", total_rows); + + // Cleanup streaming query + chdb_destroy_query_result(stream_result); + chdb_close_conn(conn); + return 0; +} +``` -`chdb.h` +### Working with Different Data Formats {#data-formats} ```c -#pragma once -#include -#include - -extern "C" { -struct local_result -{ - char * buf; - size_t len; - void * _vec; // std::vector *, for freeing - double elapsed; - uint64_t rows_read; - uint64_t bytes_read; +#include +#include + +int main() { + char* args[] = {"chdb"}; + chdb_connection* conn = chdb_connect(1, args); + + const char* query = "SELECT number, toString(number) as str FROM system.numbers LIMIT 3"; + + // CSV format + chdb_result* csv_result = chdb_query(*conn, query, "CSV"); + printf("CSV Result:\n%.*s\n\n", + (int)chdb_result_length(csv_result), + chdb_result_buffer(csv_result)); + chdb_destroy_query_result(csv_result); + + // JSON format + chdb_result* json_result = chdb_query(*conn, query, "JSON"); + printf("JSON Result:\n%.*s\n\n", + (int)chdb_result_length(json_result), + chdb_result_buffer(json_result)); + chdb_destroy_query_result(json_result); + + // Pretty format + chdb_result* pretty_result = chdb_query(*conn, query, "Pretty"); + printf("Pretty Result:\n%.*s\n\n", + (int)chdb_result_length(pretty_result), + chdb_result_buffer(pretty_result)); + chdb_destroy_query_result(pretty_result); + + chdb_close_conn(conn); + return 0; +} +``` + +## C++ Example {#cpp-example} + +```cpp +#include +#include +#include +#include + +class ChDBConnection { +private: + chdb_connection* conn; + +public: + ChDBConnection(const std::vector& args) { + // Convert string vector to char* array + std::vector argv; + for (const auto& arg : args) { + argv.push_back(const_cast(arg.c_str())); + } + + conn = chdb_connect(argv.size(), argv.data()); + if (!conn) { + throw std::runtime_error("Failed to connect to chDB"); + } + } + + ~ChDBConnection() { + if (conn) { + chdb_close_conn(conn); + } + } + + std::string query(const std::string& sql, const std::string& format = "CSV") { + chdb_result* result = chdb_query(*conn, sql.c_str(), format.c_str()); + if (!result) { + throw std::runtime_error("Query execution failed"); + } + + const char* error = chdb_result_error(result); + if (error) { + std::string error_msg(error); + chdb_destroy_query_result(result); + throw std::runtime_error("Query error: " + error_msg); + } + + std::string data(chdb_result_buffer(result), chdb_result_length(result)); + + // Get query statistics + std::cout << "Query statistics:\n"; + std::cout << " Elapsed: " << chdb_result_elapsed(result) << " seconds\n"; + std::cout << " Rows read: " << chdb_result_rows_read(result) << "\n"; + std::cout << " Bytes read: " << chdb_result_bytes_read(result) << "\n"; + + chdb_destroy_query_result(result); + return data; + } }; -local_result * query_stable(int argc, char ** argv); -void free_result(local_result * result); +int main() { + try { + // Create connection + ChDBConnection db({{"chdb", "--path", "/tmp/chdb-cpp"}}); + + // Create and populate table + db.query("CREATE TABLE test (id UInt32, value String) ENGINE = MergeTree() ORDER BY id"); + db.query("INSERT INTO test VALUES (1, 'hello'), (2, 'world'), (3, 'chdb')"); + + // Query with different formats + std::cout << "CSV Results:\n" << db.query("SELECT * FROM test", "CSV") << "\n"; + std::cout << "JSON Results:\n" << db.query("SELECT * FROM test", "JSON") << "\n"; + + // Aggregation query + std::cout << "Count: " << db.query("SELECT COUNT(*) FROM test") << "\n"; + + } catch (const std::exception& e) { + std::cerr << "Error: " << e.what() << std::endl; + return 1; + } + + return 0; } ``` + +## Error Handling Best Practices {#error-handling} + +```c +#include +#include + +int safe_query_example() { + chdb_connection* conn = NULL; + chdb_result* result = NULL; + int return_code = 0; + + // Create connection + char* args[] = {"chdb"}; + conn = chdb_connect(1, args); + if (!conn) { + printf("Failed to create connection\n"); + return 1; + } + + // Execute query + result = chdb_query(*conn, "SELECT invalid_syntax", "CSV"); + if (!result) { + printf("Query execution failed\n"); + return_code = 1; + goto cleanup; + } + + // Check for query errors + const char* error = chdb_result_error(result); + if (error) { + printf("Query error: %s\n", error); + return_code = 1; + goto cleanup; + } + + // Process successful result + printf("Result: %.*s\n", + (int)chdb_result_length(result), + chdb_result_buffer(result)); + +cleanup: + if (result) chdb_destroy_query_result(result); + if (conn) chdb_close_conn(conn); + return return_code; +} +``` + +## GitHub Repository {#github-repository} + +- **Main Repository**: [chdb-io/chdb](https://github.com/chdb-io/chdb) +- **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb/issues) +- **C API Documentation**: [Bindings Documentation](https://github.com/chdb-io/chdb/blob/main/bindings.md) diff --git a/docs/chdb/install/go.md b/docs/chdb/install/go.md index 5521059d2ad..f50276b0ca9 100644 --- a/docs/chdb/install/go.md +++ b/docs/chdb/install/go.md @@ -1,30 +1,247 @@ --- -title: 'Installing chDB for Go' +title: 'chDB for Go' sidebar_label: 'Go' slug: /chdb/install/go -description: 'How to install chDB for Go' -keywords: ['chdb', 'embedded', 'clickhouse-lite', 'go', 'install'] +description: 'How to install and use chDB with Go' +keywords: ['chdb', 'go', 'golang', 'embedded', 'clickhouse', 'sql', 'olap'] --- -# Installing chDB for Go +# chDB for Go -## Requirements {#requirements} +chDB-go provides Go bindings for chDB, enabling you to run ClickHouse queries directly in your Go applications with zero external dependencies. -Install [libchdb](https://github.com/chdb-io/chdb): +## Installation {#installation} + +### Step 1: Install libchdb {#install-libchdb} + +First, install the chDB library: ```bash curl -sL https://lib.chdb.io | bash ``` -## Install {#install} +### Step 2: Install chdb-go {#install-chdb-go} -See: [chdb-go](https://github.com/chdb-io/chdb-go) +Install the Go package: -## GitHub repository {#github-repository} +```bash +go install github.com/chdb-io/chdb-go@latest +``` -You can find the GitHub repository for the project at [chdb-io/chdb-go](https://github.com/chdb-io/chdb-go). +Or add it to your `go.mod`: + +```bash +go get github.com/chdb-io/chdb-go +``` ## Usage {#usage} -- API Documentation: [High Level API](https://github.com/chdb-io/chdb-go/blob/main/chdb.md) -- Low Level API Documentation: [Low Level API](https://github.com/chdb-io/chdb-go/blob/main/lowApi.md) +### Command Line Interface {#cli} + +chDB-go includes a CLI for quick queries: + +```bash +# Simple query +./chdb-go "SELECT 123" + +# Interactive mode +./chdb-go + +# Interactive mode with persistent storage +./chdb-go --path /tmp/chdb +``` + +### Go Library - Quick Start {#quick-start} + +#### Stateless Queries {#stateless-queries} + +For simple, one-off queries: + +```go +package main + +import ( + "fmt" + "github.com/chdb-io/chdb-go" +) + +func main() { + // Execute a simple query + result, err := chdb.Query("SELECT version()", "CSV") + if err != nil { + panic(err) + } + fmt.Println(result) +} +``` + +#### Stateful Queries with Session {#stateful-queries} + +For complex queries with persistent state: + +```go +package main + +import ( + "fmt" + "github.com/chdb-io/chdb-go" +) + +func main() { + // Create a session with persistent storage + session, err := chdb.NewSession("/tmp/chdb-data") + if err != nil { + panic(err) + } + defer session.Cleanup() + + // Create database and table + _, err = session.Query(` + CREATE DATABASE IF NOT EXISTS testdb; + CREATE TABLE IF NOT EXISTS testdb.test_table ( + id UInt32, + name String + ) ENGINE = MergeTree() ORDER BY id + `, "") + + if err != nil { + panic(err) + } + + // Insert data + _, err = session.Query(` + INSERT INTO testdb.test_table VALUES + (1, 'Alice'), (2, 'Bob'), (3, 'Charlie') + `, "") + + if err != nil { + panic(err) + } + + // Query data + result, err := session.Query("SELECT * FROM testdb.test_table ORDER BY id", "Pretty") + if err != nil { + panic(err) + } + + fmt.Println(result) +} +``` + +#### SQL Driver Interface {#sql-driver} + +chDB-go implements Go's `database/sql` interface: + +```go +package main + +import ( + "database/sql" + "fmt" + _ "github.com/chdb-io/chdb-go/driver" +) + +func main() { + // Open database connection + db, err := sql.Open("chdb", "") + if err != nil { + panic(err) + } + defer db.Close() + + // Query with standard database/sql interface + rows, err := db.Query("SELECT COUNT(*) FROM url('https://datasets.clickhouse.com/hits/hits.parquet')") + if err != nil { + panic(err) + } + defer rows.Close() + + for rows.Next() { + var count int + err := rows.Scan(&count) + if err != nil { + panic(err) + } + fmt.Printf("Count: %d\n", count) + } +} +``` + +#### Query Streaming for Large Datasets {#query-streaming} + +For processing large datasets that don't fit in memory, use streaming queries: + +```go +package main + +import ( + "fmt" + "log" + "github.com/chdb-io/chdb-go/chdb" +) + +func main() { + // Create a session for streaming queries + session, err := chdb.NewSession("/tmp/chdb-stream") + if err != nil { + log.Fatal(err) + } + defer session.Cleanup() + + // Execute a streaming query for large dataset + streamResult, err := session.QueryStreaming( + "SELECT number, number * 2 as double FROM system.numbers LIMIT 1000000", + "CSV", + ) + if err != nil { + log.Fatal(err) + } + defer streamResult.Free() + + rowCount := 0 + + // Process data in chunks + for { + chunk := streamResult.GetNext() + if chunk == nil { + // No more data + break + } + + // Check for streaming errors + if err := streamResult.Error(); err != nil { + log.Printf("Streaming error: %v", err) + break + } + + rowsRead := chunk.RowsRead() + // You can process the chunk data here + // For example, write to file, send over network, etc. + fmt.Printf("Processed chunk with %d rows\n", rowsRead) + rowCount += int(rowsRead) + if rowCount%100000 == 0 { + fmt.Printf("Processed %d rows so far...\n", rowCount) + } + } + + fmt.Printf("Total rows processed: %d\n", rowCount) +} +``` + +**Benefits of Query Streaming:** +- **Memory efficient** - Process large datasets without loading everything into memory +- **Real-time processing** - Start processing data as soon as first chunk arrives +- **Cancellation support** - Can cancel long-running queries with `Cancel()` +- **Error handling** - Check for errors during streaming with `Error()` + +## API Documentation {#api-documentation} + +chDB-go provides both high-level and low-level APIs: + +- **[High-Level API Documentation](https://github.com/chdb-io/chdb-go/blob/main/chdb.md)** - Recommended for most use cases +- **[Low-Level API Documentation](https://github.com/chdb-io/chdb-go/blob/main/lowApi.md)** - For advanced use cases requiring fine-grained control + +## System Requirements {#requirements} + +- Go 1.21 or later +- Compatible with Linux, macOS diff --git a/docs/chdb/install/nodejs.md b/docs/chdb/install/nodejs.md index 63aa51da075..47cc55bd23c 100644 --- a/docs/chdb/install/nodejs.md +++ b/docs/chdb/install/nodejs.md @@ -1,65 +1,192 @@ --- -title: 'Installing chDB for NodeJS' -sidebar_label: 'NodeJS' +title: 'chDB for Node.js' +sidebar_label: 'Node.js' slug: /chdb/install/nodejs -description: 'How to install chDB for NodeJS' -keywords: ['chdb', 'embedded', 'clickhouse-lite', 'NodeJS', 'install'] +description: 'How to install and use chDB with Node.js' +keywords: ['chdb', 'nodejs', 'javascript', 'embedded', 'clickhouse', 'sql', 'olap'] --- -# Installing chDB for NodeJS +# chDB for Node.js -## Requirements {#requirements} +chDB-node provides Node.js bindings for chDB, enabling you to run ClickHouse queries directly in your Node.js applications with zero external dependencies. -Install [libchdb](https://github.com/chdb-io/chdb): +## Installation {#installation} ```bash -curl -sL https://lib.chdb.io | bash +npm install chdb ``` -## Install {#install} +## Usage {#usage} -```bash -npm i chdb -``` +chDB-node supports two query modes: standalone queries for simple operations and session-based queries for maintaining database state. -## GitHub repository {#github-repository} +### Standalone Queries {#standalone-queries} -You can find the GitHub repository for the project at [chdb-io/chdb-node](https://github.com/chdb-io/chdb-node). +For simple, one-off queries that don't require persistent state: -## Usage {#usage} +```javascript +const { query } = require("chdb"); -You can leverage the power of chdb in your NodeJS applications by importing and using the chdb-node module: +// Basic query +const result = query("SELECT version()", "CSV"); +console.log("ClickHouse version:", result); -```javascript -const { query, Session } = require("chdb"); +// Query with multiple columns +const multiResult = query("SELECT 'Hello' as greeting, 'chDB' as engine, 42 as answer", "CSV"); +console.log("Multi-column result:", multiResult); -var ret; +// Mathematical operations +const mathResult = query("SELECT 2 + 2 as sum, pi() as pi_value", "JSON"); +console.log("Math result:", mathResult); -// Test standalone query -ret = query("SELECT version(), 'Hello chDB', chdb()", "CSV"); -console.log("Standalone Query Result:", ret); +// System information +const systemInfo = query("SELECT * FROM system.functions LIMIT 5", "Pretty"); +console.log("System functions:", systemInfo); +``` -// Test session query -// Create a new session instance -const session = new Session("./chdb-node-tmp"); -ret = session.query("SELECT 123", "CSV") -console.log("Session Query Result:", ret); -ret = session.query("CREATE DATABASE IF NOT EXISTS testdb;" + - "CREATE TABLE IF NOT EXISTS testdb.testtable (id UInt32) ENGINE = MergeTree() ORDER BY id;"); +### Session-Based Queries {#session-based-queries} -session.query("USE testdb; INSERT INTO testtable VALUES (1), (2), (3);") +```javascript +const { Session } = require("chdb"); + +// Create a session with persistent storage +const session = new Session("./chdb-node-data"); + +try { + // Create database and table + session.query(` + CREATE DATABASE IF NOT EXISTS myapp; + CREATE TABLE IF NOT EXISTS myapp.users ( + id UInt32, + name String, + email String, + created_at DateTime DEFAULT now() + ) ENGINE = MergeTree() ORDER BY id + `); + + // Insert sample data + session.query(` + INSERT INTO myapp.users (id, name, email) VALUES + (1, 'Alice', 'alice@example.com'), + (2, 'Bob', 'bob@example.com'), + (3, 'Charlie', 'charlie@example.com') + `); + + // Query the data with different formats + const csvResult = session.query("SELECT * FROM myapp.users ORDER BY id", "CSV"); + console.log("CSV Result:", csvResult); + + const jsonResult = session.query("SELECT * FROM myapp.users ORDER BY id", "JSON"); + console.log("JSON Result:", jsonResult); + + // Aggregate queries + const stats = session.query(` + SELECT + COUNT(*) as total_users, + MAX(id) as max_id, + MIN(created_at) as earliest_signup + FROM myapp.users + `, "Pretty"); + console.log("User Statistics:", stats); + +} finally { + // Always cleanup the session + session.cleanup(); // This deletes the database files +} +``` -ret = session.query("SELECT * FROM testtable;") -console.log("Session Query Result:", ret); +### Processing External Data {#processing-external-data} -// Clean up the session -session.cleanup(); +```javascript +const { Session } = require("chdb"); + +const session = new Session("./data-processing"); + +try { + // Process CSV data from URL + const result = session.query(` + SELECT + COUNT(*) as total_records, + COUNT(DISTINCT "UserID") as unique_users + FROM url('https://datasets.clickhouse.com/hits/hits.csv', 'CSV') + LIMIT 1000 + `, "JSON"); + + console.log("External data analysis:", result); + + // Create table from external data + session.query(` + CREATE TABLE web_analytics AS + SELECT * FROM url('https://datasets.clickhouse.com/hits/hits.csv', 'CSV') + LIMIT 10000 + `); + + // Analyze the imported data + const analysis = session.query(` + SELECT + toDate("EventTime") as date, + COUNT(*) as events, + COUNT(DISTINCT "UserID") as unique_users + FROM web_analytics + GROUP BY date + ORDER BY date + LIMIT 10 + `, "Pretty"); + + console.log("Daily analytics:", analysis); + +} finally { + session.cleanup(); +} ``` -## Build from source {#build-from-source} +## Error Handling {#error-handling} -```bash -npm run libchdb -npm install -npm run test +Always handle errors appropriately when working with chDB: + +```javascript +const { query, Session } = require("chdb"); + +// Error handling for standalone queries +function safeQuery(sql, format = "CSV") { + try { + const result = query(sql, format); + return { success: true, data: result }; + } catch (error) { + console.error("Query error:", error.message); + return { success: false, error: error.message }; + } +} + +// Example usage +const result = safeQuery("SELECT invalid_syntax"); +if (result.success) { + console.log("Query result:", result.data); +} else { + console.log("Query failed:", result.error); +} + +// Error handling for sessions +function safeSessionQuery() { + const session = new Session("./error-test"); + + try { + // This will throw an error due to invalid syntax + const result = session.query("CREATE TABLE invalid syntax", "CSV"); + console.log("Unexpected success:", result); + } catch (error) { + console.error("Session query error:", error.message); + } finally { + // Always cleanup, even if an error occurred + session.cleanup(); + } +} + +safeSessionQuery(); ``` + +## GitHub Repository {#github-repository} + +- **GitHub Repository**: [chdb-io/chdb-node](https://github.com/chdb-io/chdb-node) +- **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb-node/issues) +- **NPM Package**: [chdb on npm](https://www.npmjs.com/package/chdb) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index 776d15fffa5..3fe6b9f12e2 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -6,252 +6,848 @@ description: 'How to install chDB for Python' keywords: ['chdb', 'embedded', 'clickhouse-lite', 'python', 'install'] --- -# Installing chDB for Python - ## Requirements {#requirements} -Python 3.8+ on macOS and Linux (x86_64 and ARM64) +- Python 3.8+ +- Supported platforms: macOS and Linux (x86_64 and ARM64) -## Install {#install} +## Installation {#install} ```bash pip install chdb ``` -## Usage {#usage} +## Usage -CLI example: +### Command Line Interface -```python -python3 -m chdb [SQL] [OutputFormat] -``` +Run SQL queries directly from the command line: -```python +```bash +# Basic query python3 -m chdb "SELECT 1, 'abc'" Pretty + +# Query with formatting +python3 -m chdb "SELECT version()" JSON ``` -Python file example: +### Basic Python Usage ```python import chdb -res = chdb.query("SELECT 1, 'abc'", "CSV") -print(res, end="") +# Simple query +result = chdb.query("SELECT 1 as id, 'Hello World' as message", "CSV") +print(result) + +# Get query statistics +print(f"Rows read: {result.rows_read()}") +print(f"Bytes read: {result.bytes_read()}") +print(f"Execution time: {result.elapsed()} seconds") ``` -Queries can return data using any [supported format](/interfaces/formats) as well as `Dataframe` and `Debug`. +### Connection-Based API (Recommended) -## GitHub repository {#github-repository} +For better resource management and performance: -You can find the GitHub repository for the project at [chdb-io/chdb](https://github.com/chdb-io/chdb). +```python +import chdb -## Data Input {#data-input} +# Create connection (in-memory by default) +conn = chdb.connect(":memory:") +# Or use file-based: conn = chdb.connect("mydata.db") -The following methods are available to access on-disk and in-memory data formats: +# Create cursor for query execution +cur = conn.cursor() -### Query On File (Parquet, CSV, JSON, Arrow, ORC and 60+) {#query-on-file-parquet-csv-json-arrow-orc-and-60} +# Execute queries +cur.execute("SELECT number, toString(number) as str FROM system.numbers LIMIT 3") -You can execute SQL and return desired format data. +# Fetch results in different ways +print(cur.fetchone()) # Single row: (0, '0') +print(cur.fetchmany(2)) # Multiple rows: ((1, '1'), (2, '2')) -```python -import chdb -res = chdb.query('select version()', 'Pretty'); print(res) +# Get metadata +print(cur.column_names()) # ['number', 'str'] +print(cur.column_types()) # ['UInt64', 'String'] + +# Use cursor as iterator +for row in cur: + print(row) + +# Always close resources +cur.close() +conn.close() ``` -**Work with Parquet or CSV** + +## Data Input Methods {#data-input} + +### File-Based Data Sources + +chDB supports 70+ data formats for direct file querying: ```python -# 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, elapsed {res.elapsed()} seconds") +import chdb + +# Query Parquet files +result = chdb.query(""" + SELECT customer_id, sum(amount) as total + FROM file('sales.parquet', Parquet) + GROUP BY customer_id + ORDER BY total DESC + LIMIT 10 +""", 'JSONEachRow') + +# Query CSV with headers +result = chdb.query(""" + SELECT * FROM file('data.csv', CSVWithNames) + WHERE column1 > 100 +""", 'DataFrame') + +# Multiple file formats +result = chdb.query(""" + SELECT * FROM file('logs*.jsonl', JSONEachRow) + WHERE timestamp > '2024-01-01' +""", 'Pretty') ``` -**Pandas DataFrame output** +### Output Format Examples + ```python -# See more in https://clickhouse.com/docs/interfaces/formats -chdb.query('select * from file("data.parquet", Parquet)', 'Dataframe') +# DataFrame for analysis +df = chdb.query('SELECT * FROM system.numbers LIMIT 5', 'DataFrame') +print(type(df)) # + +# Arrow Table for interoperability +arrow_table = chdb.query('SELECT * FROM system.numbers LIMIT 5', 'ArrowTable') +print(type(arrow_table)) # + +# JSON for APIs +json_result = chdb.query('SELECT version()', 'JSON') +print(json_result) + +# Pretty format for debugging +pretty_result = chdb.query('SELECT * FROM system.numbers LIMIT 3', 'Pretty') +print(pretty_result) ``` -### Query on table (Pandas DataFrame, Parquet file/bytes, Arrow bytes) {#query-on-table-pandas-dataframe-parquet-filebytes-arrow-bytes} +### DataFrame Operations {#dataframe-operations} -**Query On Pandas DataFrame** +#### Legacy DataFrame API ```python import chdb.dataframe as cdf import pandas as pd -# Join 2 DataFrames + +# Join multiple 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')) + +result_df = cdf.query( + sql="SELECT * FROM __tbl1__ t1 JOIN __tbl2__ t2 ON t1.a = t2.c", + tbl1=df1, + tbl2=df2 +) +print(result_df) + +# Query the result DataFrame +summary = result_df.query('SELECT b, sum(a) FROM __table__ GROUP BY b') +print(summary) ``` -### Query with stateful session {#query-with-stateful-session} +#### Python Table Engine (Recommended) - Sessions will keep the state of query. All DDL and DML state will be kept in a directory. Directory path can be passed in as an argument. If it is not passed, a temporary directory will be created. +```python +import chdb +import pandas as pd +import pyarrow as pa + +# Query Pandas DataFrame directly +df = pd.DataFrame({ + "customer_id": [1, 2, 3, 1, 2], + "product": ["A", "B", "A", "C", "A"], + "amount": [100, 200, 150, 300, 250], + "metadata": [ + {'category': 'electronics', 'priority': 'high'}, + {'category': 'books', 'priority': 'low'}, + {'category': 'electronics', 'priority': 'medium'}, + {'category': 'clothing', 'priority': 'high'}, + {'category': 'books', 'priority': 'low'} + ] +}) + +# Direct DataFrame querying with JSON support +result = chdb.query(""" + SELECT + customer_id, + sum(amount) as total_spent, + metadata.category as category + FROM Python(df) + WHERE metadata.priority = 'high' + GROUP BY customer_id, metadata.category + ORDER BY total_spent DESC +""").show() + +# Query Arrow Table +arrow_table = pa.table({ + "id": [1, 2, 3, 4], + "name": ["Alice", "Bob", "Charlie", "David"], + "scores": [[95, 87], [78, 92], [88, 95], [92, 89]] +}) + +chdb.query(""" + SELECT name, arraySum(scores) as total_score + FROM Python(arrow_table) + ORDER BY total_score DESC +""").show() +``` -If the path is not specified, the temporary directory will be deleted when the Session object is deleted. Otherwise, the path will be kept. +### Stateful Sessions {#stateful-sessions} -Note that the default database is `_local` and the default engine is `Memory` which means all data will be stored in memory. If you want to store data in disk, you should create another database. +Sessions maintain query state across multiple operations, enabling complex workflows: ```python -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;" +from chdb import session + +# Temporary session (auto-cleanup) +sess = session.Session() + +# Or persistent session with specific path +# sess = session.Session("/path/to/data") + +# Create database and tables +sess.query("CREATE DATABASE IF NOT EXISTS analytics ENGINE = Atomic") +sess.query("USE analytics") + +sess.query(""" + CREATE TABLE sales ( + id UInt64, + product String, + amount Decimal(10,2), + sale_date Date + ) ENGINE = MergeTree() + ORDER BY (sale_date, id) +""") + +# Insert data +sess.query(""" + INSERT INTO sales VALUES + (1, 'Laptop', 999.99, '2024-01-15'), + (2, 'Mouse', 29.99, '2024-01-16'), + (3, 'Keyboard', 79.99, '2024-01-17') +""") + +# Create materialized views +sess.query(""" + CREATE MATERIALIZED VIEW daily_sales AS + SELECT + sale_date, + count() as orders, + sum(amount) as revenue + FROM sales + GROUP BY sale_date +""") + +# Query the view +result = sess.query("SELECT * FROM daily_sales ORDER BY sale_date", "Pretty") +print(result) + +# Session automatically manages resources +sess.close() # Optional - auto-closed when object is deleted +``` + +### Advanced Session Features + +```python +# Session with custom settings +sess = session.Session( + path="/tmp/analytics_db", + ) -print("Select from view:\n") -print(sess.query("SELECT * FROM db_xxx.view_xxx", "Pretty")) + +# Batch operations +sess.query("BEGIN TRANSACTION") +try: + sess.query("INSERT INTO sales VALUES (4, 'Monitor', 299.99, '2024-01-18')") + sess.query("INSERT INTO sales VALUES (5, 'Speakers', 89.99, '2024-01-18')") + sess.query("COMMIT") +except Exception as e: + sess.query("ROLLBACK") + print(f"Transaction failed: {e}") + +# Query performance optimization +result = sess.query(""" + SELECT product, sum(amount) as total + FROM sales + GROUP BY product + ORDER BY total DESC + SETTINGS max_threads = 4 +""", "JSON") ``` See also: [test_stateful.py](https://github.com/chdb-io/chdb/blob/main/tests/test_stateful.py). -### Query with Python DB-API 2.0 {#query-with-python-db-api-20} +### Python DB-API 2.0 Interface {#python-db-api-20} + +Standard database interface for compatibility with existing Python applications: ```python 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() + +# Check driver information +print(f"chDB driver version: {dbapi.get_client_info()}") + +# Create connection +conn = dbapi.connect() +cursor = conn.cursor() + +# Execute queries with parameters +cursor.execute(""" + SELECT number, number * ? as doubled + FROM system.numbers + LIMIT ? +""", (2, 5)) + +# Get metadata +print("Column descriptions:", cursor.description) +print("Row count:", cursor.rowcount) + +# Fetch results +print("First row:", cursor.fetchone()) +print("Next 2 rows:", cursor.fetchmany(2)) + +# Fetch remaining rows +for row in cursor.fetchall(): + print("Row:", row) + +# Batch operations +data = [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')] +cursor.executemany( + "INSERT INTO temp_users (id, name) VALUES (?, ?)", + data +) ``` -### Query with UDF (User Defined Functions) {#query-with-udf-user-defined-functions} +### User Defined Functions (UDF) {#user-defined-functions} + +Extend SQL with custom Python functions: + +#### Basic UDF Usage ```python from chdb.udf import chdb_udf from chdb import query +# Simple mathematical function @chdb_udf() -def sum_udf(lhs, rhs): - return int(lhs) + int(rhs) +def add_numbers(a, b): + return int(a) + int(b) -print(query("select sum_udf(12,22)")) +# String processing function +@chdb_udf() +def reverse_string(text): + return text[::-1] + +# JSON processing function +@chdb_udf() +def extract_json_field(json_str, field): + import json + try: + data = json.loads(json_str) + return str(data.get(field, '')) + except: + return '' + +# Use UDFs in queries +result = query(""" + SELECT + add_numbers('10', '20') as sum_result, + reverse_string('hello') as reversed, + extract_json_field('{"name": "John", "age": 30}', 'name') as name +""") +print(result) ``` -Some notes on the chDB Python UDF (User Defined Function) decorator. -1. The function should be stateless. 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](/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. Example: - ```python - 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 a pure Python function. You should import all Python modules used **inside the function**. - ```python - def func_use_json(arg): - import json - ... - ``` -6. The Python interpreter used is the same as the one used to run the script. You can get it from `sys.executable`. - -see also: [test_udf.py](https://github.com/chdb-io/chdb/blob/main/tests/test_udf.py). - -### Python table engine {#python-table-engine} - -### Query on Pandas DataFrame {#query-on-pandas-dataframe} +#### Advanced UDF with Custom Return Types ```python -import chdb -import pandas as pd -df = pd.DataFrame( - { - "a": [1, 2, 3, 4, 5, 6], - "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"], - } -) +# UDF with specific return type +@chdb_udf(return_type="Float64") +def calculate_bmi(height_str, weight_str): + height = float(height_str) / 100 # Convert cm to meters + weight = float(weight_str) + return weight / (height * height) + +# UDF for data validation +@chdb_udf(return_type="UInt8") +def is_valid_email(email): + import re + pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' + return 1 if re.match(pattern, email) else 0 + +# Use in complex queries +result = query(""" + SELECT + name, + calculate_bmi(height, weight) as bmi, + is_valid_email(email) as has_valid_email + FROM ( + SELECT + 'John' as name, '180' as height, '75' as weight, 'john@example.com' as email + UNION ALL + SELECT + 'Jane' as name, '165' as height, '60' as weight, 'invalid-email' as email + ) +""", "Pretty") +print(result) +``` + +#### UDF Best Practices + +1. **Stateless Functions**: UDFs should be pure functions without side effects +2. **Import Inside Functions**: All required modules must be imported within the UDF +3. **String Input/Output**: All UDF parameters are strings (TabSeparated format) +4. **Error Handling**: Include try-catch blocks for robust UDFs +5. **Performance**: UDFs are called for each row, so optimize for performance -chdb.query("SELECT b, sum(a) FROM Python(df) GROUP BY b ORDER BY b").show() +```python +# Well-structured UDF with error handling +@chdb_udf(return_type="String") +def safe_json_extract(json_str, path): + import json + try: + data = json.loads(json_str) + keys = path.split('.') + result = data + for key in keys: + if isinstance(result, dict) and key in result: + result = result[key] + else: + return 'null' + return str(result) + except Exception as e: + return f'error: {str(e)}' + +# Use with complex nested JSON +query(""" + SELECT safe_json_extract( + '{"user": {"profile": {"name": "Alice", "age": 25}}}', + 'user.profile.name' + ) as extracted_name +""") ``` -### Query on Arrow Table {#query-on-arrow-table} +### Streaming Query Processing {#streaming-queries} + +Process large datasets with constant memory usage: ```python -import chdb +from chdb import session + +sess = session.Session() + +# Setup large dataset +sess.query(""" + CREATE TABLE large_data AS + SELECT number as id, toString(number) as data + FROM numbers(1000000) +""") + +# Example 1: Basic streaming with context manager +total_rows = 0 +with sess.send_query("SELECT * FROM large_data", "CSV") as stream: + for chunk in stream: + chunk_rows = len(chunk.data().split('\n')) - 1 + total_rows += chunk_rows + print(f"Processed chunk: {chunk_rows} rows") + + # Early termination if needed + if total_rows > 100000: + break + +print(f"Total rows processed: {total_rows}") + +# Example 2: Manual iteration with explicit cleanup +stream = sess.send_query("SELECT * FROM large_data WHERE id % 100 = 0", "JSONEachRow") +processed_count = 0 + +while True: + chunk = stream.fetch() + if chunk is None: + break + + # Process chunk data + lines = chunk.data().strip().split('\n') + for line in lines: + if line: # Skip empty lines + processed_count += 1 + + print(f"Processed {processed_count} records so far...") + +stream.close() # Important: explicit cleanup + +# Example 3: Arrow integration for external libraries import pyarrow as pa -arrow_table = pa.table( - { - "a": [1, 2, 3, 4, 5, 6], - "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"], - } +from deltalake import write_deltalake + +# Stream results in Arrow format +stream = sess.send_query("SELECT * FROM large_data LIMIT 100000", "Arrow") + +# Create RecordBatchReader with custom batch size +batch_reader = stream.record_batch(rows_per_batch=10000) + +# Export to Delta Lake +write_deltalake( + table_or_uri="./my_delta_table", + data=batch_reader, + mode="overwrite" ) -chdb.query( - "SELECT b, sum(a) FROM Python(arrow_table) GROUP BY b ORDER BY b", "debug" -).show() +stream.close() +sess.close() ``` -### Query on chdb.PyReader class instance {#query-on-chdbpyreader-class-instance} +### Python Table Engine {#python-table-engine} + +#### Query Pandas DataFrames -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 dimension is the column, the second dimension is the row, the columns order should be the same as the first arg `col_names` of `read`. - 1. return an empty list when there is no more data to read. - 1. 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](/sql-reference/data-types). +```python +import chdb +import pandas as pd + +# Complex DataFrame with nested data +df = pd.DataFrame({ + "customer_id": [1, 2, 3, 4, 5, 6], + "customer_name": ["Alice", "Bob", "Charlie", "Alice", "Bob", "David"], + "orders": [ + {"order_id": 101, "amount": 250.50, "items": ["laptop", "mouse"]}, + {"order_id": 102, "amount": 89.99, "items": ["book"]}, + {"order_id": 103, "amount": 1299.99, "items": ["phone", "case", "charger"]}, + {"order_id": 104, "amount": 45.50, "items": ["pen", "paper"]}, + {"order_id": 105, "amount": 199.99, "items": ["headphones"]}, + {"order_id": 106, "amount": 15.99, "items": ["cable"]} + ] +}) + +# Advanced querying with JSON operations +result = chdb.query(""" + SELECT + customer_name, + count() as order_count, + sum(orders.amount) as total_spent, + arrayStringConcat( + arrayDistinct( + arrayFlatten( + groupArray(orders.items) + ) + ), + ', ' + ) as all_items + FROM Python(df) + GROUP BY customer_name + HAVING total_spent > 100 + ORDER BY total_spent DESC +""").show() + +# Window functions on DataFrames +window_result = chdb.query(""" + SELECT + customer_name, + orders.amount, + sum(orders.amount) OVER ( + PARTITION BY customer_name + ORDER BY orders.order_id + ) as running_total + FROM Python(df) + ORDER BY customer_name, orders.order_id +""", "Pretty") +print(window_result) +``` -
+#### Query Arrow Tables ```python import chdb +import pyarrow as pa +import numpy as np + +# Create Arrow table with complex data types +arrow_data = { + "user_id": [1, 2, 3, 4, 5], + "username": ["alice", "bob", "charlie", "diana", "eve"], + "scores": [[95, 87, 92], [78, 85, 90], [88, 95, 87], [92, 89, 94], [85, 88, 91]], + "metadata": [ + {"country": "US", "premium": True, "signup_date": "2023-01-15"}, + {"country": "UK", "premium": False, "signup_date": "2023-02-10"}, + {"country": "CA", "premium": True, "signup_date": "2023-01-20"}, + {"country": "US", "premium": True, "signup_date": "2023-03-05"}, + {"country": "DE", "premium": False, "signup_date": "2023-02-28"} + ], + "activity_timestamps": [ + [1640995200, 1641081600, 1641168000], # Unix timestamps + [1641254400, 1641340800], + [1641427200, 1641513600, 1641600000, 1641686400], + [1641772800], + [1641859200, 1641945600] + ] +} + +arrow_table = pa.table(arrow_data) + +# Complex analytical queries +analysis = chdb.query(""" + SELECT + metadata.country, + count() as users, + avg(arraySum(scores)) as avg_total_score, + countIf(metadata.premium) as premium_users, + avg(length(activity_timestamps)) as avg_activities + FROM Python(arrow_table) + GROUP BY metadata.country + ORDER BY avg_total_score DESC +""", "Pretty") +print(analysis) + +# Time series analysis +time_analysis = chdb.query(""" + SELECT + username, + arrayMap( + x -> toDateTime(x), + activity_timestamps + ) as activity_dates, + arrayMap( + x -> formatDateTime(toDateTime(x), '%Y-%m-%d'), + activity_timestamps + ) as formatted_dates + FROM Python(arrow_table) + WHERE metadata.premium = true +""", "JSONEachRow") +print(time_analysis) +``` + +#### Custom Data Sources with PyReader -class myReader(chdb.PyReader): - def __init__(self, data): - self.data = data +Implement custom data readers for specialized data sources: + +```python +import chdb +from typing import List, Tuple, Any +import json + +class DatabaseReader(chdb.PyReader): + """Custom reader for database-like data sources""" + + def __init__(self, connection_string: str): + # Simulate database connection + self.data = self._load_data(connection_string) 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"]): - return [] - block = [self.data[col] for col in col_names] - self.cursor += len(block[0]) - return block - -reader = myReader( - { - "a": [1, 2, 3, 4, 5, 6], - "b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"], - } -) + self.batch_size = 1000 + super().__init__(self.data) + + def _load_data(self, conn_str): + # Simulate loading from database + return { + "id": list(range(1, 10001)), + "name": [f"user_{i}" for i in range(1, 10001)], + "score": [i * 10 + (i % 7) for i in range(1, 10001)], + "metadata": [ + json.dumps({"level": i % 5, "active": i % 3 == 0}) + for i in range(1, 10001) + ] + } + + def get_schema(self) -> List[Tuple[str, str]]: + """Define table schema with explicit types""" + return [ + ("id", "UInt64"), + ("name", "String"), + ("score", "Int64"), + ("metadata", "String") # JSON stored as string + ] + + def read(self, col_names: List[str], count: int) -> List[List[Any]]: + """Read data in batches""" + if self.cursor >= len(self.data["id"]): + return [] # No more data + + end_pos = min(self.cursor + min(count, self.batch_size), len(self.data["id"])) + + # Return data for requested columns + result = [] + for col in col_names: + if col in self.data: + result.append(self.data[col][self.cursor:end_pos]) + else: + # Handle missing columns + result.append([None] * (end_pos - self.cursor)) + + self.cursor = end_pos + return result + +# Use custom reader +reader = DatabaseReader("postgresql://127.0.0.1/mydb") + +# Query with complex operations +result = chdb.query(""" + SELECT + name, + score, + JSONExtractString(metadata, 'level') as user_level, + JSONExtractBool(metadata, 'active') as is_active + FROM Python(reader) + WHERE score > 5000 + ORDER BY score DESC + LIMIT 10 +""", "Pretty") +print(result) + +# Aggregation queries +aggregation = chdb.query(""" + SELECT + JSONExtractString(metadata, 'level') as level, + count() as user_count, + avg(score) as avg_score, + countIf(JSONExtractBool(metadata, 'active')) as active_users + FROM Python(reader) + GROUP BY level + ORDER BY level +""", "JSONEachRow") +print(aggregation) +``` + +### JSON Type Inference and Handling + +chDB automatically handles complex nested data structures: -chdb.query( - "SELECT b, sum(a) FROM Python(reader) GROUP BY b ORDER BY b" -).show() +```python +import pandas as pd +import chdb + +# DataFrame with mixed JSON objects +df_with_json = pd.DataFrame({ + "user_id": [1, 2, 3, 4], + "profile": [ + {"name": "Alice", "age": 25, "preferences": ["music", "travel"]}, + {"name": "Bob", "age": 30, "location": {"city": "NYC", "country": "US"}}, + {"name": "Charlie", "skills": ["python", "sql", "ml"], "experience": 5}, + {"score": 95, "rank": "gold", "achievements": [{"title": "Expert", "date": "2024-01-01"}]} + ] +}) + +# Control JSON inference with settings +result = chdb.query(""" + SELECT + user_id, + profile.name as name, + profile.age as age, + arrayLength(profile.preferences) as pref_count, + profile.location.city as city + FROM Python(df_with_json) + SETTINGS pandas_analyze_sample = 1000 -- Analyze all rows for JSON detection +""", "Pretty") +print(result) + +# Advanced JSON operations +complex_json = chdb.query(""" + SELECT + user_id, + JSONLength(toString(profile)) as json_fields, + JSONType(toString(profile), 'preferences') as pref_type, + if( + JSONHas(toString(profile), 'achievements'), + JSONExtractString(toString(profile), 'achievements[0].title'), + 'None' + ) as first_achievement + FROM Python(df_with_json) +""", "JSONEachRow") +print(complex_json) ``` -See also: [test_query_py.py](https://github.com/chdb-io/chdb/blob/main/tests/test_query_py.py). +## Performance and Optimization {#performance-optimization} + +### Benchmarks -## Limitations {#limitations} +chDB consistently outperforms other embedded engines: +- **DataFrame operations**: 2-5x faster than Pandas for analytical queries +- **Parquet processing**: Competitive with DuckDB, faster than Polars +- **Memory efficiency**: Lower memory footprint than alternatives -1. Column types supported: `pandas.Series`, `pyarrow.array`,`chdb.PyReader` -1. Data types supported: Int, UInt, Float, String, Date, DateTime, Decimal -1. Python Object type will be converted to String -1. Pandas DataFrame performance is all of the best, Arrow Table is better than PyReader +### Performance Tips + +```python +import chdb + +# 1. Use appropriate output formats +df_result = chdb.query("SELECT * FROM large_table", "DataFrame") # For analysis +arrow_result = chdb.query("SELECT * FROM large_table", "Arrow") # For interop +native_result = chdb.query("SELECT * FROM large_table", "Native") # For chDB-to-chDB + +# 2. Optimize queries with settings +fast_result = chdb.query(""" + SELECT customer_id, sum(amount) + FROM sales + GROUP BY customer_id + SETTINGS + max_threads = 8, + max_memory_usage = '4G', + use_uncompressed_cache = 1 +""", "DataFrame") + +# 3. Leverage streaming for large datasets +from chdb import session +sess = session.Session() + +# Setup large dataset +sess.query(""" + CREATE TABLE large_sales AS + SELECT + number as sale_id, + number % 1000 as customer_id, + rand() % 1000 as amount + FROM numbers(10000000) +""") + +# Stream processing with constant memory usage +total_amount = 0 +processed_rows = 0 + +with sess.send_query("SELECT customer_id, sum(amount) as total FROM large_sales GROUP BY customer_id", "JSONEachRow") as stream: + for chunk in stream: + lines = chunk.data().strip().split('\n') + for line in lines: + if line: # Skip empty lines + import json + row = json.loads(line) + total_amount += row['total'] + processed_rows += 1 + + print(f"Processed {processed_rows} customer records, running total: {total_amount}") + + # Early termination for demo + if processed_rows > 1000: + break + +print(f"Final result: {processed_rows} customers processed, total amount: {total_amount}") + +# Stream to external systems (e.g., Delta Lake) +stream = sess.send_query("SELECT * FROM large_sales LIMIT 1000000", "Arrow") +batch_reader = stream.record_batch(rows_per_batch=50000) + +# Process in batches +for batch in batch_reader: + print(f"Processing batch with {batch.num_rows} rows...") + # Transform or export each batch + # df_batch = batch.to_pandas() + # process_batch(df_batch) + +stream.close() +sess.close() +``` -
+## GitHub Repository {#github-repository} -For more examples, see [examples](https://github.com/chdb-io/chdb/tree/main/examples) and [tests](https://github.com/chdb-io/chdb/tree/main/tests). +- **Main Repository**: [chdb-io/chdb](https://github.com/chdb-io/chdb) +- **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb/issues) +- **C API Documentation**: [Bindings Documentation](https://github.com/chdb-io/chdb/blob/main/bindings.md) diff --git a/docs/chdb/install/rust.md b/docs/chdb/install/rust.md index da317008ca9..760b308f0f3 100644 --- a/docs/chdb/install/rust.md +++ b/docs/chdb/install/rust.md @@ -2,13 +2,19 @@ title: 'Installing chDB for Rust' sidebar_label: 'Rust' slug: /chdb/install/rust -description: 'How to install chDB for Rust' -keywords: ['chdb', 'embedded', 'clickhouse-lite', 'bun', 'install'] +description: 'How to install and use chDB Rust bindingsd' +keywords: ['chdb', 'embedded', 'clickhouse-lite', 'rust', 'install', 'ffi', 'bindings'] --- -## Requirements {#requirements} +# chDB for Rust -Install [libchdb](https://github.com/chdb-io/chdb): +chDB-rust provides experimental FFI (Foreign Function Interface) bindings for chDB, enabling you to run ClickHouse queries directly in your Rust applications with zero external dependencies. + +## Installation {#installation} + +### Install libchdb {#install-libchdb} + +Install the chDB library: ```bash curl -sL https://lib.chdb.io | bash @@ -16,8 +22,139 @@ curl -sL https://lib.chdb.io | bash ## Usage {#usage} -This binding is a work in progress. Follow the instructions at [chdb-rust](https://github.com/chdb-io/chdb-rust) to get started. +chDB Rust provides both stateless and stateful query execution modes. + +### Stateless Usage + +For simple queries without persistent state: + +```rust +use chdb_rust::{execute, arg::Arg, format::OutputFormat}; + +fn main() -> Result<(), Box> { + // Execute a simple query + let result = execute( + "SELECT version()", + Some(&[Arg::OutputFormat(OutputFormat::JSONEachRow)]) + )?; + println!("ClickHouse version: {}", result.data_utf8()?); + + // Query with CSV file + let result = execute( + "SELECT * FROM file('data.csv', 'CSV')", + Some(&[Arg::OutputFormat(OutputFormat::JSONEachRow)]) + )?; + println!("CSV data: {}", result.data_utf8()?); + + Ok(()) +} +``` + +### Stateful Usage (Sessions) + +For queries requiring persistent state like databases and tables: + +```rust +use chdb_rust::{ + session::SessionBuilder, + arg::Arg, + format::OutputFormat, + log_level::LogLevel +}; +use tempdir::TempDir; + +fn main() -> Result<(), Box> { + // Create a temporary directory for database storage + let tmp = TempDir::new("chdb-rust")?; + + // Build session with configuration + let session = SessionBuilder::new() + .with_data_path(tmp.path()) + .with_arg(Arg::LogLevel(LogLevel::Debug)) + .with_auto_cleanup(true) // Cleanup on drop + .build()?; + + // Create database and table + session.execute( + "CREATE DATABASE demo; USE demo", + Some(&[Arg::MultiQuery]) + )?; + + session.execute( + "CREATE TABLE logs (id UInt64, msg String) ENGINE = MergeTree() ORDER BY id", + None, + )?; + + // Insert data + session.execute( + "INSERT INTO logs (id, msg) VALUES (1, 'Hello'), (2, 'World')", + None, + )?; + + // Query data + let result = session.execute( + "SELECT * FROM logs ORDER BY id", + Some(&[Arg::OutputFormat(OutputFormat::JSONEachRow)]), + )?; + + println!("Query results:\n{}", result.data_utf8()?); + + // Get query statistics + println!("Rows read: {}", result.rows_read()); + println!("Bytes read: {}", result.bytes_read()); + println!("Query time: {:?}", result.elapsed()); + + Ok(()) +} +``` + +## Building and Testing {#building-testing} + +### Build the Project + +```bash +cargo build +``` + +### Run Tests + +```bash +cargo test +``` + +### Development Dependencies + +The project includes these development dependencies: +- `bindgen` (v0.70.1) - Generate FFI bindings from C headers +- `tempdir` (v0.3.7) - Temporary directory handling in tests +- `thiserror` (v1) - Error handling utilities + +## Error Handling {#error-handling} + +chDB Rust provides comprehensive error handling through the `Error` enum: + +```rust +use chdb_rust::{execute, error::Error}; + +match execute("SELECT 1", None) { + Ok(result) => { + println!("Success: {}", result.data_utf8()?); + }, + Err(Error::QueryError(msg)) => { + eprintln!("Query failed: {}", msg); + }, + Err(Error::NoResult) => { + eprintln!("No result returned"); + }, + Err(Error::NonUtf8Sequence(e)) => { + eprintln!("Invalid UTF-8: {}", e); + }, + Err(e) => { + eprintln!("Other error: {}", e); + } +} +``` -## GitHub repository {#github-repository} +## GitHub Repository {#github-repository} You can find the GitHub repository for the project at [chdb-io/chdb-rust](https://github.com/chdb-io/chdb-rust). diff --git a/docs/chdb/reference/data-formats.md b/docs/chdb/reference/data-formats.md index 789b5cf21cc..76224cb273d 100644 --- a/docs/chdb/reference/data-formats.md +++ b/docs/chdb/reference/data-formats.md @@ -39,6 +39,7 @@ The supported data formats from ClickHouse are: | Vertical | ✗ | ✔ | | JSON | ✔ | ✔ | | JSONAsString | ✔ | ✗ | +| JSONAsObject | ✔ | ✗ | | JSONStrings | ✔ | ✔ | | JSONColumns | ✔ | ✔ | | JSONColumnsWithMetadata | ✔ | ✔ | @@ -53,9 +54,11 @@ The supported data formats from ClickHouse are: | JSONCompactEachRow | ✔ | ✔ | | JSONCompactEachRowWithNames | ✔ | ✔ | | JSONCompactEachRowWithNamesAndTypes | ✔ | ✔ | +| JSONCompactEachRowWithProgress | ✗ | ✔ | | JSONCompactStringsEachRow | ✔ | ✔ | | JSONCompactStringsEachRowWithNames | ✔ | ✔ | | JSONCompactStringsEachRowWithNamesAndTypes | ✔ | ✔ | +| JSONCompactStringsEachRowWithProgress | ✗ | ✔ | | JSONObjectEachRow | ✔ | ✔ | | BSONEachRow | ✔ | ✔ | | TSKV | ✔ | ✔ | @@ -74,6 +77,7 @@ The supported data formats from ClickHouse are: | Prometheus | ✗ | ✔ | | Protobuf | ✔ | ✔ | | ProtobufSingle | ✔ | ✔ | +| ProtobufList | ✔ | ✔ | | Avro | ✔ | ✔ | | AvroConfluent | ✔ | ✗ | | Parquet | ✔ | ✔ | @@ -82,10 +86,11 @@ The supported data formats from ClickHouse are: | ArrowStream | ✔ | ✔ | | ORC | ✔ | ✔ | | One | ✔ | ✗ | +| Npy | ✔ | ✔ | | RowBinary | ✔ | ✔ | | RowBinaryWithNames | ✔ | ✔ | | RowBinaryWithNamesAndTypes | ✔ | ✔ | -| RowBinaryWithDefaults | ✔ | ✔ | +| RowBinaryWithDefaults | ✔ | ✗ | | Native | ✔ | ✔ | | Null | ✗ | ✔ | | XML | ✗ | ✔ | @@ -95,6 +100,8 @@ The supported data formats from ClickHouse are: | RawBLOB | ✔ | ✔ | | MsgPack | ✔ | ✔ | | MySQLDump | ✔ | ✗ | +| DWARF | ✔ | ✗ | | Markdown | ✗ | ✔ | +| Form | ✔ | ✗ | For further information and examples, see [ClickHouse formats for input and output data](/interfaces/formats). From 17cdcda2167204dd3c3482fa71631546ed38d0d1 Mon Sep 17 00:00:00 2001 From: victor Date: Wed, 27 Aug 2025 17:03:41 +0800 Subject: [PATCH 2/9] typo --- docs/chdb/install/python.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index 3fe6b9f12e2..3d748ccbff8 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -797,6 +797,7 @@ fast_result = chdb.query(""" # 3. Leverage streaming for large datasets from chdb import session + sess = session.Session() # Setup large dataset @@ -850,4 +851,3 @@ sess.close() - **Main Repository**: [chdb-io/chdb](https://github.com/chdb-io/chdb) - **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb/issues) -- **C API Documentation**: [Bindings Documentation](https://github.com/chdb-io/chdb/blob/main/bindings.md) From 02a1e74f540f2773c1fdb1899ff35c9d8e9b1baa Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 28 Aug 2025 12:03:07 +0800 Subject: [PATCH 3/9] add missing section identifiers in Python and Rust installation docs --- docs/chdb/install/python.md | 36 ++++++++++++++++++------------------ docs/chdb/install/rust.md | 12 ++++++------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index 3d748ccbff8..ae8aa591737 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -17,9 +17,9 @@ keywords: ['chdb', 'embedded', 'clickhouse-lite', 'python', 'install'] pip install chdb ``` -## Usage +## Usage {#usage} -### Command Line Interface +### Command Line Interface {#command-line-interface} Run SQL queries directly from the command line: @@ -31,7 +31,7 @@ python3 -m chdb "SELECT 1, 'abc'" Pretty python3 -m chdb "SELECT version()" JSON ``` -### Basic Python Usage +### Basic Python Usage {#basic-python-usage} ```python import chdb @@ -46,7 +46,7 @@ print(f"Bytes read: {result.bytes_read()}") print(f"Execution time: {result.elapsed()} seconds") ``` -### Connection-Based API (Recommended) +### Connection-Based API (Recommended) {#connection-based-api} For better resource management and performance: @@ -83,7 +83,7 @@ conn.close() ## Data Input Methods {#data-input} -### File-Based Data Sources +### File-Based Data Sources {#file-based-data-sources} chDB supports 70+ data formats for direct file querying: @@ -112,7 +112,7 @@ result = chdb.query(""" """, 'Pretty') ``` -### Output Format Examples +### Output Format Examples {#output-format-examples} ```python # DataFrame for analysis @@ -134,7 +134,7 @@ print(pretty_result) ### DataFrame Operations {#dataframe-operations} -#### Legacy DataFrame API +#### Legacy DataFrame API {#legacy-dataframe-api} ```python import chdb.dataframe as cdf @@ -156,7 +156,7 @@ summary = result_df.query('SELECT b, sum(a) FROM __table__ GROUP BY b') print(summary) ``` -#### Python Table Engine (Recommended) +#### Python Table Engine (Recommended) {#python-table-engine-recommended} ```python import chdb @@ -257,7 +257,7 @@ print(result) sess.close() # Optional - auto-closed when object is deleted ``` -### Advanced Session Features +### Advanced Session Features {#advanced-session-features} ```python # Session with custom settings @@ -333,7 +333,7 @@ cursor.executemany( Extend SQL with custom Python functions: -#### Basic UDF Usage +#### Basic UDF Usage {#basic-udf-usage} ```python from chdb.udf import chdb_udf @@ -369,7 +369,7 @@ result = query(""" print(result) ``` -#### Advanced UDF with Custom Return Types +#### Advanced UDF with Custom Return Types {#advanced-udf-custom-return-types} ```python # UDF with specific return type @@ -403,7 +403,7 @@ result = query(""" print(result) ``` -#### UDF Best Practices +#### UDF Best Practices {#udf-best-practices} 1. **Stateless Functions**: UDFs should be pure functions without side effects 2. **Import Inside Functions**: All required modules must be imported within the UDF @@ -510,7 +510,7 @@ sess.close() ### Python Table Engine {#python-table-engine} -#### Query Pandas DataFrames +#### Query Pandas DataFrames {#query-pandas-dataframes} ```python import chdb @@ -565,7 +565,7 @@ window_result = chdb.query(""" print(window_result) ``` -#### Query Arrow Tables +#### Query Arrow Tables {#query-arrow-tables} ```python import chdb @@ -627,7 +627,7 @@ time_analysis = chdb.query(""" print(time_analysis) ``` -#### Custom Data Sources with PyReader +#### Custom Data Sources with PyReader {#custom-data-sources-pyreader} Implement custom data readers for specialized data sources: @@ -717,7 +717,7 @@ aggregation = chdb.query(""" print(aggregation) ``` -### JSON Type Inference and Handling +### JSON Type Inference and Handling {#json-type-inference-handling} chDB automatically handles complex nested data structures: @@ -767,14 +767,14 @@ print(complex_json) ## Performance and Optimization {#performance-optimization} -### Benchmarks +### Benchmarks {#benchmarks} chDB consistently outperforms other embedded engines: - **DataFrame operations**: 2-5x faster than Pandas for analytical queries - **Parquet processing**: Competitive with DuckDB, faster than Polars - **Memory efficiency**: Lower memory footprint than alternatives -### Performance Tips +### Performance Tips {#performance-tips} ```python import chdb diff --git a/docs/chdb/install/rust.md b/docs/chdb/install/rust.md index 760b308f0f3..58e9aa0487e 100644 --- a/docs/chdb/install/rust.md +++ b/docs/chdb/install/rust.md @@ -6,7 +6,7 @@ description: 'How to install and use chDB Rust bindingsd' keywords: ['chdb', 'embedded', 'clickhouse-lite', 'rust', 'install', 'ffi', 'bindings'] --- -# chDB for Rust +# chDB for Rust {#chdb-for-rust} chDB-rust provides experimental FFI (Foreign Function Interface) bindings for chDB, enabling you to run ClickHouse queries directly in your Rust applications with zero external dependencies. @@ -24,7 +24,7 @@ curl -sL https://lib.chdb.io | bash chDB Rust provides both stateless and stateful query execution modes. -### Stateless Usage +### Stateless Usage {#stateless-usage} For simple queries without persistent state: @@ -50,7 +50,7 @@ fn main() -> Result<(), Box> { } ``` -### Stateful Usage (Sessions) +### Stateful Usage (Sessions) {#stateful-usage-sessions} For queries requiring persistent state like databases and tables: @@ -110,19 +110,19 @@ fn main() -> Result<(), Box> { ## Building and Testing {#building-testing} -### Build the Project +### Build the Project {#build-the-project} ```bash cargo build ``` -### Run Tests +### Run Tests {#run-tests} ```bash cargo test ``` -### Development Dependencies +### Development Dependencies {#development-dependencies} The project includes these development dependencies: - `bindgen` (v0.70.1) - Generate FFI bindings from C headers From d72173650f6e8aa09efbfd113c9eca56ed203287 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 28 Aug 2025 12:29:09 +0800 Subject: [PATCH 4/9] remove unnecessary blank line before Data Input Methods section --- docs/chdb/install/python.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index ae8aa591737..ca9272c1062 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -80,7 +80,6 @@ cur.close() conn.close() ``` - ## Data Input Methods {#data-input} ### File-Based Data Sources {#file-based-data-sources} From 2d09a77f870edbff73c5578ca212563badadf033 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 29 Aug 2025 15:43:01 +0800 Subject: [PATCH 5/9] enhance documentation and examples: add new JSON handling features, improve query examples, and update benchmark results --- docs/chdb/index.md | 8 +- docs/chdb/install/python.md | 151 +++++------------------ scripts/aspell-ignore/en/aspell-dict.txt | 4 + 3 files changed, 37 insertions(+), 126 deletions(-) diff --git a/docs/chdb/index.md b/docs/chdb/index.md index afba9812b6f..1b4d43bedea 100644 --- a/docs/chdb/index.md +++ b/docs/chdb/index.md @@ -55,8 +55,8 @@ You can listen to a brief project introduction to chDB, courtesy of Alexey Milov chDB delivers exceptional performance across different scenarios: - **[ClickBench of embedded engines](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQXRoZW5hIChwYXJ0aXRpb25lZCkiOnRydWUsIkF0aGVuYSAoc2luZ2xlKSI6dHJ1ZSwiQXVyb3JhIGZvciBNeVNRTCI6dHJ1ZSwiQXVyb3JhIGZvciBQb3N0Z3JlU1FMIjp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIiOnRydWUsIkNpdHVzIjp0cnVlLCJjbGlja2hvdXNlLWxvY2FsIChwYXJ0aXRpb25lZCkiOnRydWUsImNsaWNraG91c2UtbG9jYWwgKHNpbmdsZSkiOnRydWUsIkNsaWNrSG91c2UiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoenN0ZCkiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQiOnRydWUsIkNsaWNrSG91c2UgKHdlYikiOnRydWUsIkNyYXRlREIiOnRydWUsIkRhdGFiZW5kIjp0cnVlLCJEYXRhRnVzaW9uIChzaW5nbGUpIjp0cnVlLCJBcGFjaGUgRG9yaXMiOnRydWUsIkRydWlkIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQpIjp0cnVlLCJEdWNrREIiOnRydWUsIkVsYXN0aWNzZWFyY2giOnRydWUsIkVsYXN0aWNzZWFyY2ggKHR1bmVkKSI6ZmFsc2UsIkdyZWVucGx1bSI6dHJ1ZSwiSGVhdnlBSSI6dHJ1ZSwiSHlkcmEiOnRydWUsIkluZm9icmlnaHQiOnRydWUsIktpbmV0aWNhIjp0cnVlLCJNYXJpYURCIENvbHVtblN0b3JlIjp0cnVlLCJNYXJpYURCIjpmYWxzZSwiTW9uZXREQiI6dHJ1ZSwiTW9uZ29EQiI6dHJ1ZSwiTXlTUUwgKE15SVNBTSkiOnRydWUsIk15U1FMIjp0cnVlLCJQaW5vdCI6dHJ1ZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2VsZWN0REIiOnRydWUsIlNpbmdsZVN0b3JlIjp0cnVlLCJTbm93Zmxha2UiOnRydWUsIlNRTGl0ZSI6dHJ1ZSwiU3RhclJvY2tzIjp0cnVlLCJUaW1lc2NhbGVEQiAoY29tcHJlc3Npb24pIjp0cnVlLCJUaW1lc2NhbGVEQiI6dHJ1ZX0sInR5cGUiOnsic3RhdGVsZXNzIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsIkphdmEiOmZhbHNlLCJjb2x1bW4tb3JpZW50ZWQiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQyI6ZmFsc2UsIlBvc3RncmVTUUwgY29tcGF0aWJsZSI6ZmFsc2UsIkNsaWNrSG91c2UgZGVyaXZhdGl2ZSI6ZmFsc2UsImVtYmVkZGVkIjp0cnVlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiUnVzdCI6ZmFsc2UsInNlYXJjaCI6ZmFsc2UsImRvY3VtZW50IjpmYWxzZSwidGltZS1zZXJpZXMiOmZhbHNlfSwibWFjaGluZSI6eyJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNS40eGxhcmdlLCA1MDBnYiBncDIiOnRydWUsIjE2IHRocmVhZHMiOnRydWUsIjIwIHRocmVhZHMiOnRydWUsIjI0IHRocmVhZHMiOnRydWUsIjI4IHRocmVhZHMiOnRydWUsIjMwIHRocmVhZHMiOnRydWUsIjQ4IHRocmVhZHMiOnRydWUsIjYwIHRocmVhZHMiOnRydWUsIm01ZC4yNHhsYXJnZSI6dHJ1ZSwiYzVuLjR4bGFyZ2UsIDIwMGdiIGdwMiI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDE1MDBnYiBncDIiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMjQiOnRydWUsIlMyIjp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZX0sImNsdXN0ZXJfc2l6ZSI6eyIxIjp0cnVlLCIyIjp0cnVlLCI0Ijp0cnVlLCI4Ijp0cnVlLCIxNiI6dHJ1ZSwiMzIiOnRydWUsIjY0Ijp0cnVlLCIxMjgiOnRydWUsInNlcnZlcmxlc3MiOnRydWUsInVuZGVmaW5lZCI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** - Comprehensive performance comparison -- **[chDB vs Pandas](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - DataFrame processing performance -- **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** - chDB vs Pandas, DuckDB, and Polars +- **[DataFrame Processing Performance](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - Comparative analysis with other DataFrame libraries +- **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)**
DataFrame Benchmark Results @@ -64,8 +64,8 @@ chDB delivers exceptional performance across different scenarios: ## About chDB {#about-chdb} -- Read the full story about the birth of the chDB project on [Auxten's blog](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle) -- Read about chDB and its use cases on the [Official ClickHouse Blog](https://clickhouse.com/blog/welcome-chdb-to-clickhouse) +- Read the full story about the birth of the chDB project on [blog](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle) +- Read about chDB and its use cases on the [Blog](https://clickhouse.com/blog/welcome-chdb-to-clickhouse) - Discover chDB in your browser using [codapi examples](https://antonz.org/trying-chdb/) - More examples see (https://github.com/chdb-io/chdb/tree/main/examples) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index ca9272c1062..0d57990642c 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -88,6 +88,8 @@ chDB supports 70+ data formats for direct file querying: ```python import chdb +# Prepare your data +# ... # Query Parquet files result = chdb.query(""" @@ -181,10 +183,10 @@ result = chdb.query(""" SELECT customer_id, sum(amount) as total_spent, - metadata.category as category - FROM Python(df) - WHERE metadata.priority = 'high' - GROUP BY customer_id, metadata.category + toString(metadata.category) as category + FROM Python(df) + WHERE toString(metadata.priority) = 'high' + GROUP BY customer_id, toString(metadata.category) ORDER BY total_spent DESC """).show() @@ -192,13 +194,13 @@ result = chdb.query(""" arrow_table = pa.table({ "id": [1, 2, 3, 4], "name": ["Alice", "Bob", "Charlie", "David"], - "scores": [[95, 87], [78, 92], [88, 95], [92, 89]] + "score": [98, 89, 86, 95] }) chdb.query(""" - SELECT name, arraySum(scores) as total_score - FROM Python(arrow_table) - ORDER BY total_score DESC + SELECT name, score + FROM Python(arrow_table) + ORDER BY score DESC """).show() ``` @@ -262,19 +264,8 @@ sess.close() # Optional - auto-closed when object is deleted # Session with custom settings sess = session.Session( path="/tmp/analytics_db", - ) -# Batch operations -sess.query("BEGIN TRANSACTION") -try: - sess.query("INSERT INTO sales VALUES (4, 'Monitor', 299.99, '2024-01-18')") - sess.query("INSERT INTO sales VALUES (5, 'Speakers', 89.99, '2024-01-18')") - sess.query("COMMIT") -except Exception as e: - sess.query("ROLLBACK") - print(f"Transaction failed: {e}") - # Query performance optimization result = sess.query(""" SELECT product, sum(amount) as total @@ -322,6 +313,13 @@ for row in cursor.fetchall(): # Batch operations data = [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')] +cursor.execute(""" + CREATE TABLE temp_users ( + id UInt64, + name String + ) ENGINE = MergeTree() + ORDER BY (id) +""") cursor.executemany( "INSERT INTO temp_users (id, name) VALUES (?, ?)", data @@ -448,7 +446,7 @@ sess = session.Session() # Setup large dataset sess.query(""" - CREATE TABLE large_data AS + CREATE TABLE large_data ENGINE = Memory() AS SELECT number as id, toString(number) as data FROM numbers(1000000) """) @@ -534,7 +532,7 @@ result = chdb.query(""" SELECT customer_name, count() as order_count, - sum(orders.amount) as total_spent, + sum(toFloat64(orders.amount)) as total_spent, arrayStringConcat( arrayDistinct( arrayFlatten( @@ -553,79 +551,17 @@ result = chdb.query(""" window_result = chdb.query(""" SELECT customer_name, - orders.amount, - sum(orders.amount) OVER ( + toFloat64(orders.amount) as amount, + sum(toFloat64(orders.amount)) OVER ( PARTITION BY customer_name - ORDER BY orders.order_id + ORDER BY toInt32(orders.order_id) ) as running_total FROM Python(df) - ORDER BY customer_name, orders.order_id + ORDER BY customer_name, toInt32(orders.order_id) """, "Pretty") print(window_result) ``` -#### Query Arrow Tables {#query-arrow-tables} - -```python -import chdb -import pyarrow as pa -import numpy as np - -# Create Arrow table with complex data types -arrow_data = { - "user_id": [1, 2, 3, 4, 5], - "username": ["alice", "bob", "charlie", "diana", "eve"], - "scores": [[95, 87, 92], [78, 85, 90], [88, 95, 87], [92, 89, 94], [85, 88, 91]], - "metadata": [ - {"country": "US", "premium": True, "signup_date": "2023-01-15"}, - {"country": "UK", "premium": False, "signup_date": "2023-02-10"}, - {"country": "CA", "premium": True, "signup_date": "2023-01-20"}, - {"country": "US", "premium": True, "signup_date": "2023-03-05"}, - {"country": "DE", "premium": False, "signup_date": "2023-02-28"} - ], - "activity_timestamps": [ - [1640995200, 1641081600, 1641168000], # Unix timestamps - [1641254400, 1641340800], - [1641427200, 1641513600, 1641600000, 1641686400], - [1641772800], - [1641859200, 1641945600] - ] -} - -arrow_table = pa.table(arrow_data) - -# Complex analytical queries -analysis = chdb.query(""" - SELECT - metadata.country, - count() as users, - avg(arraySum(scores)) as avg_total_score, - countIf(metadata.premium) as premium_users, - avg(length(activity_timestamps)) as avg_activities - FROM Python(arrow_table) - GROUP BY metadata.country - ORDER BY avg_total_score DESC -""", "Pretty") -print(analysis) - -# Time series analysis -time_analysis = chdb.query(""" - SELECT - username, - arrayMap( - x -> toDateTime(x), - activity_timestamps - ) as activity_dates, - arrayMap( - x -> formatDateTime(toDateTime(x), '%Y-%m-%d'), - activity_timestamps - ) as formatted_dates - FROM Python(arrow_table) - WHERE metadata.premium = true -""", "JSONEachRow") -print(time_analysis) -``` - #### Custom Data Sources with PyReader {#custom-data-sources-pyreader} Implement custom data readers for specialized data sources: @@ -685,37 +621,6 @@ class DatabaseReader(chdb.PyReader): self.cursor = end_pos return result -# Use custom reader -reader = DatabaseReader("postgresql://127.0.0.1/mydb") - -# Query with complex operations -result = chdb.query(""" - SELECT - name, - score, - JSONExtractString(metadata, 'level') as user_level, - JSONExtractBool(metadata, 'active') as is_active - FROM Python(reader) - WHERE score > 5000 - ORDER BY score DESC - LIMIT 10 -""", "Pretty") -print(result) - -# Aggregation queries -aggregation = chdb.query(""" - SELECT - JSONExtractString(metadata, 'level') as level, - count() as user_count, - avg(score) as avg_score, - countIf(JSONExtractBool(metadata, 'active')) as active_users - FROM Python(reader) - GROUP BY level - ORDER BY level -""", "JSONEachRow") -print(aggregation) -``` - ### JSON Type Inference and Handling {#json-type-inference-handling} chDB automatically handles complex nested data structures: @@ -741,7 +646,7 @@ result = chdb.query(""" user_id, profile.name as name, profile.age as age, - arrayLength(profile.preferences) as pref_count, + length(profile.preferences) as pref_count, profile.location.city as city FROM Python(df_with_json) SETTINGS pandas_analyze_sample = 1000 -- Analyze all rows for JSON detection @@ -769,10 +674,12 @@ print(complex_json) ### Benchmarks {#benchmarks} chDB consistently outperforms other embedded engines: -- **DataFrame operations**: 2-5x faster than Pandas for analytical queries -- **Parquet processing**: Competitive with DuckDB, faster than Polars +- **DataFrame operations**: 2-5x faster than traditional DataFrame libraries for analytical queries +- **Parquet processing**: Competitive with leading columnar engines - **Memory efficiency**: Lower memory footprint than alternatives +[More benchmark result details](https://github.com/chdb-io/chdb?tab=readme-ov-file#benchmark) + ### Performance Tips {#performance-tips} ```python @@ -801,7 +708,7 @@ sess = session.Session() # Setup large dataset sess.query(""" - CREATE TABLE large_sales AS + CREATE TABLE large_sales ENGINE = Memory() AS SELECT number as sale_id, number % 1000 as customer_id, diff --git a/scripts/aspell-ignore/en/aspell-dict.txt b/scripts/aspell-ignore/en/aspell-dict.txt index 0f545b0fcb6..0f238c04d0e 100644 --- a/scripts/aspell-ignore/en/aspell-dict.txt +++ b/scripts/aspell-ignore/en/aspell-dict.txt @@ -561,10 +561,12 @@ JSONCompactColumns JSONCompactEachRow JSONCompactEachRowWithNames JSONCompactEachRowWithNamesAndTypes +JSONCompactEachRowWithProgress JSONCompactStrings JSONCompactStringsEachRow JSONCompactStringsEachRowWithNames JSONCompactStringsEachRowWithNamesAndTypes +JSONCompactStringsEachRowWithProgress JSONCompactWithProgress JSONDynamicPaths JSONDynamicPathsWithTypes @@ -1775,6 +1777,7 @@ clickvisual clockhour clusterAllReplicas cmake +codapi codebase codec codecs @@ -2531,6 +2534,7 @@ mdadm meanZTest meanztest mebibytes +memoryview memtable memtables mergeTreeIndex From e9ee5f00c8d54458699d0b4b75aeaa7d064505d3 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 30 Aug 2025 21:44:53 +0800 Subject: [PATCH 6/9] fix: standardize section titles and improve documentation consistency across multiple files --- docs/chdb/getting-started.md | 2 +- docs/chdb/index.md | 11 ++++---- docs/chdb/install/bun.md | 8 +++--- docs/chdb/install/c.md | 16 +++++------ docs/chdb/install/go.md | 18 ++++++------- docs/chdb/install/nodejs.md | 10 +++---- docs/chdb/install/python.md | 46 ++++++++++++++++---------------- docs/chdb/install/rust.md | 16 +++++------ static/images/chdb/df_bench.png | Bin 0 -> 425811 bytes 9 files changed, 64 insertions(+), 63 deletions(-) create mode 100644 static/images/chdb/df_bench.png diff --git a/docs/chdb/getting-started.md b/docs/chdb/getting-started.md index 86e108c1037..adc6ca5fda5 100644 --- a/docs/chdb/getting-started.md +++ b/docs/chdb/getting-started.md @@ -339,7 +339,7 @@ We could write the following code: df["likeDislikeRatio"] = df["likeCount"] / df["dislikeCount"] ``` -## Querying a Pandas DataFrame {#querying-a-pandas-dataframe} +## Querying a Pandas dataframe {#querying-a-pandas-dataframe} We can then query that DataFrame from chDB: diff --git a/docs/chdb/index.md b/docs/chdb/index.md index 1b4d43bedea..d2bc6ad0dfa 100644 --- a/docs/chdb/index.md +++ b/docs/chdb/index.md @@ -6,12 +6,15 @@ description: 'chDB is an in-process SQL OLAP Engine powered by ClickHouse' keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process'] --- +import df-bench from '@site/static/images/chdb/df_bench.png' +import Image from '@theme/IdealImage'; + # chDB chDB is a fast in-process SQL OLAP Engine powered by [ClickHouse](https://github.com/clickhouse/clickhouse). You can use it when you want to get the power of ClickHouse in a programming language without needing to connect to a ClickHouse server. -## Key Features {#key-features} +## Key features {#key-features} - **In-process SQL OLAP Engine** - Powered by ClickHouse, no need to install ClickHouse server - **Multiple data formats** - Input & Output support for Parquet, CSV, JSON, Arrow, ORC and [70+ more formats](/interfaces/formats) @@ -50,7 +53,7 @@ You can listen to a brief project introduction to chDB, courtesy of Alexey Milov
-## Performance Benchmarks {#performance-benchmarks} +## Performance benchmarks {#performance-benchmarks} chDB delivers exceptional performance across different scenarios: @@ -58,9 +61,7 @@ chDB delivers exceptional performance across different scenarios: - **[DataFrame Processing Performance](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - Comparative analysis with other DataFrame libraries - **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** -
- DataFrame Benchmark Results -
+DataFrame Benchmark Results ## About chDB {#about-chdb} diff --git a/docs/chdb/install/bun.md b/docs/chdb/install/bun.md index 4b1e4a06b53..a228391706a 100644 --- a/docs/chdb/install/bun.md +++ b/docs/chdb/install/bun.md @@ -12,7 +12,7 @@ chDB-bun provides experimental FFI (Foreign Function Interface) bindings for chD ## Installation {#installation} -### Step 1: Install System Dependencies {#install-system-dependencies} +### Step 1: Install system dependencies {#install-system-dependencies} First, install the required system dependencies: @@ -22,7 +22,7 @@ First, install the required system dependencies: curl -sL https://lib.chdb.io | bash ``` -#### Install Build Tools {#install-build-tools} +#### Install build tools {#install-build-tools} You'll need either `gcc` or `clang` installed on your system: @@ -43,7 +43,7 @@ bun run build chDB-bun supports two query modes: ephemeral queries for one-time operations and persistent sessions for maintaining database state. -### Ephemeral Queries {#ephemeral-queries} +### Ephemeral queries {#ephemeral-queries} For simple, one-off queries that don't require persistent state: @@ -67,7 +67,7 @@ const systemInfo = query("SELECT * FROM system.functions LIMIT 5", "CSV"); console.log(systemInfo); ``` -### Persistent Sessions {#persistent-sessions} +### Persistent sessions {#persistent-sessions} For complex operations that require maintaining state across queries: diff --git a/docs/chdb/install/c.md b/docs/chdb/install/c.md index a9c4b239c6e..9a9efb80727 100644 --- a/docs/chdb/install/c.md +++ b/docs/chdb/install/c.md @@ -20,7 +20,7 @@ Install the chDB library on your system: curl -sL https://lib.chdb.io | bash ``` -### Step 2: Include Headers {#include-headers} +### Step 2: Include headers {#include-headers} Include the chDB header in your project: @@ -28,7 +28,7 @@ Include the chDB header in your project: #include ``` -### Step 3: Link Library {#link-library} +### Step 3: Link library {#link-library} Compile and link your application with chDB: @@ -42,7 +42,7 @@ g++ -o myapp myapp.cpp -lchdb ## C Examples {#c-examples} -### Basic Connection and Queries {#basic-connection-queries} +### Basic connection and queries {#basic-connection-queries} ```c #include @@ -91,7 +91,7 @@ int main() { } ``` -### Streaming Queries {#streaming-queries} +### Streaming queries {#streaming-queries} ```c #include @@ -155,7 +155,7 @@ int main() { } ``` -### Working with Different Data Formats {#data-formats} +### Working with different data formats {#data-formats} ```c #include @@ -193,7 +193,7 @@ int main() { } ``` -## C++ Example {#cpp-example} +## C++ example {#cpp-example} ```cpp #include @@ -276,7 +276,7 @@ int main() { } ``` -## Error Handling Best Practices {#error-handling} +## Error handling best practices {#error-handling} ```c #include @@ -323,7 +323,7 @@ cleanup: } ``` -## GitHub Repository {#github-repository} +## GitHub repository {#github-repository} - **Main Repository**: [chdb-io/chdb](https://github.com/chdb-io/chdb) - **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb/issues) diff --git a/docs/chdb/install/go.md b/docs/chdb/install/go.md index f50276b0ca9..95b6a5424e7 100644 --- a/docs/chdb/install/go.md +++ b/docs/chdb/install/go.md @@ -36,7 +36,7 @@ go get github.com/chdb-io/chdb-go ## Usage {#usage} -### Command Line Interface {#cli} +### Command line interface {#cli} chDB-go includes a CLI for quick queries: @@ -51,9 +51,9 @@ chDB-go includes a CLI for quick queries: ./chdb-go --path /tmp/chdb ``` -### Go Library - Quick Start {#quick-start} +### Go Library - quick start {#quick-start} -#### Stateless Queries {#stateless-queries} +#### Stateless queries {#stateless-queries} For simple, one-off queries: @@ -75,7 +75,7 @@ func main() { } ``` -#### Stateful Queries with Session {#stateful-queries} +#### Stateful queries with session {#stateful-queries} For complex queries with persistent state: @@ -128,7 +128,7 @@ func main() { } ``` -#### SQL Driver Interface {#sql-driver} +#### SQL driver interface {#sql-driver} chDB-go implements Go's `database/sql` interface: @@ -167,7 +167,7 @@ func main() { } ``` -#### Query Streaming for Large Datasets {#query-streaming} +#### Query streaming for large datasets {#query-streaming} For processing large datasets that don't fit in memory, use streaming queries: @@ -228,20 +228,20 @@ func main() { } ``` -**Benefits of Query Streaming:** +**Benefits of query streaming:** - **Memory efficient** - Process large datasets without loading everything into memory - **Real-time processing** - Start processing data as soon as first chunk arrives - **Cancellation support** - Can cancel long-running queries with `Cancel()` - **Error handling** - Check for errors during streaming with `Error()` -## API Documentation {#api-documentation} +## API documentation {#api-documentation} chDB-go provides both high-level and low-level APIs: - **[High-Level API Documentation](https://github.com/chdb-io/chdb-go/blob/main/chdb.md)** - Recommended for most use cases - **[Low-Level API Documentation](https://github.com/chdb-io/chdb-go/blob/main/lowApi.md)** - For advanced use cases requiring fine-grained control -## System Requirements {#requirements} +## System requirements {#requirements} - Go 1.21 or later - Compatible with Linux, macOS diff --git a/docs/chdb/install/nodejs.md b/docs/chdb/install/nodejs.md index 47cc55bd23c..88207aa5459 100644 --- a/docs/chdb/install/nodejs.md +++ b/docs/chdb/install/nodejs.md @@ -20,7 +20,7 @@ npm install chdb chDB-node supports two query modes: standalone queries for simple operations and session-based queries for maintaining database state. -### Standalone Queries {#standalone-queries} +### Standalone queries {#standalone-queries} For simple, one-off queries that don't require persistent state: @@ -44,7 +44,7 @@ const systemInfo = query("SELECT * FROM system.functions LIMIT 5", "Pretty"); console.log("System functions:", systemInfo); ``` -### Session-Based Queries {#session-based-queries} +### Session-Based queries {#session-based-queries} ```javascript const { Session } = require("chdb"); @@ -95,7 +95,7 @@ try { } ``` -### Processing External Data {#processing-external-data} +### Processing external data {#processing-external-data} ```javascript const { Session } = require("chdb"); @@ -140,7 +140,7 @@ try { } ``` -## Error Handling {#error-handling} +## Error handling {#error-handling} Always handle errors appropriately when working with chDB: @@ -185,7 +185,7 @@ function safeSessionQuery() { safeSessionQuery(); ``` -## GitHub Repository {#github-repository} +## GitHub repository {#github-repository} - **GitHub Repository**: [chdb-io/chdb-node](https://github.com/chdb-io/chdb-node) - **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb-node/issues) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index 0d57990642c..5ddc854e528 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -19,7 +19,7 @@ pip install chdb ## Usage {#usage} -### Command Line Interface {#command-line-interface} +### Command line interface {#command-line-interface} Run SQL queries directly from the command line: @@ -31,7 +31,7 @@ python3 -m chdb "SELECT 1, 'abc'" Pretty python3 -m chdb "SELECT version()" JSON ``` -### Basic Python Usage {#basic-python-usage} +### Basic python usage {#basic-python-usage} ```python import chdb @@ -46,7 +46,7 @@ print(f"Bytes read: {result.bytes_read()}") print(f"Execution time: {result.elapsed()} seconds") ``` -### Connection-Based API (Recommended) {#connection-based-api} +### Connection-based API (recommended) {#connection-based-api} For better resource management and performance: @@ -80,9 +80,9 @@ cur.close() conn.close() ``` -## Data Input Methods {#data-input} +## Data input methods {#data-input} -### File-Based Data Sources {#file-based-data-sources} +### File-based data sources {#file-based-data-sources} chDB supports 70+ data formats for direct file querying: @@ -113,7 +113,7 @@ result = chdb.query(""" """, 'Pretty') ``` -### Output Format Examples {#output-format-examples} +### Output format examples {#output-format-examples} ```python # DataFrame for analysis @@ -133,9 +133,9 @@ pretty_result = chdb.query('SELECT * FROM system.numbers LIMIT 3', 'Pretty') print(pretty_result) ``` -### DataFrame Operations {#dataframe-operations} +### DataFrame operations {#dataframe-operations} -#### Legacy DataFrame API {#legacy-dataframe-api} +#### Legacy dataFrame API {#legacy-dataframe-api} ```python import chdb.dataframe as cdf @@ -157,7 +157,7 @@ summary = result_df.query('SELECT b, sum(a) FROM __table__ GROUP BY b') print(summary) ``` -#### Python Table Engine (Recommended) {#python-table-engine-recommended} +#### Python table engine (recommended) {#python-table-engine-recommended} ```python import chdb @@ -204,7 +204,7 @@ chdb.query(""" """).show() ``` -### Stateful Sessions {#stateful-sessions} +### Stateful sessions {#stateful-sessions} Sessions maintain query state across multiple operations, enabling complex workflows: @@ -258,7 +258,7 @@ print(result) sess.close() # Optional - auto-closed when object is deleted ``` -### Advanced Session Features {#advanced-session-features} +### Advanced session features {#advanced-session-features} ```python # Session with custom settings @@ -278,7 +278,7 @@ result = sess.query(""" See also: [test_stateful.py](https://github.com/chdb-io/chdb/blob/main/tests/test_stateful.py). -### Python DB-API 2.0 Interface {#python-db-api-20} +### Python DB-API 2.0 interface {#python-db-api-20} Standard database interface for compatibility with existing Python applications: @@ -326,11 +326,11 @@ cursor.executemany( ) ``` -### User Defined Functions (UDF) {#user-defined-functions} +### User defined functions (UDF) {#user-defined-functions} Extend SQL with custom Python functions: -#### Basic UDF Usage {#basic-udf-usage} +#### Basic UDF usage {#basic-udf-usage} ```python from chdb.udf import chdb_udf @@ -366,7 +366,7 @@ result = query(""" print(result) ``` -#### Advanced UDF with Custom Return Types {#advanced-udf-custom-return-types} +#### Advanced UDF with custom return types {#advanced-udf-custom-return-types} ```python # UDF with specific return type @@ -400,7 +400,7 @@ result = query(""" print(result) ``` -#### UDF Best Practices {#udf-best-practices} +#### UDF best practices {#udf-best-practices} 1. **Stateless Functions**: UDFs should be pure functions without side effects 2. **Import Inside Functions**: All required modules must be imported within the UDF @@ -435,7 +435,7 @@ query(""" """) ``` -### Streaming Query Processing {#streaming-queries} +### Streaming query processing {#streaming-queries} Process large datasets with constant memory usage: @@ -505,9 +505,9 @@ stream.close() sess.close() ``` -### Python Table Engine {#python-table-engine} +### Python table engine {#python-table-engine} -#### Query Pandas DataFrames {#query-pandas-dataframes} +#### Query Pandas dataFrames {#query-pandas-dataframes} ```python import chdb @@ -562,7 +562,7 @@ window_result = chdb.query(""" print(window_result) ``` -#### Custom Data Sources with PyReader {#custom-data-sources-pyreader} +#### Custom data sources with pyReader {#custom-data-sources-pyreader} Implement custom data readers for specialized data sources: @@ -669,7 +669,7 @@ complex_json = chdb.query(""" print(complex_json) ``` -## Performance and Optimization {#performance-optimization} +## Performance and optimization {#performance-optimization} ### Benchmarks {#benchmarks} @@ -680,7 +680,7 @@ chDB consistently outperforms other embedded engines: [More benchmark result details](https://github.com/chdb-io/chdb?tab=readme-ov-file#benchmark) -### Performance Tips {#performance-tips} +### Performance tips {#performance-tips} ```python import chdb @@ -753,7 +753,7 @@ stream.close() sess.close() ``` -## GitHub Repository {#github-repository} +## GitHub repository {#github-repository} - **Main Repository**: [chdb-io/chdb](https://github.com/chdb-io/chdb) - **Issues and Support**: Report issues on the [GitHub repository](https://github.com/chdb-io/chdb/issues) diff --git a/docs/chdb/install/rust.md b/docs/chdb/install/rust.md index 58e9aa0487e..0b8457c48be 100644 --- a/docs/chdb/install/rust.md +++ b/docs/chdb/install/rust.md @@ -24,7 +24,7 @@ curl -sL https://lib.chdb.io | bash chDB Rust provides both stateless and stateful query execution modes. -### Stateless Usage {#stateless-usage} +### Stateless usage {#stateless-usage} For simple queries without persistent state: @@ -50,7 +50,7 @@ fn main() -> Result<(), Box> { } ``` -### Stateful Usage (Sessions) {#stateful-usage-sessions} +### Stateful usage (Sessions) {#stateful-usage-sessions} For queries requiring persistent state like databases and tables: @@ -108,28 +108,28 @@ fn main() -> Result<(), Box> { } ``` -## Building and Testing {#building-testing} +## Building and testing {#building-testing} -### Build the Project {#build-the-project} +### Build the project {#build-the-project} ```bash cargo build ``` -### Run Tests {#run-tests} +### Run tests {#run-tests} ```bash cargo test ``` -### Development Dependencies {#development-dependencies} +### Development dependencies {#development-dependencies} The project includes these development dependencies: - `bindgen` (v0.70.1) - Generate FFI bindings from C headers - `tempdir` (v0.3.7) - Temporary directory handling in tests - `thiserror` (v1) - Error handling utilities -## Error Handling {#error-handling} +## Error handling {#error-handling} chDB Rust provides comprehensive error handling through the `Error` enum: @@ -155,6 +155,6 @@ match execute("SELECT 1", None) { } ``` -## GitHub Repository {#github-repository} +## GitHub repository {#github-repository} You can find the GitHub repository for the project at [chdb-io/chdb-rust](https://github.com/chdb-io/chdb-rust). diff --git a/static/images/chdb/df_bench.png b/static/images/chdb/df_bench.png new file mode 100644 index 0000000000000000000000000000000000000000..99144b90208a754f2d0ceb907a0a34d95d7a18c1 GIT binary patch literal 425811 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%0Ap0@sUijLqc7d(Du(kQ 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
}zxqDO+_#2*_ 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 R|_cf(rJ_B4JYqtiQts%Qv7Cv+LP?y z4uBRF*-62DyVTdf;3w}GecN*a$@-yBVy}lLyLMn#ZG*#- zu`qFy%wo}sH_S)&()(u6UN>7q1YJZ5&-~DN{|Mqv$(UrtXrV#=3L_JMQ#~<+=njHT z&)o0lKi~0f2=h&2$LN~x32R3t1LLw&7V3y?91H_N-1n!P9|!q-e)WB&6;N$ieTwaN zb@4gzZEC}$H+SQL(Jc-tLq8!@iw2)FEHaTs9cO251fl{c|My|-6fVMJCq;w^nO~df zVeLI+$vkHK>-5EPM^vR=6r?6DTn?{LO((!eMKYzky_*Td0DSHs$+3$lWTz%S9vB7*C^O91@sZ;wHd>+ z+NGQ=(329)m$P}eIaRjybm(F|M};+enZ6pflC$36os1sopY4t@ow|aUZe}bw8Xne= zyX~SC%zPO!R-HZCWbxGh!<^()7gz%HG}FD-x#O6kWfS$e6FX!*SpZ}5p<@?{ z7~o|h#M0_+j~;r8XpU)k>SQ@d{*@7Ed5K5vb>hfJ$~O>-0D}@QuPO!FXHK7tEanug z1_M9VLiABR>JMZ;Yd6ESyIh=F1KH2iO)!Veu>=D6^zFyQFC|tTW>eU?J@&i6>VWX+ z{5stHBS7w%U@QYj_tj57V7C7An>Ezum`WiuB~Xn<#}qh?^oG&8e4I&&CQJ6w!MI_L z{m@adXu42i`#i5%<$gZFUUbmc1bb1No7(u?b@?Kr@zkl)-AL9Gp)LoV9q`M3y!jP2q@ z;e{Ag zMczq34nNOAvFI>kBUP+sz!euXOLO8#xANuzlgHq71L%~`y>_NfD zp7j~Seni2f&~J_8U(~G0-V(Z#XYAr(w=*QFnQn262cPa#&3j8169mTzvoM2C?u@-q zqJ*UhN=3kqerea76#^@L>QDO}=@%au&7}vKDQ^Sw_Fsoe^jdGJ!RSdlb~0bmpDEOJ zsR2R3k-qhQeMp>giCoidfYsf{zIjd_FBNV$hOCvaH}iW5o(yAHnX6xx_H{fJ_C$L0 znp-Xw=Ke4G?txZB;|^vsQ$cHvhx(0Va`}~Y#4U8$%w_Xv=$sg|D zHjfRFqhgNt47v>d?gLDubIN0V_&E_MoX4bUDi~1Czg&5L25VS#;sIW8|K%nUUIv?= zUvEw*ZFhN>0*hs*2VT_BHkIzQR_2LW-=3UEZUh5Bz_ieEktQ@x+UHwTPgjyQu-29!sCqq(yH?(ct` z-WOso>>c)d`8|z$Xj{MVc{+L67C1PLm!-L;BYF9~W?;s`cWXAp8w#IE?`@ZeYiXT7 zp4ClBa&zWXnwLjfyXt3a^I>64f9ke7`A6e$2;cpgIut1fM#y9m{g-Z%z+a2`CVX?N)KIJjzbY7{ZnJ2`?hmSWRHsr12g!6B^ z043JapO*Ri0VpOT}}wNgd+b0 z^+Vh)VFIBfC3mX<0)WOLtRqU6Z2g`%*j^jSR~exH*EkHU+}jw6eHgbgezc^@_3i$Y8=c#quO7I~kbKe-wqNM0A> z$MgLpyG~c1_xf0%>a2YRz`XKk^u&=sYX0eU;JJ5{m%}(wQ=c?%^X=YkzXBqn(%!r8 z>+qq)B(JCap$8LtTPg7P0X_$zvRD!tPn3^+Sjr8mX4%OO2OkDcqNGo_(1~gc@Jws}_ z$TN&%1&C#TdGFuX_|J4&+^Q8Xo%GKvBs*9NY_{rc@-LK|`e^)7(c9i)e|GFbyKH5< z#*-+Ih1_yq0I7+U7yjxy{ggWz1HZSMK%P6Yc|JPZGc^O0*-G6l8V?x@TXL#+{l!a0 zY)>8oA<>q8i#vC_$1Dt^dDtJs%YzjR--WIF1MBO^8fyKLlLlpJ|uNC{f;5uvE5+7jRG;K}_ zUCs!v)hLlRH^uuyLkkNVb9M_vcq$#J7X$l7c9xJwRD4;YEDk^J9Tb|x^aca?Z%xx2 zR>7wCJ!Vh&48--79z*B}4J|A~1oWEvuH+?A9`Z&4GZpEkUR4h2|Apr8kuHi$=aR|z6sHxQ#^jQqIfkOBdhW{(` zD3@w--t&h74xRX{(=j^9fhXHe7bZly#Shjb20=0usS<&5Fop~$nNjD!3dmyd1^%2@ zPM0@m?&K4rHb6i?&?0EG%Q(l2HjT+9QcoR8igPUaUmVE1L#J(~Y#bm7kt>zkAG|Cc z{7kJeYgTxYq`WKhyZI%JRw=&Z)~Ca5-VXmLU3KBI0L7=S;`c16rGXz=^6Gu=_eE2D z2Gqf^BPK3uoT*>N4SnX=jn2{-%Xw}y-*5R^O)LJ%l0(c`pA3bxxaHgwrc9RRuXedu z?w>OT)>Yledm-aekl$UAs@5*88VOt`m^EKu>fDykmg?p9Wa@%#QoW7T=|oI6myCTn zHxAHGHF=rrtkzB@P-CetG_~gr?{#Fz*d0=5_6FVe{hSZEH^oBH8x9cT7T@W2m$^NX z8OQVYew(T_PKA_}@Kh9`!TGI_wB>;ry@11k<8XfOXO|^M|NF&Bl0Jo3j$nu_c2Omo zRc>GBwFk4rQ^z`JNE(lyrRGfSKy}q2<6Rq{)534RG&v`O`USRHeI{`7Mr5$}>S91| zSwuXl)>#|$)gdY8qDk0mbRRHgs`~&GN0(d$7NSM&O|C0-zC`%yzC8Jg0QbuO{OUPF z@r!j8#cT_j3t|(3m49r>tbTP6VN3by7D*?AYpk;5i3 z?*$)+@fWxuxs%?ICJ6puC7AMmikg8kG%f1-QstBAs1^5z$b_$`nk_DRMq;3MHu5*r zsU7A~{)D3t?niWidN!1QZ-kTVh#N2cz6(SafQJt3vWTw(-2$~5dnIyu|F}8)55jf# zFP!h!G;DCa&3?KvP%(ZTd6fFcGX`P(S0V2q#dMg^hyoQPb`kKx!tyX&? zr;Bwo*(UH;B$_K58u#qEp$tJ3P9<4Rz@GHzOA7G-#za(Jz0Zg#N^MBd5Oys@TAxw~3+-r5c zwN9LlR5CjPf7yLsaC{h(e`(6!C4uHiGUpcqlzdk;L)F+6|0OgT_&36>zn8M>&l30#?DTJY|BEgBzyF{d_)A(2 zVL(ui{;x^PnZRJ(zHHjvzliGp6EFI2ahKvp7}rhiDdT|)W~5t4fyYx0KOcb6q2rKrA+s|6=N^sZ2nlYz-5r&Vmrr#3_lkr5y#w={7m^0LVVtvvwEzB55oPv|XZ~~`3#B*c zy9%B6A06WV_9-Y?{+fvyJ%oDDf8AI7AV5kvzaxG8e|-klU(;tv4WQ}&|2NwI)n`%w zpk+w|xKc;|+cU=D{@zx)bRXKk!|lJZt)joM>7tn|X_NmJEp8g}*Wf3Mb|U_p>;F3m z%v0pjd=O9Ag>S@ulhK2_9>Dio>|AXu$iUxeAN~fM#Vyn**xi58|9{6r625<>4df_K z9+U_?heqa6ie6uGWnmN>`{>L~z+pcx4)J^3>iY&i1HtL`jrVH0lJ$aK9)9WZ5^lB$ zM^F#nEeBgar+nI(PVDapLSl!8t;s;<5z5n{g~k`yB7!DLjWWy2n+$IGpSvaeZt>d! zsh6b79tZhb*7FF_FnC-|EQ@KyQh@jfEG`rIq zy%R7LUVATpuyPkxp$S#3Sqrzy7!up*3}_Wh(1|a0!4;}`aY$=?#@b#+IrZg>rQT?k zJHmyNU~`YOog%$y&g8+hzku`Q?-m`6Kj<=JK`6|>_0T~8X9~>@Q6=vTHZV7nEIWN` zR{x{9uLf5zr|j`@>lGNf}jX0DkvgF>Aj`*tN(9qZ!^1hd&woa3jw}SaSu7y&DoS!ghLdr3y6#ER@i4upQB zvEU6MFu(%KfJzkSrfz4glZsAT6?WQi5zMD`V;c+nT|@96;zPy$iD?BiwC(PV zX>k5*LvS+@Z9C~TNBu@e;()5Ve?p#w%UryR=8=y|PJ9)h<}LHfZ|cV9o8`_p{42OXTS>ZWw8om377 z%^gQ<4#Db)k6oRh)gwVDq@Z%87&8_Gi8#wRh%_5hj9d9~H!6Oo@v`0uAHCb%okMiL zfXu-aar-R@)ykEL?^9JW0&z*#(qG;9v42GvrGwvfqxCtezaFq9ob)S1-W!v6o=zCF zy*#0iocy(u#(vOB->4xRl;@{MuJ-jsG9g({^JHnY`Yd(HNnCqNw0nJ_4Zm%%V(})m z#qG0#7|Z1(e>aOU z_Uk4G^}&K2r8K|OaNDnC5WU(GhV2vk4tQ#w6F1IKFzo0e6FTc75 z8OJ9b0ZXe)SgyHJmiy_a2rgPFuT$VtMw|i+KNDy}1Ag&B;NAa2@MqHSh~t#L-6{R> zII+6mzgHqS{Zn0lxmW2<0*hfo)yR?}1mF7DJYh2pRhBIQx)T{CUOI>MO!@t)fx&Hq za{k#QG)ben0|>tUeZ`9})TmLWjT}36EbhDSzIqXUXPj{cKKkgRn)0fuNMMyllRmo! zBfx}VgQ43iGG@+jq3A4gaw+$*OcdNwmh^sR-4N!w4r)a{0~||24&siM&<299Hv+ppA2xbA9JJNHhG`i1-6tBo=y@FxLglsscTmXgs=QAXx+7b=EU!@E6}sLMJ#9lp1!t8+pwk`YrXO1G4Co<6Crn+%yY&!+PymN*V>m~$IyhIAV zhirAi-bP+GwjO={9j|+^{wW`d7MYjt%Cn){Lr%20g!&&Px7|KH9ZN1Szt{RYG=El4 zCl345ydIHe*;yIbJfjTh9US=QY9c#S>vvlAr2R5sm^3K&_=5Z-`<$^P4HLc&g-Iu^ zL)-4NA&@5P7xZ=F zt&8H9^WslwxbhwIyrRyfx7*PxuX)eaZ~WrG#naSzdf^y526RkadnbJD#@H`n-+R&b z=k1XWoOfva@0IBEiCllT#*U*W*WI_#gWP!bU&b~TRawyEL3%fr#jZuPx=-xkz~iTf z>b&2AVBT-MHC)!n{w}}Z^7Us#o}DC{`RF|e{&#}BPNGja zmUfta^bLIwx?)TH{TBrL9u^x;AYbLE~hRsOUnT2Q54%`K!0r4B{l2u1^xv9E-^2sM-$U=|DQ&Zje z@#Asbb=T465_Q*CO+*~e2OoT3APeIp<6uUB5l9e$7H_!Yl7*s(UALAXa~y3EPO|fT zLz-wNf^U5_`LC8DFeCt1vARoIA1C~cX?tyCp(tClEq`1o9RI0XJ4U46ozAw&ZXgS@ z@6AXFSt$BwrSnF_m?$JuZ*|?jRA7?zJ82pXtTH7FMSaEZm&1OB14@O7rU#i5b&Ph# zB@0FVT|>)}`C0t&F3h~T?vYaG!k0>szQE+8Q543G5l9jOg1GyUwE4`)LQ%!y(<-pz zJ$I67lf~@%n1q5+WTDWG)4Np-nY+zXWE(~)LQkfb+#&e0d>Qz4Z#7GtfXyZ?% zZev>}nJN127leuA1j?&Vl18^ZNn<8B@dcnf(&v*&J2M62yFR#Z+UAEq@@Kr}*T-hl zB0&4HS-9wrq^6^jad|jF#?Q00}ybQT9AKn-C7Ps_m?8$d@?WABmU0f z22^jzk}<$dyZ?hIoo}q8a*Y?+w`HJms&Qv_Q?btG|IT^6E zko`(UTQ*P1z>5E-&SX#`ZQk$34CGx%8!Qg0gf*SaK9Sk;^^dqA2xj5Lz0E$(fsB91 zF_C++7lVG+?ff>WX#KtRu-2f6YBNfb874`Qd2|(oMx!7pw@v|>B{fUMVT?fI5qN5D z8t(YaxPEPXsfm@aV4VZUJu9ChkxLLb;%vA?T#!tjpZA)jh6EC(I3GAUh~90zuqz?t z(=`A75*IcXnV0td?=DRGR%(X5a=sHM(f2|gnX~lKa`d;&c1&GhLuS}SgLxUvAyjB* z3R9%QjXJD$qAS_$ojE!UZQ^L4cF8f`+ho`M@F{e^dYZpKbJJtTwA~uQkZul~(o?~S zJ%Z>)YXT>QiE%QEOke+RJ}{rY-Ng92?gIxtxHR_tuJ6N$Lw&e!rW*3f!ZbS1P+eE( z)3Bcrh>O58Z^VsCdc@?H0efWAXaU(;zworMcAD~ES|E>qN-h1!G`RAWc za|}%~q&`1n$PfquQFFpSXwl|W$D9sq+M)s#3*hu(Xv9Jo|-+R$ws{>iXjT&B+pT~YIH@5A9 zpv)PY3C|BM*otXhBB8v!&;`#YnGohk^)7s_qduS+`GxjnKAnlBxfZ7qv6~nBfv?3U z^Vf5XJLX;`v;63?Y-?;Nn`;y#IQF>{1yo2uk+~J>MP2mc!yE z5igCyyi3c`Qa4xU&oDj*4Xsnlmvd48|6H1eULTgD#j)jKvQWe+c0XEQRDnJ(NsAE$ zpVhum!PUDueBNAopV(g|GxmAi^}c-PbfxE8e+HeB;l)9(R)onQ(VorElR&ce>P52M z=JIEx)o6#d9+~=vYF0ahW}hIKhvnOmH{AHXPZb!Q?@(~`b_e#KRECWHWnr>V)Ftk5 z*9S_`ab!kK)g|8;$w6US)@*!eVXlJ$C|IDr-$dWCPn0A@O`$rEct+Y^s?NP}`8w{Njt{ zX;`^aeaDRG>%vEuSK&}PgU%k20JWs40X4X&W&8mzm;Wv|nz>v|iDkcA2s7 zt1OyE=UnT>Ekml%n>GOnvQRiNPK4>yk1q>^32PBH>n|_8nrq+KAC3ju8+DD6dZia$2fjY~7SnP?TO>fvyLrb&$mxoOx`GDa+tPlhtz!wH91>rRFpL z{d)z1|9i#!-zP*u)#m&}6wa82&;cE5OVxbi?z&qgRz(Xxe5VQ88JT~?i}L3Mz>t1` zAbS&WV{VtJRxYg}3q@e?w^hKggUJ(_Bl`{{&AVhz){SVpY&q?;PQsX(^oT6+lF`!7 zK1P5LV8XD8hJi3cI&eQ@Wlw*-=V};Eok}n9h#N6tgyyaJJ^l34Yy2;~@B+%p;_tYg zKYu=+efHUK`pJ_g!)B9$q?$t5!w4_}^+F)6t zFDKc4&zr`DxHvDd;MfWT-651-XWSiK_HzZY{*>tz(rytZZuPEmN;N98{3!2Tg^V*K z0VvW0UNOJtT7KWT#%IU=Y~8qPdHI(Ss1E|$-jL5&`zx(<=Cd4|g#c{c3$ju3bKgLfNCwr~I74$8xxxDj@&zlGrq-pyr)wx=joGkh- zYTni|)2}e;`q#DT`28d|7WSgEAdhh3&-2o;X<`N{nt<#t_)6Zx>?0&*x+cbW%NA09 zBT0VN>7G(pbByz&K5er7g4lJmjxTJ_Jx6w`baCu` zt*t#pU%JBDf+9_)Yh7XDy0-KpE_;YfQ835&zLYWSV+0z9K!7Qyp1bNjeU1CyO z#)TUkbrM`cb8%mCV(jGsyC~(0Q zYWCTm0r@)`T2x~B{(F~9C&(k6W?a}*>7j?o_)c9BJ~vK=G~TyvHSp$CggWFR_^*o) zTED$PWh(dF421|wB|o3!7*$Y8N}+7o2xaycP%b~OL1oq})8L^p`CG3^e=R=cvU8vu zad0guNG5arC@8(U#HQJ_j!cGeS+5j>pE8l1N{Hch;c&il)lSD%yqh%fl(I$+7K z>J@2wDtF%!lcrGtjcL26I7wqh6cwCH{j7>?+HTvC&5{aG*wrAgZ>@4_y4|#%Nyo*K zg+HwU#?bt>C%VGILj3jDU*V>=ZrvK)yLXT2hTHAN2`8L@nKNgGkq={xF8C)$Jyxco|?GDFX<@m zSEOd)^(A<5X6IJch^yy0+ zD0;(qAIrZrj(>f*!e8FE3Jx-LC!UM&^*e+KS)*ac2qYVU{IBG=&OTC(%TR@a<(JEA zQSUCA(}lTEp#j(wE)S~eD^7`MIb)_HvEqU!{K$uDW{K~rLPBlmU|E|in)|g}+v|nQL z(wo1!F!HTRT>Vccrkqnv({${MT(E0o(+Zaot+4I zepn}&{`++{9F*6vv6Q-AammdNfmdk(XQB0k&x_FIm%{St%+xk0}>Em;Y)?O@C%OsuApb&|aHfH1%L(mTfZWM8$3 z)bFF?4RoYyylRx|F9jyO1XL5bdBPymJj#Q20k@9_iVC3&It0O$8*7RSju=(rueT?! zt<19gPwChD1Sxk&*w_U+<#` zFkzVD8!t?b{)Y&|X!pd|(II=z^{!pJY8rd!p|k@ij_cX8XANN}%#E74M<0DOOg?%% z9^8Nb{borxj1gc2>WM&Fp%o-ruE{0H56zUNV*(Km5X*;a&@0a?IIQw_vwIhWV z={=pOOp}6yWVYQ&rbzvyz38A{3kg0Pa}_f2Y23;jJVoLp02732#mT54i$qvl7mO7k z#7$ez2%+I9%wcLSOoG)S>=9aa8d)gv6pSxHw#9>z`$!;7E|W~r`i2r2woDajlr5@4 zi(5UYdQpuJC)$mF{2Pq-!QV#}7-xQwfx>r<0&~$!WxK@Qu}cc6MVxDp9aTgyhL6;_ zI#xI&h(JYDr^LpI{KC0Oo778Zs0k<1XRLOjVt+YK!x8+45oja=nmJNIHYwRs;JEIA zbd+yW=c+84Ba0)?ZD6MYrClQ{O)z^Ioi{|IKb*Sd5Ft2@@7CPtK-CuYdCKT%gS)2% zt;tNCqpkTn#iA=t=QUJdvB+oKyWRMVi-g;s_YhgAVkFM86Xq$?x>(@Lw~%IG5S!kN zea{&xNWw++Mh9udsTgI`yhB@b>nwHsBz3M^_q>>UV@bn}k9x4;cC}v{pRGWL8|@J0 zJof}w`lD>6XOO&qGSu8xwaEr?R;F+{16*+TPHf|fICC?d%&iM8)PmV{V{cwNhcW_t zCjwjP+*`7#5boTtZdM5L?u+F%%v_;heG#2wn5Uo*$&oJ^K&GVavCr$qB029K+|GyZ z*E+}yrGi;xnIqRtdD~g&oVx%9b&0<=y6$~Dk%Q`*zfU^{MjT>A4r%ypqOyP8M8`xe zuRmBeZv47Iyk%4z26RlUu1Ry%^izKj^GYmf_~;xLZvRA`r=Fef!;MGN5oAvD zmXG<6&Sou9@$J>xii6q!=O0>GW7^d`S8_t1nis-z3mhn;ThJ|6Av2?N&&d3W~q}Bro8!5GYte!x?>H_yTOQuKbLY;OR4Z1j zz&-ce6Aqs^aUxo_Y#Eb=0~i5Dp#BJicG8YAoyL_Q4E-ed4QpFH97l+{O9(sFkHGrZ zm{<;BdbHvOV;yOu(@+@^N{dpG*>>x4B2GyQE#BvB?h|D8vY(MKb1bqGp(?`!cJ4=A z2=oMOB*V3?B$4pT0SL30sdO%CN2#vm&ZAWlEMA?$^r|>BvS_#}Xcp;;?k`0Sk%r!D z0`LtB){uoFP7t-;hm7|^gzqj_y-^AjL>s&9l zPp5~^VpK!q-}G*>yy`6u>Qn42U9no=qdMPq5`aXxZPR7@4*r17D;;Efw;k}bf}Q^- zggfSQKvZ!Jy7bX`ej2Ho)fK*#RiPSpHztKk@Ly?H7Yhw%(3B}i!JC+=Mn1N`a(5t_f`%}`p$}* zJ~Td;A1wvOe?`h4G@p$>xhlrosUVo%{Y_nGit``mUGGKonSHBwDfn%RzSiXXx0K3v zNt?{X=IO7l@nYB%2bOH{BAPUO5%C@7bZQ1}AU-1>8!S+2%~4L(-p zzyCG_$4`{kP}K~*Urf7)eHFiJ6V_J>)K885n-vB3JvlA06+jqL_t&|m1XGO z&1e8XXu#XoYNWpmS=Hp^x_T+O5wch9nLp>>|#cRKrnVFgw z+qZA8@e5CocE4P8)m7mzVXAc0s8NP^zF-6xfrcYsBP|rYvt%h@ZL81~YPe^x6WOCP z^hsbh5y%=6H1>j?dB@d6Qbo)>isA%mRW;fufM}|==YC6M;Z2el)VilEGh&xM+=Y^h z%TeCH9K}P+Q82n3;*3O*-={N~r{z!9uVah+z!qgHx;1OOI>ecgf;7~-g8NEQ)~3Qh z7H0Hu!tre&e4eE~?e6kB$;_g^R258VZLrY}bfFC^&bYLBXh-_QEG;Vh8`8Z}EIMt& za3sBYTwCqfb&V=`&$-J3*M35@V0I+-jCYyavUR&2m(IcJZ;Zag_y$3 z=E|#7;bu#kr`ujxMrJOhfYZCfmPpZ!PP6T$bnJ*|IJY}J9l2-3C*1_G)q0oeL>vjq5^OEK==)6&Su_s|CrHD;uSv(o2V==XS2ro#Z%jLz zBJZjj+z|I%xL!|skQT?(Y;;@1nBPQa&T6jpIY#1F3y=4kMp`qP3l!BN{nirkFC(yz zAh5MqzB{gazmmv8KRRStAvPWZ~(($qXmW z_vaoWG|*M|$TwA(GCx+mF279Hf9!#d7_w00-aj{pv-_lWp4+LLQgU3e?~+J23_mUD zwe`)lUecmeF%qQVweO|jp;@tHVYimX^{c)hL97W)yb*m}IJ~pOOq~BWYI+sk`(1|V z^CinanAX1M9hw$ygCK1+_b_Q>-}zFSRxJ%(F2y1Q#qp@bq(I!jl@H*Sajq zPps&IN(B4;gI+cfvPvTjUw$T*EWGyS#L7%Gl~$)nFUZ^|7d|twPd^#zG0Gui#9rdt zzD;(dMXvO-Z=XlNxH8=5;iw+~;%q{pK`4Hs-Gb4v=N1aGa8EtAP~X4OQYnCOx#BN2 zZQ2W;G8Y%qOH=1wdF2(%n>Q~UGI{c3SgopnOqYbci~u9hPz0)sQ@cV+7S880q*mN> zWTG>&w$!Rnbbpk20_D>#aXLlXR^%2{^ExCdRh?232q@h{BRPE1)=yc%~N{ zueGwYUt5&&d~m0+4lN!3G6D@nAP_ber{=b~)bY6e#S9eusBWU@{sM*3|90ITfI!5o zSwrhgBwyJt8TjK0bu)z^;|_RMk~#YPnL`5T|8+VBZT92f*_G%yy%ha^sKk)X4zxR0 zX!fa2oW&@#&-AY4SyB^i?Gt6#^?{s=gJljZztpX2j72g9<+8J;nDhhHb)z7uw!Pp9 zpJ`YV*+d?nPFunvyIg1OW~AYYyVOo?72A4<8*Q#LxnXfoDV`(D z@2c<84i{w*K`!U^I9UwA)=Zh+SH|BG25|UdpGF|R(m3xP-`#`FQpv5H6^ zF9ZQ7-1f2nCe2mXO&VxB%Z+QZkFRjy!^^7h$nZ+iNUX-(f6I+nW51|IVN`v3&9WIw zs`2wiWBFP=ss1gkmV{NhL;CBg*Nik2=6sTzs`%dM^=a1u>JlJCY&tgHdE$T zV!=9j52NdI+ARCKY2H~}O`4^&0W^^Kx>(>PTtU>B3J3BZMt~4d1VPyEpDGq} zXCnB?+@`}tiL4zWCMd&a>mA%rt^dQf5&UvKP^Ob*X6P2?BGsZrBouy?&bvDR!Ax3@ z5_uLBR@i!V0e+e%QmC$54=DHCtX(DVSCEv#iSy@Pf0H!lyM`axc^?~x@(>2%1A+)P;7Tt6G(It-fb7f7&J=s%GAY1R0 z-()h7efuf`#+Bs0ib4bWEl5J`Y(nv?Ck=&v;C{wJe_FG5kcFaGIXO~tT~bnF?5OUl zx>^dE^xB47w{FFlF=N6hg_hxAhaINN#a>2$5ojy|)fuYhg;q}0Qa=i=RiD-Ddps!b zO~TqzRueLjdv7MPh8v~1LZdDJ z^fF}5GcKwt2FiI$Yg5tlB+w@9Lga*yd9FK5H0sGiEnPByEp!f--UYLbf*XBYw7=w} zGPHc%s6i^y2u(eFLmN196E7>e?37%)V+Agf0L@iHie|byeGopoSzkw_xMwVT%ZPe28FC)+p1gtr7jCqLwuOic& zf881(3&&?5{UB9q&Q~nQo=q;l8d7DQc`8>q@ar(O4I*)$4@et1&N+nHM^vK4vE|U@ zEL!2hyy!u1R@Z3I2|}-Mrg4XgD6>0h)M;+<*%esO(Se`)IWgPg4VyUi=(K|EZ6d-P zEd%|wI?rBn^(Sc)FKBPWii0+IC_5pI@_E$N)R|EcwpmSFJWOH_ZRJZcHW zMTYhTKllp4^Djg2kJZNTl^YQpbTshyG8umHRnng<-}kd*Nhh5NWqT=|le63r{j+Doj@5@B&+gA{1nw8pKh^9ssYF*PvLt&ycI!>f{g0u_w z7S~!gq0~kg>a_~>rb}Ude2`&;ZQ8s|*F>%24`ACDQ5K zx|U;%#9`nrqkzQUE{L4xq##>sv-lMxqtKERM5Ak%1FoH^TY!g*&7>op5`SI0^U0Lw z9RL3@z#wG3Wvy~b9A8IQJKyRM$9+uJB zV8Z2GL}q7?RmXcEN|+zaHRjRRE&TpUV|*}{e~r$<*Ni~D5J=N)((vU6v3iU>Y|=4{ zOf`47H8M|AiF)lkTPx$-Uat!4NGu4;#Y5>tKAI+_~3ObFJI%`{pe&G9a`%4fD> zrSxkVI^AB1p8u0`t%ouTd| z7x&?i*;b@=OkDHcyTgGk@2dF)*_b6Z=G41iLTCB1V+0rh6@gqiy@rXN?yX{< zO+k9?*HT@7E!u31Z%fA+XzrXtjB6q-{N$c8d~Lo=uf-8xkE zd3lsYk-G9XHvXog<$eBRTkN-jS^4SqP?!My_Ildv6ES5wjo#Ob$)Z4Au2NS;+pLCR zR#zPyzh@($y!0{&DIy=flO`avetXk)NT=jrd3T0v%YQBfDk1|oS4XIb^Y7~8#@!}U zw{9o>N%93RxfuBND`^5%XvVdph4Tq#5D_~SN+DU=8GBQbYKv3M*3B{^v;Mmqm0PHN zSvpcyly=e?P>wiQmYZZ>@c0u+lkihnsxUz-%%Tb>v`xp}sQSgtVwL-!tEUY_iW z-u$i%W#2xEKqdkR% zg*8EX!f@fjh2d~P8usqp8+kNA>HjSfYW)${sZ*zL++&YDrUmgYBftpMfk1Uj^A9pj z+e&2jZ#D|nEUk^#bySg1bmluQI`hv+47Qx%M)`168^NrQRJOe`%a6)OTqd0%RU=+Sj1a_u1PplFvf&V%A!s>Y{3>YPHQwG_6%gzOgDl-|eHF|AZsV$Mhm z)*)E77Lw3j=af8NF6rQ4ZxRr&IQ=zbmmtbC;-u$GAt-5bPV(vq5l7U#kc4K0iwG3h zvE(?V#x!KliJ8c|&^UM3w=UNKa?UDSW}MH$Wzi$mo=jIBxzUD0$RufZ(yHu!p9cd- z>-#9`vt4Iu(%C_lrL{w7v9-Us6h~|hq4yLI+S7ckk%uBp=^8J799)6wwRHuf9ARkf~ubHs*6JXk@bsc?cU^BkyZ>S$*gHh0pne31)3A1&YIhkoHgMr6KD6vrLY z&RzL(uL|0D zWO#=-+PiH$at>Tu5c~WI4LxE0bp2Qb<4xuJGdcsaE)6vua5i{o5`} z7QUfKw{}dRsgY&cnT8D|4ZGA%BZ;JT0fT1P&~(6~P3p}T?G$IE!l#Hx0tVX8>O zifRN;I1MVN`T-yaKtTkW5rq1Z#JPnc?cU_{gyGLW|4iE2etHkZ4yB)d`l+VdJ$up%%*5^3 zvBM-(25Iqn@=?aprjS{)uy*a*njj0A61eozOHJETlZZWxz+R4kJVQtvz+oiTi=tn8= z5mouyNOui!{xjgq^QDgRnlBkAk0{rxw1dgNSn?`jOCnMjWCNi=lG7)S8JS8G+q|z@OXgWVX{tn4H|h zhxT#ExW+a!H(kz~<+^kHqRTClk1{fJuaP{RW?s2h5`+5u6*{Ib%PH&ArxE^6bT;YT z$Ej=1UF8q(__LQ8Ou{FC@*h(~Tv({2YQGePayMUlo#x2w{R!bKYu%E;?Vk zQh$5tG~G6?H^$X*rF3m4Q$)^5lmW@}1sAOZPChGKpwhh~k#M&I7hFMyp+_e6Tkiqh z{w#SF>PiZJ^#c@=35Ur^J(jvOW?tn{YSYd4%BUBfL}={2uq;}lYDsFO;R%Bf{Qh^D zE{VS2hqD3kFUnaix=eR0PT2yERMxR4iKnJG^ zGEq2TdbC$BIf>qV_uaH%L$_li3ZRD{ei#~2DEtmOWH!2dEz6WCQ!r!34DB-fJ7UBL zh&Hlg1ol+~s%V#e_Bk0f=eP+RECJ;c!{LNYnB?Hww>|q>WiV5!TqYyH`69BF&V_R_1MUuW+L5FC$S_7JY`E z&^U~Iumnj9sQhs8ubMOpZAcSjQ^drpXm5Z7mgrW0L8r)Dn+qILZHV?q5oU%+x)54) z(VB&VEEH!J7PYK^CodDFr^y3Avd8rFUugUxEp)*s;zl)EP zQq70so4c_wBLB+IImcoK_)BJXSChv>7;=rpDBH% z#d923cD-@V?LX5)grPA^pGWuw!M5~_G!*=-3PlBB+4bJq^F)^s@49q>6#97j#Y<%# zE{M|gPpWgE&>CzJ5j2~pmZ4U%B-H9`G8x^`jUNW8;gu^>`|P$no(RL|yhL32!{<;s z=?ur(+(tUPapheq#$mFM&Mb5upw5kbXDL`Tgh)doJ5x;>HgwDgjm^bFy)~v(4}O=< z^*yov?-5}xw)8JGUoO2LT-}UgzcviDxRUVsTPoh!N2m5aYjyH3BhXL;=KO8P^&c3= z`OML2DI*Nq(q;;w5hu)m{!Ug!{KVBn6HOv)`3{v(>ySkzg>7;jb=3aAl=*6Jmu|CS zP?y-Aui7OE(EVDR`UD{>%&xA<_hbH= z#0aa0X1Q?Z=jwY=kcHyR!UJ;Exn|Ziehhhr-nm3{Hk346uvV^1`*nP~P)Ia9^o2q3UtejpvUWBM5vj z9T+$`erE?9DG9=LtATZY16wwkr$6&N;Mn2DxYd6FwGoEGEM<2os}!avLmQn`G%0B)8xiq|b2X0`rd|k=ck=&Y zlGFrTOgk3!CTl6ea^Ky17Gc<-v)Ub!fdx}UD%aq}o;?ZyCJY;SyW)|CKdsq2$wCdT zt7zARAPj|@G-(p1O`ArWedOYI^5n@{Qk;6~sjyn*VsYfiku`B0?M}dyx-;Y?qra1K7h<jrrbEnO58jgjSrE7JZ50#oNg#pdnSl6cRhc3!Jp0mYw| zqt$p1d_!pAI)N7II+sPnNoiYEkRyVH)@bIxNu%&#DYOn=;zJH;83xyr#*r>ur1xK9 z?3W0OcHa5M`|9m4>x)jy*Ni|z5ok5ihgFZLxoznREH*jrga+37$K=@0yIlGkTAw~& z&}YMn^V6{78obzyztfIDMG$G7&7Y;Jl_aDdC(Fv}Z=5$paiV`_ zCL{$}xaKAgnMYOgcOK)0HC>jaHAS4c7>}H@x0iFeVzhv#Wl!2~i<5&`_ncZ>$u~AQ zFN*D}zOsVvRm^J0!tOG?t(6ab=aRB@gfuMtF@ONQf&>xT9Gt-Xw`1u@T_Q(?>+?!F zTAyQ1V%OE)EicM@;;}M8F1&uFg zUoOFnG<@Rgy&I7;&N!o{gKxk6Hga=wam5u^gvmXj@i%VVxSIH}V|6ddno#yI0*pW^ z5hx>#3&!wM=P(V_FRv!`O>uR3j9Tp^A2?d3Vdyy{dE|()Mcor zH*L5b6%(c4+x3e*tm$Z0OqJM^F|`~yiU;1Ge6Y_Bptz;+z7`BGNA{;46p{94?#wI{ z9B;fQp@o)O?~^d&syF2-$X1LoYfb&b1hFa3j4YTYNxz-<7~7|nYPnqV$=?7GFL+p9 zmy?E0`El}E^9drgysyMm3)lZShL=g~YzU2&{vtCKV zPnfk_esMZFlQ~T*X-RK=E{)DLRG$Z-W!Lfq!%UTE6>-z8`L7dOK9bLyr?(YbpN(&w zA@7QcnzI#4estp3(@K#y+>JKp(LC8L0BdWSC%4fY@~yST+@`3!{RpF(Rjolg-*RH( zGa+=m#)kCXB%E|vP(jv)w!THe?N8;i-{xv5Sk>~1-=BH}kloLXwxbnf4f2vUr5FBU z1ts67V_o>HTJ@Q2aY97MqtBc~f6j^C@EL@HMBDN@S+%;T_QHF=Ux8KEd(in-(puM% zg<39+G+cFa2KJj+X-XCrewl$PorX%qUs4FP?PWV`Erj5ooI-+MGDj`WdrXE~a*{&h zRK-;go+MB5dVgr{g1){mVJNOIp5}!w;KrGKs$f-u_+q&WBVL!} z&wr0Gl0wAAx6|R5ZgC z?B_mgifnuoT9?-jHojk<`QC=tXgzY?p=mgycL-f`f@qydM|qW5!sc|xexaI?6>Svx z2X(D|?q0Y-)$A1MuRBsaBe7VDIChM{?nEH8y$F^+76Y1D#;0F_(zP2fXBKb;X^)+B zrflBx5pBIlh^5E=z++RPJV4=dX9B+wxw(u;!B)Azpre7)&XvTIFxmN^t7Ta_pE85A zEX|Z8=-4Oaa~;dSVV%^%)AG;w21*&NsXl&(Ol!W6;FsS*Iix#q;YeWQXe||yZQn?L z3VfjlAAseG|ER?4@u$^ULvZK`P(+(nEJg6D8)DMekcRUX054BL@FnVBlv5@>s1k`< zxQ8Yz&5e5q%8do;Re&}iUqX1$d5@Y?UVaf6em3wqS*!bLJ_&k?fg^_jC(`}SX{jXx z?z>(3ljv(q+eI@PHD>hv_|MJqYU-2H&pt+g5MaVENy9)-8j7^ z(4paO3XMX&R-xAS2Of9;J$m%eF8P-cU<8^70ilWJ`rL`&kdVPtV|4YNPcl)S*SrL6 zP1W`s5@c6gEf;B~Tw@Rkuhy-URw$C57WJcqfQt49uq$Pi& z9uCKucAEH%G0#)MDFs4Z3+08=I{SLAi4IaO&N`KojbZ>Q z=oxZfUVm=?YSys1e?#>X@?KH#M*>?-8#VinA{ZyJ% zNJ?Iy0n2+2&wEC)4eyV67t;Q&l^HY=?kx(fA>gL$eyB^7Ld|MKa zlj1P=6Ko*hPuxl=tKFIBbUx^9Ar#y3>V*BBN&;?zXnOTqP#&dO5bxv(1rg6DGS~U7 z8@;_p^teWf$App7?rA5cHwX>ztyrMr`OuEVQz(By{A@0aPA)H)=j8tRZh@dneHS?) zPmbnLO6Q5l+0`nQ(8<~?d+-G%-)S|}*~#dVp5?p27s}q6$J_pQuN#3C$@=*~PVe`? zXMm8NX7p4_+JSms(BQ^?{q9k0PW|N@9Qil{eoV5qQ@08z@s(h$kk2&V6V=Y?<+cajgiG9?`b=FPU`St(OwGi2eY7vkrBo3E(^sZ= zD$xs#OQo)OYO%b@6vUaFCiYN;N71Sp@P8TgNa9h)9Y|Je|NLit0lr7WT)z0MNiqm6~!h%e_nQiQT#3LntYoEVI+36eSL zVd;7c6!Lks_!hFYc9Ofnf7L#RmNFc?>HTMO{EyCef{VZ5t}X}Ric?Eb-J22q(}knY zBjGjF+UhhLl*2YR$Z0+lYRN9Gxg(kYx&5fF*C14|#ZdR$^emM+_Rx)W2-=TVE9at~{D!Wpi(dL+erF=h1PJh=0rx+)*dU-Z+ zdX-UOtY-3J)+=-72^?kv0J6-LB9}nomgCG33z|t~q<5nLmVi6za>K+x>~HKTSqb<7 zip~Tto?GIimF2ka7IzgqLrkk?Gx`fpdIan!mvy5_T3 zY=G)2_j~vLUjcsVJvc*9X-=PLvnMa?PL)cICf!pA0+4%&!C6%<-_R0n^qU=s3Ey9b=Yn<_%p<;D}W+R|sy|Qs+uM74wQ;oh>af`M6Ql+1S~pd`RDBaU4C=^X7r8 zm(cWFj4mu^iP_#rHZvNV_Y$o0@2XsS$YC2w5Y9#fKjZPHZdFDD^S;@0-)e9^3J1-k zy!VN~S7M$bKv>~g=$}e7b3TOV8THmlQ?>)?M3>UePANqf;}M(AmP6gf22acyUG4E# z-N;4l_l+c-ru;4~ zgkARvWpvb^K*7XIu{Ipu2hu1K<%wWPj(z5KU^xt`ses#Wj=%|trx&>JI;4m;%*C!8 z^IZI8vsoII-e0mF7r&*8-H?N7U0(inIf1)i_%Q}|j8+pgd{VVS02|QWHcTisPl!na z`1Q-_L}%kek`?H^zNE79 z^m;|9#&bD98TS~XJew-te9*5$$|YujKkNFff_G`nXa(?Xm03f2*X}B`sDNaFNz6fp z2IMo$u&J@DB@=(CT<~?*(?heo601>T&3k*T!#|yRVJB)+Oz53HN1au1EXGp&+OU3@ zJtcEg&YPl(zHBY!k|X=fpT;<7bt1mV{nsus3vT-IbyTeElv1TJe>Rmz*|TQ-BpcWz zk2Rk!QE*^2%#x*uGwCWY9t=RHOT0T@frC2EoS!u`fSVDxIMI?Rro#M0+awZ1O=xmF zpoeV-6)+^j7~27Yf&Qm89?F!%fbcgBf>|_DXeq5Hu!HLSdP2;rW*)66sUv2ME4Us> zRUbVXme~>c^nomQype9(KCx_kwFPlZA5(;97r%Q8TAxiUs$$7`_JS-YHzk|h(%0lQ6qXulbqKK|pi>Kb-&@%%vB z)^F@=r{!u4%0^_j)l9iS37aj6;u4PIOlOBKK2zA83bAtKzT0dTgD;=So+yW_ZDKA7 z1-hLu?=dPjNX5^L<1mfU92X97+P8Jat#QLWwu1gT9O!S`<$OS+lT6sL5gM>8K1dG_ zI4cO|59qv=EizD~IO`=bUL?~jY!gC_dz3!z#9$$~D6MUFgYXLd4taR_+pSDb{ zw|lsj&H=hmzgewy+grIMNmt-Zvkt|L``?bv(SS9}1M2WB}rF@en*JN47O z4<9=ctP%t>Ag0J=0VwPSM;RkhD%$h*evG8gzR>zfbh3O!mOL%n4yBkz3lSM(PwwZ7 zy_%IB^PQv^$DA4ovx6Zs2HoNVF6@pJ)mMI_;$c7oC3BfVbFAv+DgULpCO2@>pi^() zWrQQEWoH=6F4wrX<^>hOc1P%!|7kE6w`F z66y1^`a({Am;9GvxMeI{0;>%20qn~^16%ftSrkC6(*~qq*St~_JNvKe_K@`S^u34D zr~=m_EgQ8zn;t`a9Z5h%1fXm!1gJM96{eh0uH+d!)s>t%USDS%vbKHl?e9Akpaadw z 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 z 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 z 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 YGh{etQI Date: Sun, 31 Aug 2025 09:20:38 +0800 Subject: [PATCH 7/9] fix: correct capitalization in section titles for consistency --- docs/chdb/install/python.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/chdb/install/python.md b/docs/chdb/install/python.md index 5ddc854e528..65fa61055cd 100644 --- a/docs/chdb/install/python.md +++ b/docs/chdb/install/python.md @@ -135,7 +135,7 @@ print(pretty_result) ### DataFrame operations {#dataframe-operations} -#### Legacy dataFrame API {#legacy-dataframe-api} +#### Legacy DataFrame API {#legacy-dataframe-api} ```python import chdb.dataframe as cdf @@ -507,7 +507,7 @@ sess.close() ### Python table engine {#python-table-engine} -#### Query Pandas dataFrames {#query-pandas-dataframes} +#### Query Pandas DataFrames {#query-pandas-dataframes} ```python import chdb @@ -562,7 +562,7 @@ window_result = chdb.query(""" print(window_result) ``` -#### Custom data sources with pyReader {#custom-data-sources-pyreader} +#### Custom data sources with PyReader {#custom-data-sources-pyreader} Implement custom data readers for specialized data sources: From 47788091206dcc89143a1267bc7568357962ab92 Mon Sep 17 00:00:00 2001 From: victor Date: Sun, 31 Aug 2025 11:50:49 +0800 Subject: [PATCH 8/9] fix complication --- docs/chdb/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/chdb/index.md b/docs/chdb/index.md index d2bc6ad0dfa..c8edee36634 100644 --- a/docs/chdb/index.md +++ b/docs/chdb/index.md @@ -6,8 +6,8 @@ description: 'chDB is an in-process SQL OLAP Engine powered by ClickHouse' keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process'] --- -import df-bench from '@site/static/images/chdb/df_bench.png' import Image from '@theme/IdealImage'; +import df-bench from '@site/static/images/chdb/df_bench.png' # chDB @@ -61,7 +61,7 @@ chDB delivers exceptional performance across different scenarios: - **[DataFrame Processing Performance](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - Comparative analysis with other DataFrame libraries - **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** -DataFrame Benchmark Results +DataFrame benchmark results ## About chDB {#about-chdb} From e43777f95908f4cf07c161ca55e85ccfe3baa98f Mon Sep 17 00:00:00 2001 From: victor Date: Sun, 31 Aug 2025 13:40:38 +0800 Subject: [PATCH 9/9] fix complication --- docs/chdb/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/chdb/index.md b/docs/chdb/index.md index c8edee36634..a051b8f028a 100644 --- a/docs/chdb/index.md +++ b/docs/chdb/index.md @@ -7,7 +7,7 @@ keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process'] --- import Image from '@theme/IdealImage'; -import df-bench from '@site/static/images/chdb/df_bench.png' +import dfBench from '@site/static/images/chdb/df_bench.png'; # chDB @@ -61,7 +61,7 @@ chDB delivers exceptional performance across different scenarios: - **[DataFrame Processing Performance](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - Comparative analysis with other DataFrame libraries - **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** -DataFrame benchmark results +DataFrame benchmark results ## About chDB {#about-chdb}