Skip to main content

A Python framework that translates Python code into ClickHouse operations for big data computing

Project description

aaiclick

A Python framework that translates Python code into ClickHouse operations for big data computing.

Overview

aaiclick is a data orchestration framework built to make distributed computing easy, with three principles in mind:

  1. Simplicity — Python-native syntax and dynamic task execution.
  2. Performance — Utilizes ClickHouse's powerful distributed engine. Data lives in ClickHouse as columnar tables; Python code orchestrates operations — arithmetic, filtering, aggregation, joins — that execute as ClickHouse queries.
  3. AI Lineage Superpower — Query your data flow. How did this value get here? Why don't we see that value there? Trace lineage across operations and debug pipelines with AI-powered agents.

Local (in-process, zero setup) and distributed (Docker Compose provided) deployments. Runs locally with embedded chdb + SQLite, or scales out with remote ClickHouse + PostgreSQL.

Early stage — looking for early adopters to join the ride and provide feedback.

Installation

The base install includes embedded chdb and SQLite — no external servers needed:

pip install aaiclick
python -m aaiclick setup

For a distributed deployment (remote ClickHouse server + PostgreSQL):

pip install "aaiclick[distributed]"

For AI features (lineage tracing, debug agents):

pip install "aaiclick[ai]"
# or all extras:
pip install "aaiclick[all]"

Orchestration

Define tasks and jobs with decorators — all data operations execute as ClickHouse queries:

from aaiclick import create_object_from_value
from aaiclick.orchestration import job, task

@task
async def load_sales():
    return await create_object_from_value({
        "region": ["US", "EU", "US", "EU", "US"],
        "amount": [500, 300, 150, 200, 80],
    })

@task
async def analyze(sales):
    # GROUP BY + SUM — runs as a single ClickHouse query
    by_region = await sales.group_by("region").sum("amount")
    print(await by_region.data())  # → {'region': ['EU', 'US'], 'amount': [500, 730]}

    # append rows without leaving ClickHouse
    await sales.insert({"region": ["JP"], "amount": [400]})

@job("sales_pipeline")
def sales_pipeline():
    sales = load_sales()
    # dependencies resolved from arguments
    result = analyze(sales=sales)
    return result

if __name__ == "__main__":
    from aaiclick.orchestration import job_test
    job_test(sales_pipeline)  # runs all tasks locally for debugging
python sales_pipeline.py

Data Operation Only Mode

Use data_context() directly for interactive work without orchestration:

import asyncio
from aaiclick import create_object_from_value
from aaiclick.data.data_context import data_context

async def main():
    async with data_context():
        prices = await create_object_from_value([10.0, 20.0, 30.0])

        total = await (prices + prices * 0.1)  # scalars broadcast automatically
        print(await total.data())  # → [11.0, 22.0, 33.0]
        print(await (await total.mean()).data())  # → 22.0

asyncio.run(main())

Documentation

aaiclick.readthedocs.io

License

MIT License - see LICENSE for details.

Project details


Download files

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

Source Distribution

aaiclick-0.0.10.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aaiclick-0.0.10-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file aaiclick-0.0.10.tar.gz.

File metadata

  • Download URL: aaiclick-0.0.10.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aaiclick-0.0.10.tar.gz
Algorithm Hash digest
SHA256 32bb1fba4232fb8563f72678f58da0af8ef834740bddf58f63cba2806f650f6e
MD5 1385953b0589fd01ebedd66bf84bd5b6
BLAKE2b-256 b9aa6d43dd070aa1c374ac4349a0eaffa6e49015ae4e26541a76149a7d3e7ac0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aaiclick-0.0.10.tar.gz:

Publisher: publish.yaml on kolodkin/aaiclick

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aaiclick-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: aaiclick-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aaiclick-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 f318cca4a7b031d73561bbcb7ae2b5070f5012ff17b2f210b9b463096c11ae9a
MD5 b0f0e9a0cb7e996a91f7a07c8af712a9
BLAKE2b-256 420f3bb7cd0c01ee8bce2899f4f6ccdd3ddb2c79a36ecbb7d5833448cf5d807e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aaiclick-0.0.10-py3-none-any.whl:

Publisher: publish.yaml on kolodkin/aaiclick

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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