Announcing the release of Spice v1.8.0! 🧊
Spice v1.8.0 delivers major advances in data writes, scalable vector search, and now in preview—managed acceleration snapshots for fast cold starts. This release introduces write support for Iceberg tables using standard SQL INSERT INTO, partitioned S3 Vector indexes for petabyte-scale vector search, and preview of the AI SQL function for direct LLM integration in SQL. Additional improvements include improved reliability, and the v3.0.3 release of the Spice.js Node.js SDK.
Append Data to Iceberg Tables with SQL INSERT INTO: Spice now supports writing to Iceberg tables and catalogs using standard SQL INSERT INTO statements. This enables data ingestion, transformation, and pipeline use cases—no Spark or external writer required.
access: read_write.Example Spicepod configuration:
Example SQL usage:
Note: Only Iceberg datasets and catalogs with
access: read_writesupport writes. Internal Spice tables and other connectors remain read-only.
Learn more in the Iceberg Data Connector documentation (opens in a new tab).
Bootstrap Managed Accelerations from Object Storage: Spice now supports managed acceleration snapshots in preview, enabling datasets accelerated with file-based engines (DuckDB or SQLite) to bootstrap from a snapshot stored in object storage (such as S3) if the local acceleration file does not exist on startup. This dramatically reduces cold start times and enables ephemeral storage for accelerations with persistent recovery.
Key features:
Example Spicepod configuration:
How it works:
s3://some_bucket/some_folder/month=2025-09/day=2025-09-30/dataset=some_table/some_table_<timestamp>.dbSupported snapshot modes:
enabled: Download and write snapshots.bootstrap_only: Only download on startup, do not write new snapshots.create_only: Only write snapshots, do not download on startup.disabled: No snapshotting.Note: This feature is only supported for file-based accelerations (DuckDB or SQLite) with dedicated files.
Why use acceleration snapshots?
Efficient, Scalable Vector Search with Partitioning: Spice now supports partitioning Amazon S3 Vector indexes and scatter-gather queries using a partition_by expression in the dataset vector engine configuration. Partitioned indexes enable faster ingestion, lower query latency, and scale to billions of vectors.
Example Spicepod configuration:
See the Amazon S3 Vectors documentation (opens in a new tab) for details.
LLMs Directly In SQL: A new asynchronous ai SQL function enables direct calls to LLMs from SQL queries for text generation, translation, classification, and more. This feature is released in preview and supports both default and model-specific invocation.
Example Spicepod model configuration:
Example SQL usage:
Learn more in the SQL Reference AI documentation (opens in a new tab).
Run CLI Commands Remotely: The Spice CLI now supports connecting to remote Spice instances, enabling you to run spice sql, spice search, and spice chat commands from your local machine against a remote spiced daemon or to Spice Cloud. Previously, these commands required running on the same machine as the runtime. Now, new flags allow remote execution:
--cloud: Connect to a Spice Cloud instance (requires --api-key).--endpoint <endpoint>: Connect to a remote Spice instance via HTTP or Arrow Flight SQL (gRPC). Supports http://, https://, grpc://, or grpc+tls:// schemes.Examples:
Supported CLI Commands:
spice sql --cloud / spice sql --endpoint <endpoint>spice search --cloud / spice search --endpoint <endpoint>spice chat --cloud / spice chat --endpoint <endpoint>Additional Flags:
--headers: Pass custom HTTP headers to the remote endpoint.--tls-root-certificate-file: Specify a root certificate for TLS verification.--user-agent: Set a custom user agent for requests.For more details, see the Spice CLI Command Reference (opens in a new tab).
Spice.js v3.0.3 Released: The official Spice.ai Node.js/JavaScript SDK (opens in a new tab) has been updated to v3.0.3, bringing cross-platform support, new APIs, and improved reliability for both Node.js and browser environments.
sql(), sqlJson(), and nsql() for flexible querying, streaming, and natural language to SQL.Example usage:
See Spice.js SDK documentation (opens in a new tab) for full details, migration tips, and advanced usage.
This release introduces two breaking changes associated with the search observability and tooling.
Firstly, the document_similarity (opens in a new tab) tool has been renamed to search. This has the equivalent change to tracing of these tool calls:
Secondly, the vector_search task in runtime.task_history has been renamed to search.
The Spice Cookbook (opens in a new tab) now includes 80 recipes to help you get started with Spice quickly and easily.
To upgrade to v1.8.0, use one of the following methods:
CLI:
Homebrew:
Docker:
Pull the spiceai/spiceai:1.8.0 image:
For available tags, see DockerHub (opens in a new tab).
Helm:
AWS Marketplace:
🎉 Spice is now available in the AWS Marketplace (opens in a new tab)!
#[cfg(feature = "postgres")] to acceleration refresh tests by @Jeadie (opens in a new tab) in #7241 (opens in a new tab)SearchIndex by @Jeadie (opens in a new tab) in #7143 (opens in a new tab)spicepod by @peasee (opens in a new tab) in #7303 (opens in a new tab)Update SQL operations for datasets configured as access: read_write by @sgrebnov (opens in a new tab) in #7304 (opens in a new tab)vector_search, use a default limit of 1000 if no limit specified by @lukekim (opens in a new tab) in #7311 (opens in a new tab)SearchQueryProvider by @Jeadie (opens in a new tab) in #7314 (opens in a new tab)model_name() by @Jeadie (opens in a new tab) in #7333 (opens in a new tab)access:read_write by @sgrebnov (opens in a new tab) in #7330 (opens in a new tab)ai async UDF by @lukekim (opens in a new tab) in #7328 (opens in a new tab)acceleration_file_path helper and refactor spice_sys to use Snafu errors by @phillipleblanc (opens in a new tab) in #7376 (opens in a new tab) in #7376 (opens in a new tab)snapshots Spicepod configuration by @phillipleblanc (opens in a new tab) in #7384 (opens in a new tab)tool_use::document_similarity and vector_search spans by @Jeadie (opens in a new tab) in #7273 (opens in a new tab)ai UDF a models only feature by @lukekim (opens in a new tab) in #7387 (opens in a new tab)runtime_acceleration crate; create SnapshotManager; implement SnapshotManager::download_latest_snapshot by @phillipleblanc (opens in a new tab) in #7386 (opens in a new tab)testoperator by @Jeadie (opens in a new tab) in #7334 (opens in a new tab)ai UDF security and performance optimizations by @lukekim (opens in a new tab) in #7392 (opens in a new tab)SnapshotManager by @phillipleblanc (opens in a new tab) in #7391 (opens in a new tab)tool_use::table_schema output model-friendly by @krinart (opens in a new tab) in #7393 (opens in a new tab)INSERT OVERWRITE DML operations by @sgrebnov (opens in a new tab) in #7402 (opens in a new tab)--endpoint and --cloud args & table output consistent by @lukekim (opens in a new tab) in #7396 (opens in a new tab)SearchIndex::query_table_provider by @Jeadie (opens in a new tab) in #7421 (opens in a new tab)ChunkedNonIndexVectorGeneration to use LogicalPlanBuilder (instead of string formatting) by @Jeadie (opens in a new tab) in #7413 (opens in a new tab)