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.1.tar.gz (392.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.1-cp38-abi3-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

elasticube-1.1.1-cp38-abi3-musllinux_1_2_x86_64.whl (23.0 MB view details)

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

elasticube-1.1.1-cp38-abi3-musllinux_1_2_aarch64.whl (21.2 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl (23.0 MB view details)

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

elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl (21.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

elasticube-1.1.1-cp38-abi3-macosx_11_0_arm64.whl (22.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

elasticube-1.1.1-cp38-abi3-macosx_10_12_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: elasticube-1.1.1.tar.gz
  • Upload date:
  • Size: 392.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.1.tar.gz
Algorithm Hash digest
SHA256 70d487ebb5c0bc4a832dbffef81e7cf81a65a5b1d95712882de7dd0a279c6cf1
MD5 23b76fd93e058d9d5247dbb2b60fb372
BLAKE2b-256 2579081fc411063090d8ed7673140c924d46b220d58f69be58da5278f8367a9b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: elasticube-1.1.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 25.1 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.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6e621148bb4920e24f69fd3465b781633a768180fa246f2d509761247530ef2d
MD5 a61ad12b6e250fd529026876b84d7371
BLAKE2b-256 b0e288ae6c016290f7add1b40f0666c257dd7e05ef4ac70979d1dc2c37e3c9a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d213bcd4b8e7515cc94c9a220109c629a2252bfd4dae3bc38b8fc20d68c07455
MD5 3f62bb80bc3482f5bcd8f5f4d8591388
BLAKE2b-256 469d03528ffcc80a2c797e285c5f59120ca44a5e316bb03d35011256abbafdea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 299a6d849d64363915c374f7518675723a327b6d7a0cab3f2d231b734ae74794
MD5 1a4e476b56070b1646fe1474a4d064e4
BLAKE2b-256 eb2be6cf2f97f224e1161b40175715275e94d0b743eda626610892c99782b393

See more details on using hashes here.

File details

Details for the file elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34884db5c8126ebfe8e988655bc33609c322d505d0e8e21b6743f8b441e780d7
MD5 678599af436ebc739da772981a67b5bc
BLAKE2b-256 e0892212bffa5b27366bdd74ddba876f0a4f45cc609adbf4558123e6323cceab

See more details on using hashes here.

File details

Details for the file elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46def58bfe03ec530c355e0f59de89700aa6f89d35c498f03fdddb7dea4e3d42
MD5 f65c0eccf8fab0f048f14686da87146f
BLAKE2b-256 869db6b8926cea9c1e21bd1007d042295b8fb02c1b566f14d389b5abd3b8a61d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 406aa6ae95e3947b812869dcfe891218b293640abeafd9737dfe79983294d5b4
MD5 e63a696aa254e59d20e88b08a1d122ab
BLAKE2b-256 338334a280ef9c8f12599391d60798509786bca00bd6dcda42e33733f4c697cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for elasticube-1.1.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 114951ff04c4fc0a828b8b8eabb35eeca7daa198874e19a52d4806ba778b6f6c
MD5 26e6da975564ae5ac184937598bf46cc
BLAKE2b-256 19df5b91002117eac0093ae2f06e88e2a95461d7344347e39b42b95baea8edfb

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