Skip to main content

High-performance OLAP cube library with Rust backend, featuring native DataFrame support, streaming data loading, and dynamic aggregations

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.1.0.tar.gz (410.9 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.1.0-cp38-abi3-win_amd64.whl (23.9 MB view details)

Uploaded CPython 3.8+Windows x86-64

elasticube-1.1.0-cp38-abi3-musllinux_1_2_x86_64.whl (22.5 MB view details)

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

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

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

elasticube-1.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

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

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

elasticube-1.1.0-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.1.0.tar.gz.

File metadata

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

File hashes

Hashes for elasticube-1.1.0.tar.gz
Algorithm Hash digest
SHA256 530a867625b625eb5d2d05c74b3e2bdad0fbd9eed23611c05a44c023ad64007d
MD5 621ab4aff4a695016942002c6ba74857
BLAKE2b-256 b1be78cfe1c974e580034413c070720ce833b58ab2d2a86a387c0cacfc5433ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: elasticube-1.1.0-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.1.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 667b3a52905256ba03d9847a63f728597cf53ec79fc1be361497fbfcd044ef1d
MD5 84f2de533adc6f4a32fd628dd5b1fe57
BLAKE2b-256 6cdb2396600abdb71d56e2798e86ad76b90fe58a69c5eda5713005494220d428

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a9aaacce8dd7b7c3e2de74227b2f853b39c61237afb76836789625b296fb4a27
MD5 b424db5823d4c932382568a72c453cd3
BLAKE2b-256 4ea314cfb97723d0956941b80e201df5e4a5f986028bd0387b3d0766464d2768

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c0870a83c89430a9cf001f1ed37dbf27db1530e3b4832ee3fdc3b04b816e4011
MD5 3600da0576e7ea64de2786ab619e37fd
BLAKE2b-256 3019a883627f0057b23f4bff6e8160f59fa1b1f689025ffefb11b501912c30e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf79efe37954167685b18dc5f2e4c582a3981e223f353e06598e5163b0ae7961
MD5 81a8f7fc0a4825472315b0b7e0b596f8
BLAKE2b-256 a0a9b8bd09a836a3ae64867ca166470f68eb450c5e5993f7610609e33b2987a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1a4f3224f396594790a03bd07835a3efa9615c0a74e68c13ab534666d9240ddd
MD5 44918aa35c2d74c5bbe2ab41b5622a00
BLAKE2b-256 f7b733569a4d2b2c57914090898689189bc9f18766c41c54645e20b542f8f64c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd0a6a2cba7becd238c98a2406f867023ddcbb1ae1ba15c45223b3c6a97e7661
MD5 ea36711535292a7a375f325884adfe33
BLAKE2b-256 1b67ae6d32d5c5ad028fbd4a450941688f87e7df88585ab78f847a2a3300c72e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 282b54728edc1dd5e27ba69db421c1afc90fdfe1929dc5af5ae3e4ce4411c3ac
MD5 0919902c838e3a58fb749c8069998928
BLAKE2b-256 3bffad76f21ad70eb95560ef168bd4f89a2c703dc349b21b83ba0c8444494640

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