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.2.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.2-cp38-abi3-win_amd64.whl (23.9 MB view details)

Uploaded CPython 3.8+Windows x86-64

elasticube-1.0.2-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.2-cp38-abi3-musllinux_1_2_aarch64.whl (20.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

elasticube-1.0.2-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.2-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.2-cp38-abi3-macosx_11_0_arm64.whl (21.4 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

elasticube-1.0.2-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.2.tar.gz.

File metadata

  • Download URL: elasticube-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 f953656a30aa28f1d8737b61c63af50b2ac6a9fe39be5d0f098e1d47259a7370
MD5 ebba218f03f8d4b7744c1aceb4cd2f1a
BLAKE2b-256 f92422dd60bc008c065da0fd990d071621f600458c4caa2a7f527de129c5365a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: elasticube-1.0.2-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.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 28883f8117e1590b45640572f2c1db75521dfaee934bbfcfc670f1754e77a134
MD5 4ad54a00998b35c80317b84886f3af1f
BLAKE2b-256 4662af426ed9c886ed370cbef6f2ecb1ef85223dfeddc8108b2daf3727b94df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 84a19e8c43d93bbde792627a3cbcb9712e399ce16b45a036f43bab6f09e96095
MD5 920fc6d5a4c901c43b4c38e8823c5748
BLAKE2b-256 cf52b0d50fe407a4d746c1380b59ca7ee6fc140fdd8ac5b3a194a8bc3857d666

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 62552167aecdd5291aa5ef8318256d8050b6d2b1f3a0c76a0b208175cbbcaf74
MD5 b86ad881b1686c99efcfa05a4f56acc8
BLAKE2b-256 58aa6e6156b43e65bbb999c3eaf02f9b75032dca9d8d23d9b5c1014032af5639

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 147cac77d2b997363ad1045264a51848ecabee84718fe9fc97b180dce3fa4c7e
MD5 4b0cfef69e9b70df72df44dbf33bce92
BLAKE2b-256 eb6da29a2fe64c533982e542cfdf1ff5809ef4e031a997fcb812f6ef1a2bff3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 48f1ddf7f63d57b14152c0c9f84f72d85032eb1eeb6f0a1a5e4b7af1eedbd31e
MD5 5db4c66c04a037209a68267a5c1a3803
BLAKE2b-256 5053ae36bcb3c79adcb5f73398c8a43a33063b441424fdc401dccb551110c25d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5d4226d7af4a333e5c45533e7273a77d23d451e64c85e5f748a6af913f46b9c
MD5 c3c3402af80e859fa5f53c9765d4868a
BLAKE2b-256 5f16bdb1c560c91dd4365e06712ed5aa881e07f7062f2b0574deef8862f308fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.0.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ee364c46b46de49e34315d4eafea86c94b5da62d982f59c8c4f2c4be176560a6
MD5 339f4e61114803fb4ad67655ff28b436
BLAKE2b-256 bf97360de24a1a33f87774645881bde91f0e8b5f5fa58297ef383caa8c23987d

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