Overview of the SMB Data Connector
put, delete, and copy are not supported.website·Indexed 33 days ago
https://spiceai.orgDocumentation for the Spice.ai open source project, including the Spice CLI and runtime. Features technical specifications for ADBC, JDBC, ODBC, and Arrow Flight SQL, as well as API references for Iceberg configuration, Model Context Protocol (MCP) streams, and Text-to-SQL (NSQL). Includes guides for integrating with Zipkin, DBeaver, and Microsoft Power BI.
put, delete, and copy are not supported.Spice supports five modes to refresh accelerated datasets. The default mode is full.
full: Replaces/overwrites the entire dataset on each refresh. Best for general tables (e.g., a table of users).append: Adds new data to the dataset on each refresh. Best for append-only, immutable datasets like time-series or log data.changes: Applies incremental inserts, updates, and deletes. Best for lifecycle tables (e.g., customer orders).caching: Read-through caching for HTTP-based datasets. Best for API search results.snapshot: Reloads exclusively from the snapshot store. Best for read-only replicas bootstrapped from centralized snapshots.Spice uses Apache Ballista to coordinate distributed queries across multiple nodes, which is particularly useful for large, partitioned datasets in formats like Parquet, Delta Lake, or Iceberg. The architecture consists of two primary components:
scheduler.state_location is configured).The Cluster-Sidecar architecture is designed to handle two distinct data access patterns: large analytical queries (handled by a centralized Spice cluster) and hot operational queries (handled by local application sidecars).
Key architectural properties:
Spice.ai runtime components are the building blocks used to configure data access, acceleration, AI models, embeddings, and secrets. These components are defined within the spicepod.yaml manifest. The core components include:
The Tool Registry is a runtime capability designed to manage large numbers of tools available to an LLM. Instead of injecting every tool's full JSON schema into every chat turn—which increases token costs, latency, and reduces model accuracy—the registry replaces individual tool definitions with two meta-tools: tool_search and tool_invoke.
list_datasets is always exposed directly alongside these meta-tools to allow the model to orient itself without needing a registry search first.
The registry indexes all callable tools, including:
sql, list_datasets, table_schema, search, random_sample)sse or stdio)as_tool: truetools: section with as_sql: trueSpice provides JSON support via datafusion-functions-json, allowing users to extract, query, and manipulate JSON data stored as strings.
Limitations:
Acceleration snapshots allow Spice to reuse a pre-built acceleration file on startup instead of performing a full refresh. This is applicable when a dataset uses a file-mode acceleration engine (DuckDB, SQLite, Cayenne, or Turso). If the local acceleration file is missing (e.g., on first boot or when using ephemeral NVMe storage), Spice downloads the most recent snapshot from object storage to move the dataset immediately to a ready state.
Key constraints:
/nvme/my_dataset.db); sharing a single file across multiple datasets is not supported.The Cluster-Sidecar deployment model is a Kubernetes-native architecture designed for high-performance data retrieval. It uses a centralized cluster (self-managed or Spice Cloud) to handle data ingestion, acceleration (via Spice Cayenne), and complex distributed queries, while deploying lightweight sidecars alongside application pods to provide sub-millisecond reads via local caching on loopback.
Key architectural benefits include: