Crate elasticube_core

Crate elasticube_core 

Source
Expand description

ElastiCube Core Library

A high-performance, embeddable OLAP cube builder and query library built on Apache Arrow.

§Features

  • Columnar Storage: Efficient field-by-field storage using Apache Arrow
  • No Pre-Aggregation: Query raw data with dynamic aggregations
  • Multi-Source: Combine data from CSV, Parquet, JSON, and custom sources
  • Fast: Near C-level performance with parallel query execution

§Example

use elasticube_core::{ElastiCubeBuilder, AggFunc};

#[tokio::main]
async fn main() -> Result<()> {
    let cube = ElastiCubeBuilder::new()
        .add_dimension("region", DataType::Utf8)
        .add_measure("sales", DataType::Float64, AggFunc::Sum)
        .load_csv("data.csv")?
        .build()?;

    let results = cube.query()
        .select(&["region", "sum(sales)"])
        .group_by(&["region"])
        .execute()
        .await?;

    Ok(())
}

Re-exports§

pub use builder::ElastiCubeBuilder;
pub use cache::CacheStats;
pub use cache::QueryCache;
pub use cache::QueryCacheKey;
pub use cube::AggFunc;
pub use cube::CalculatedMeasure;
pub use cube::CubeSchema;
pub use cube::Dimension;
pub use cube::ElastiCube;
pub use cube::Hierarchy;
pub use cube::Measure;
pub use cube::VirtualDimension;
pub use error::Error;
pub use error::Result;
pub use optimization::ColumnStatistics;
pub use optimization::CubeStatistics;
pub use optimization::OptimizationConfig;
pub use query::QueryBuilder;
pub use query::QueryResult;
pub use sources::CsvSource;
pub use sources::DataSource;
pub use sources::JsonSource;
pub use sources::ParquetSource;
pub use sources::RecordBatchSource;

Modules§

builder
ElastiCube builder for constructing cubes
cache
Query result caching for improved performance
cube
Core ElastiCube data structures
error
Error types for ElastiCube
optimization
Performance optimization features for ElastiCube
query
Query API for ElastiCube
sources
Data source connectors for ElastiCube
storage
Storage backend for ElastiCube data