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 arcticdbVerified import paths — ran on the pinned version, not inferred.
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.
Create the library using `ac.create_library(library_name, library_options={'dynamic_schema': True})` if schema evolution is required.Limit to a single `Arctic('lmdb://...')` instance per process for a given path. Use object storage (S3, Azure) for distributed access.Contact info@arcticdb.io for licensing details for production deployments.
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.
Migrate code using `QueryBuilder` to use the `LazyDataFrame` API for improved readability and maintainability.
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`.
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')`.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.
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.