Registry / database / arcticdb

arcticdb

JSON →
library6.18.1pypypi✓ verified 85d ago

ArcticDB is a high-performance, serverless DataFrame database engine designed for the Python Data Science ecosystem. It enables storing, retrieving, and processing Pandas DataFrames at scale, backed by commodity object storage like S3-compatible services, Azure Blob Storage, and local LMDB. It provides a Python API backed by a fast C++ data-processing and compression engine, supporting flexible schemas and bitemporal versioning. The library is actively maintained with frequent patch and minor releases.

pip install arcticdb
INSTALL
IMPORT
SIG · ARCTICDB
A
arcticdb
databasepythonv6.18.1
Install
9.5s avg
Import
1398ms
Disk
241MB
Pass rate
5/ 10
Env Coverage5 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v6.18.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
build_error
glibc
py 3.103.920 runs
installs and imports cleanly · install 9.5s · import 1.398s · 232MB
241MB installed
● package 241MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Arctic
from arcticdb import Arctic
adb
import arcticdb as adb

This quickstart demonstrates how to initialize ArcticDB with local LMDB storage, create a library, write a Pandas DataFrame as a 'symbol', and then read it back. The example uses a temporary directory for the LMDB database.

import arcticdb as adb import pandas as pd import numpy as np import os # Use a temporary LMDB directory for local storage uri = f"lmdb://{os.environ.get('ARCTICDB_PATH', '/tmp/arcticdb_quickstart')}" ac = adb.Arctic(uri) # Create a library library_name = 'my_test_library' if not ac.library_exists(library_name): ac.create_library(library_name) lib = ac.get_library(library_name) # Create a sample DataFrame df = pd.DataFrame(np.random.randint(0, 100, size=(10, 3)), columns=list('ABC')) df.index = pd.date_range('2023-01-01', periods=10, freq='D') # Write the DataFrame symbol_name = 'my_test_symbol' lib.write(symbol_name, df) print(f"DataFrame written to {library_name}/{symbol_name}") # Read the DataFrame back read_df = lib.read(symbol_name).data print("Read DataFrame head:") print(read_df.head()) # Clean up (optional for temporary storage) # ac.delete_library(library_name)
Debug
Known issues
gotchaWhen using `update` or `append` operations, ArcticDB enforces a static schema by default. If you intend to modify the schema (add/remove/change column types), you must create the library with `dynamic_schema=True`.
fix
Create the library using `ac.create_library(library_name, library_options={'dynamic_schema': True})` if schema evolution is required.
affects: All versions
gotchaFor LMDB storage, ensure only one Arctic instance is open per LMDB database within a single Python process. LMDB also does not support remote filesystems.
fix
Limit to a single `Arctic('lmdb://...')` instance per process for a given path. Use object storage (S3, Azure) for distributed access.
affects: All versions
gotchaProduction use of ArcticDB (including business or commercial environments) or its use as a Database Service requires a paid license from ArcticDB Limited.
fix
Contact info@arcticdb.io for licensing details for production deployments.
affects: All versions
gotchaWhen connecting to Azure Blob Storage, if the `CA_cert_path` is incorrect or the certificate cannot be found, Azure exceptions may lack meaningful error codes, making debugging difficult.
fix
Verify the `CA_cert_path` is correct and the certificate exists. For debugging, set the environment variable `export AZURE_LOG_LEVEL=1` to enable SDK debug logging.
affects: All versions supporting Azure
deprecatedThe `QueryBuilder` API is officially deprecated in favor of the more intuitive and recommended `LazyDataFrame` API for complex querying, filtering, group-bys, and aggregations.
fix
Migrate code using `QueryBuilder` to use the `LazyDataFrame` API for improved readability and maintainability.
affects: All versions
Errors
Common errors & fixes
Normalization Error 2000: Attempting to update or append an existing type with an incompatible object type
You are trying to update or append data to an existing symbol, but the new data (NumPy array or Pandas DataFrame) has a different type than the original data stored in the symbol.
fix
Read the latest version of the symbol and ensure your update/append operation uses data of the corresponding type. If you need to change the schema, the library must be created with `dynamic_schema=True`.
LMDB error code -30792
The LMDB map size limit has been reached, meaning your local database file is full and cannot store more data.
fix
Increase the map size when initializing `Arctic` for LMDB by passing a larger `map_size` in the URI or options. Example: `adb.Arctic('lmdb:///path/to/db?map_size=100GB')`.
Normalization Error 2003: A write of an incompatible index type has been attempted.
ArcticDB only supports specific Pandas index types for its on-disk index (e.g., `DatetimeIndex` for time-series, or a `RowCount` integer index). You attempted to write data with an unsupported index type.
fix
Ensure your Pandas DataFrame uses a supported index type, such as `DatetimeIndex` for time-series data. Non-DatetimeIndex will be converted to a `RowCount` integer index.
ArcticException: A missing key has been requested. [...] The symbol being worked on does not exist.
You are trying to read, update, or append to a symbol that does not exist in the specified library.
fix
Verify the symbol name is correct. Use `library.list_symbols()` to check existing symbols. Ensure the symbol has been written at least once before attempting read/modify operations.
Upgrade
Version history
6.18.1latest on PyPI · released Jun 8, 2026
Audit
Dependencies
pandasrequiredCore functionality revolves around storing and retrieving Pandas DataFrames.
numpyrequiredFrequently used with Pandas DataFrames for data generation and manipulation.
Agent activity
69 hits · last 30 days
node
62
OpenAI (training)
1
Resources
arcticdb — pip install arcticdb · libregistry