Skip to main content

DEKER™

image

PyPI version shields.io PyPI pyversions GitHub license codecov Code style: black

DEKER™ is pure Python implementation of petabyte-scale highly parallel data storage engine for multidimensional arrays.

DEKER™ name comes from term dekeract, the 10-cube.

DEKER™ was made with the following major goals in mind:

  • provide intuitive interface for storing and accessing huge data arrays
  • support arbitrary number of data dimensions
  • be thread and process safe and as lean on RAM use as possible

DEKER™ empowers users to store and access a wide range of data types, virtually anything that can be represented as arrays, like geospacial data, satellite images, machine learning models, sensors data, graphs, key-value pairs, tabular data, and more.

DEKER™ does not limit your data complexity and size: it supports virtually unlimited number of data dimensions and provides under the hood mechanisms to partition huge amounts of data for scalability.

Features

  • Open source under GPL 3.0
  • Scalable storage of huge virtual arrays via tiling
  • Parallel processing of virtual array tiles
  • Own locking mechanism enabling virtual arrays parallel read and write
  • Array level metadata attributes
  • Fancy data slicing using timestamps and named labels
  • Support for industry standard NumPy, Xarray
  • Storage level data compression and chunking (via HDF5)

Code and Documentation

Open source implementation of DEKER™ storage engine is published at

API documentation and tutorials for the current release could be found at

Quick Start

Dependencies

Minimal Python version for DEKER™ is 3.9.

DEKER™ depends on the following third-party packages:

  • numpy >= 1.18
  • attrs >= 23.1.0
  • tqdm >= 4.64.1
  • psutil >= 5.9.5
  • h5py >= 3.8.0
  • hdf5plugin >= 4.0.1

Also please not that for flexibility few internal DEKER™ components are published as separate packages:

Install

To install DEKER™ run:

pip install deker

Please refer to documentation for advanced topics such as running on Apple silicone or using Xarray with DEKER™ API.

First Steps

Now you can write simple script to jump into DEKER™ development:

from deker import Client, ArraySchema, DimensionSchema, TimeDimensionSchema
from datetime import datetime, timedelta, timezone
import numpy as np

# Where all data will be kept
DEKER_URI = "file:///tmp/deker"

# Define 3-dimensional schema with to numeric and one time dimension
dimensions = [
   DimensionSchema(name="y", size=128),
   DimensionSchema(name="x", size=128),
   TimeDimensionSchema(
      name="forecast_dt",
      size=128,
      start_value=datetime.now(timezone.utc),
      step=timedelta(3),
   )
]

# Define array schema with float dtype and dimensions
array_schema = ArraySchema(dtype=float, dimensions=dimensions)

# Instantiate client using context manager
with Client(DEKER_URI) as client:
   # Create collection
   collection = client.create_collection("my_collection", array_schema)
   
   # Create array
   array = collection.create()
   
   # Write some data
   array[:].update(np.ones(shape=array.shape))
   
   # And read the data back
   data = array[:].read()

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deker-1.1.7.tar.gz (79.7 kB view details)

Uploaded Source

File details

Details for the file deker-1.1.7.tar.gz.

File metadata

  • Download URL: deker-1.1.7.tar.gz
  • Upload date:
  • Size: 79.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for deker-1.1.7.tar.gz
Algorithm Hash digest
SHA256 d27809d167a9d55ecce8f020e7204f5bae63478470ab9abc55b404391d2ef486
MD5 42f4f2f55e59711635115581d5cd6f2e
BLAKE2b-256 7b06f6368d38c48bd9550fbb486e3dde423fff25850b2f1cc34eb71b61ad7d18

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.7 This release

1 file

1.1.6

1 file

1.1.5

1 file

1.1.4

1 file

1.1.3

1 file

1.1.2

1 file

1.1.1

1 file

1.1.0

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page