Skip to main content

High-performance OLAP cube library with Rust backend

Project description

ElastiCube Python Bindings

High-performance OLAP cube library for Python, powered by Rust, Apache Arrow, and DataFusion.

Features

  • Fast: Native Rust implementation with near C-level performance
  • Columnar Storage: Efficient memory layout using Apache Arrow
  • Familiar API: Pandas-like interface for data scientists
  • Type Safe: Full type hints and stub files for IDE support
  • No Pre-Aggregation: Query raw data with dynamic aggregations

Installation

pip install elasticube

Quick Start

from elasticube import ElastiCubeBuilder

# Build a cube from CSV data
builder = ElastiCubeBuilder()
builder.add_dimension("region", "string")
builder.add_dimension("date", "date")
builder.add_measure("sales", "float64", "sum")
builder.add_measure("quantity", "int32", "sum")
builder.load_csv("sales_data.csv")

cube = builder.build()

# Query the cube
query = cube.query()
query.select(["region", "SUM(sales)", "SUM(quantity)"])
query.filter("date >= '2024-01-01'")
query.group_by(["region"])
query.order_by(["region"])

# Get results as Pandas DataFrame
df = query.to_pandas()
print(df)

Supported Data Types

  • Numeric: int32, int64, float32, float64
  • Text: string (utf8)
  • Temporal: date, timestamp
  • Boolean: bool

Aggregation Functions

  • sum - Sum of values
  • avg / mean - Average
  • min - Minimum value
  • max - Maximum value
  • count - Count of non-null values
  • count_distinct - Count of unique values
  • median - Median value
  • stddev - Standard deviation
  • variance - Variance

Data Sources

ElastiCube supports multiple data source formats:

  • CSV: builder.load_csv("data.csv")
  • Parquet: builder.load_parquet("data.parquet")
  • JSON: builder.load_json("data.json")

License

Dual licensed under MIT or Apache-2.0.

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

elasticube-1.0.1.tar.gz (392.7 kB view details)

Uploaded Source

Built Distributions

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

elasticube-1.0.1-cp38-abi3-win_amd64.whl (23.9 MB view details)

Uploaded CPython 3.8+Windows x86-64

elasticube-1.0.1-cp38-abi3-musllinux_1_2_x86_64.whl (22.4 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

elasticube-1.0.1-cp38-abi3-musllinux_1_2_aarch64.whl (20.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

elasticube-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.4 MB view details)

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

elasticube-1.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

elasticube-1.0.1-cp38-abi3-macosx_11_0_arm64.whl (21.4 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

elasticube-1.0.1-cp38-abi3-macosx_10_12_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file elasticube-1.0.1.tar.gz.

File metadata

  • Download URL: elasticube-1.0.1.tar.gz
  • Upload date:
  • Size: 392.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for elasticube-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4ac8b991599b8bba87d18fed93ffff6da468e3fa2d2726a83867e55b578b719a
MD5 5793e4e3fe2553139d24fd3d91ea5844
BLAKE2b-256 9083bd72754a14efb610ead266e6a657eb0ed440328b5212e9822cde46f7742c

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: elasticube-1.0.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 23.9 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f21889ddddc769aefd9bad249624fd8549a41b196cef2f238f3cf4e684aa9fe6
MD5 cb576a10232d22e7ad567099311da3f3
BLAKE2b-256 35f1c8fb4110becd49c582a0c791ba19a52db1b0b26814b034879260cb7a5d44

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d4cb99f5b55996ecdbf711938713381e70a0cf3037c72ba15aa5c6be54dd00fb
MD5 6a30b0f2464df2eb9063bf230d168944
BLAKE2b-256 6da3b085e242688b7821ac10be1298c29f493b13ee3eea0755efbf5bc6136b25

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 daed323883264b429c24ca14ab51a052c04ceaed02ba3d1bd251f1d1c79a243d
MD5 1b5b176ee0a1ed9719eb737278671302
BLAKE2b-256 e744ec2fad964165b5860aba21f6c66045809fb126e597ca4067b3beb18b2c67

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 374046196b7ba785885e43f230f26547c3f86733036b6720504f45e45f7b378d
MD5 26630148cebbd2e43328334132bad792
BLAKE2b-256 f80b24c5c1887ddcd4f6ee07e914132f8ce9723703b6a7079a4c82975d60bf72

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2aab25973afdcdee992bdb6dc8de83f34369cd5018f53795a7751695987893e
MD5 eded7d6035533ed48edf8a1247219914
BLAKE2b-256 99560a88402674c2e32dfea204eb3ff1b3942611da52f20ae553d6918bfcfd1b

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dab75b4cf5a9249b356867f8f921258413b1c9878e25afa0e92135432151176d
MD5 d8c72a32469ef97218fd6c9782b35a00
BLAKE2b-256 412b4c2a5d644056f3983b7adfe633879f2c43b790c0db9b8080323e0f00f2cc

See more details on using hashes here.

File details

Details for the file elasticube-1.0.1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for elasticube-1.0.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 deb24aba1fbc9aa7b01c11941943dc94a7c9ad8faeffd52ab7d17830b7258a37
MD5 4d60ffd5f40670f822fcd1c446562f44
BLAKE2b-256 93ce0665713d2bd763cb1796dbc247693855281097d873e8661cac44d2bd6963

See more details on using hashes here.

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