Spanner supports importing data from Cloud SQL for MySQL. This feature lets you migrate the schema and perform a one-time bulk data load to evaluate Spanner for your use case. For more information, see Import from Cloud SQL to Spanner.
This feature is generally available.
]]>The QueryData tool lets you to query the data in your database using conversational language and build data agents. For more information, see QueryData tool overview. This feature is available in (Preview).
The preview release increases the accuracy of SQL generation with value search queries which match values and their context within a database. Value search queries trigger automatically.
]]>Spanner offers conversational analytics, which lets users query their operational data using natural language. This feature is powered by the Conversational Analytics API, which can help you translate complex human dialog into precise database queries to provide actionable insights. This feature is in Preview. For more information, see Conversational analytics for Spanner overview.
You can create BigQuery non-incremental materialized views over Spanner data to improve query performance by periodically caching results. This feature is generally available (GA).
You can use
Cloud resource connections with EXPORT DATA statements
to reverse ETL (extract, transform, load) BigQuery data to
Spanner. This feature is
generally available (GA).
The Spark Spanner connector supports writing a Spark Dataframe to a Spanner table using the Spark data source API. For more information, see Use the Spark Spanner connector.
]]>Spanner now offers AI functions, as a part of machine learning functions, that help you perform semantic operations using Large Language Models (LLMs) in SQL to classify, evaluate, and rank your data:
AI.CLASSIFY:
Classify a natural language input into user-defined categories.AI.IF: Evaluate a
condition described in natural language.AI.SCORE: Rate
natural language input and assign it a score.Spanner supports the optimistic concurrency control mode. Optimistic concurrency control is suitable for transactional workloads with low read-write contention. It assumes that conflicts in transactions are rare. Reads and queries within a read-write transaction proceed without acquiring locks. For more information, see Concurrency control.
]]>You can use continuous queries to stream BigQuery data to Spanner in real time. This feature is generally available (GA).
]]>Spanner supports the ON CONFLICT clause for
GoogleSQL INSERT statements to handle unique constraint
violations. For more information, see ON CONFLICT DO
NOTHING
and ON CONFLICT DO
UPDATE.
Spanner supports using the pending commit timestamp function
as a default value and an ON UPDATE expression for column definitions. For
more information, see the GoogleSQL
ON UPDATE clause
and the PostgreSQL
ON UPDATE clause.
Spanner provides JSON string versions of the following statistics columns for PostgreSQL-dialect databases:
TOTAL_LATENCY_DISTRIBUTION_JSON_STRING in
Transaction statisticsOPERATIONS_BY_TABLE_JSON_STRING in
Transaction statisticsLATENCY_DISTRIBUTION_JSON_STRING in
Query statisticsSAMPLE_LOCK_REQUESTS_JSON_STRING in
Lock statisticsYou can use these columns to retrieve statistics in JSON format from the
SPANNER_SYS tables.
Spanner supports the following:
Spanner supports the following managed autoscaler features:
For more information, see Managed autoscaler.
]]>Spanner provides UNSPLITTABLE_REASONS in hotspot insights and
split statistics views to detect when splits can't be split further.
Unsplittable reasons can help you identify schema anti-patterns that require
intervention. For more information, see
Find hotspots in your database
and
Split statistics.
This feature is generally available (GA).
]]>Control of MCP use with organization policies is deprecated.
After March 17, 2026, organization policies that use the
gcp.managed.allowedMCPServices constraint won't work, and
you can control MCP use with IAM deny policies.
For more information about controlling MCP use, see Control MCP use with IAM.
After March 17, 2026, when you enable Spanner, the Spanner MCP server is automatically enabled.
New best practices are available for securing generative AI agents using Model Context Protocol (MCP) with Google Cloud databases. This guide covers key security measures like least privilege, native database controls, and secure agent design to help you build safer AI applications. For more information, see Best practices for securing agent interactions with Model Context Protocol.
This feature is in Preview.
]]>You can use the Spanner remote MCP server to interact with Spanner instances and databases from agentic AI applications such as Gemini CLI, agent mode in Gemini Code Assist, or Claude.ai.
This feature is in Preview.
]]>You can right-click a node in a Spanner Graph query visualization to access options like expanding or collapsing adjacent nodes, highlighting or hiding nodes, and viewing only a node's neighbors.
For more information, see Work with visualizations.
]]>You can create and host remote functions in Cloud Run and call them from Spanner queries using the GoogleSQL dialect. This feature is in Preview.
]]>Spanner supports the UUID data type for both
GoogleSQL and PostgreSQL-dialect databases. This
data type stores universally unique identifiers (UUIDs) as 128-bit values.
You can use the GoogleSQL
NEW_UUID()
function or the PostgreSQL
gen_random_uuid() to
function to create UUID values.
For more information, see Use a universally unique identifier (UUID).
]]>Spanner supports the following compression functions:
These functions use the Zstandard (Zstd) lossless data compression algorithm to
compress and decompress STRING or BYTES values. For more information, see
Compression functions.
Columnar engine for Spanner is now in Public Preview. Columnar engine is a storage technique used with analytical queries to speed up scans up to 200 times faster on live operational data without affecting transaction workloads. In databases or tables enabled with columnar engine, this release:
For more information, see the Columnar engine for Spanner overview.
]]>You can create Spanner regional instance configurations
in Bangkok, Thailand (asia-southeast3). For more information, see
Google Cloud locations and
Spanner pricing.
Several updates have been made to full-text search:
LIKE, STARTS_WITH, and ENDS_WITH for pattern matching, and
REGEXP_CONTAINS for regular expression matching.TOKENIZE_FULLTEXT
has an argument for removing diacritics. SEARCH and SCORE
use this if the data was tokenized with this option.TOKENIZE_SUBSTRING
supports emojis.You can use SQL views to create a graph. For requirements, considerations, and the benefits of using SQL views to create a graph, see Overview of graphs created from SQL views. To learn how to create a graph from views, see Create a property graph from SQL views.
]]>The GoogleSQL function
ELEMENT_DEFINITION_NAME
is available. ELEMENT_DEFINITION_NAME returns the name of the graph element
table underlying a graph element.
You can build data agents that interact with the data in your database using conversational language. Use these data agents as tools to empower your applications. For more information, see Data agents overview. This feature is available in Preview, and access to it requires a sign-up.
]]>Spanner supports the PostgreSQL generate_series() function. You can use
this function to create a sequence of numbers. For more information, see
Set returning functions.
Spanner Data Boost includes a the Data Boost concurrent requests in milli-operations per second per region quota, which applies fine-grained control over how multiple concurrent requests for your project share Data Boost resources. Instead of counting 1 request against 1 unit of quota under the existing concurrency quota regime, Data Boost splits a request at a granularity of 1/1000, allowing for a greater number of concurrent requests to make progress. For more information, see Quotas and limits.
Spanner Graph supports using the
ANY CHEAPEST path search
prefix in a query to return the path with the lowest total compute cost. For
more information, see
Path search prefix
in the Spanner Graph Language
reference.
Spanner supports the following new columns in the SPANNER_SYS
oldest active queries
table:
CLIENT_IP_ADDRESSAPI_CLIENT_HEADERUSER_AGENT_HEADERSERVER_REGIONPRIORITYTRANSACTION_TYPEYou can also view these columns in the Spanner query insights page on the Google Cloud console. For more information, see Monitor active queries.
]]>String values in Spanner Studio query results are enclosed in double quotes, providing a visual cue to differentiate string values from other data types. This enhancement is for display purposes only and doesn't affect how data is exported or accessed.
]]>Query optimizer version 8 is the default version for Spanner.
]]>The GoogleSQL function
IS_FIRST
is available for graph queries. IS_FIRST returns true if a row is in the first k rows
(1-based) within a window. You can use IS_FIRST in graph queries to
limit traversed edges to improve query performance.
You can also use IS_FIRST to
sample intermediate nodes to optimize multi-hop queries.