Skip to main content

Python SDK

Official Python SDK for Arc time-series database.

PyPI version Python 3.9+

What is it?

The arc-tsdb-client package is the official Python client for Arc, a high-performance time-series database. It provides a high-level, Pythonic interface for:

  • Writing time-series data at scale (9M+ records/sec)
  • Querying with SQL and getting results as DataFrames
  • Managing data lifecycle (retention, aggregation, deletion)
  • Handling authentication (tokens, permissions)

Why use the SDK?

While you can interact with Arc's REST API directly, the SDK provides significant advantages:

FeatureRaw APIPython SDK
Connection managementManualAutomatic (context managers)
Data serializationManual MessagePackAutomatic
DataFrame supportConvert manuallyNative pandas/polars/arrow
Buffered writesImplement yourselfBuilt-in with auto-batching
Error handlingParse HTTP responsesTyped exceptions
Async supportManual httpx/aiohttpBuilt-in AsyncArcClient
CompressionConfigure headersAutomatic gzip

Quick Example

from arc_client import ArcClient

with ArcClient(host="localhost", token="your-token") as client:
# Write metrics
client.write.write_columnar(
measurement="cpu",
columns={
"time": [1704067200000000, 1704067260000000],
"host": ["server01", "server01"],
"usage_idle": [95.2, 94.8],
},
)

# Query to pandas
df = client.query.query_pandas(
"SELECT * FROM default.cpu WHERE host = 'server01'"
)
print(df)

Architecture

The SDK is organized into specialized clients for different operations:

ArcClient
├── .write # Data ingestion (WriteClient)
│ ├── write_columnar()
│ ├── write_dataframe()
│ ├── write_line_protocol()
│ └── buffered()

├── .query # Data querying (QueryClient)
│ ├── query()
│ ├── query_pandas()
│ ├── query_polars()
│ ├── query_arrow()
│ └── estimate()

├── .retention # Retention policies (RetentionClient)
├── .continuous_queries # CQs (ContinuousQueryClient)
├── .delete # Delete operations (DeleteClient)
├── .auth # Authentication (AuthClient)
└── .health() # Health check

Documentation

📦 Installation

Install the SDK and optional dependencies for pandas, polars, or all features.

📥 Data Ingestion

Write data using columnar format, DataFrames, buffered writes, or line protocol.

🔍 Querying

Run SQL queries and get results as JSON, pandas, polars, or PyArrow tables.

🔄 Data Management

Manage retention policies, continuous queries, delete operations, and authentication.

Source Code