Skip to content

Blobs

DataJoint provides functionality for serializing and deserializing complex data types into binary blobs for efficient storage and compatibility with MATLAB's mYm serialization. This includes support for:

  • Basic Python data types (e.g., integers, floats, strings, dictionaries).
  • NumPy arrays and scalars.
  • Specialized data types like UUIDs, decimals, and datetime objects.

Serialization and Deserialization Process

Serialization converts Python objects into a binary representation for efficient storage within the database. Deserialization converts the binary representation back into the original Python object.

Blobs over 1 KiB are compressed using the zlib library to reduce storage requirements.

Supported Data Types

DataJoint supports the following data types for serialization:

  • Scalars: Integers, floats, booleans, strings.
  • Collections: Lists, tuples, sets, dictionaries.
  • NumPy: Arrays, structured arrays, and scalars.
  • Custom Types: UUIDs, decimals, datetime objects, MATLAB cell and struct arrays.