Cloud Spanner
This is the implementation of the Cloud Spanner data handler for MindsDB.
Cloud Spanner is a fully managed, mission-critical, relational database service that offers transactional consistency at global scale, automatic, synchronous replication for high availability. It supports two SQL dialects: GoogleSQL (ANSI 2011 with extensions) and PostgreSQL.
Implementation
This handler was implemented using the google-cloud-spanner
Python client library.
The required arguments to establish a connection are as follows:
instance_id
is the instance identifier.database_id
is the database identifier.project
is the identifier of the project that owns the resources.credentials
is a stringified GCP service account key JSON.
If you installed MindsDB locally via pip, you need to install all handler dependencies manually. To do so, go to the handler’s folder (mindsdb/integrations/handlers/cloud_spanner_handler) and run this command: pip install -r requirements.txt
.
Usage
In order to make use of this handler and connect to the Cloud Spanner database in MindsDB, the following syntax can be used:
CREATE DATABASE cloud_spanner_datasource
WITH
engine = 'cloud_spanner',
parameters = {
"instance_id": "my-instance",
"database_id": "example-id",
"project": "my-project",
"credentials": "{...}"
};
You can use this established connection to query your table as follows:
SELECT *
FROM cloud_spanner_datasource.my_table;
Cloud Spanner supports both PostgreSQL and GoogleSQL dialects. However, not all PostgresSQL features are supported.