En este documento, se muestra cómo configurar y consultar Spanner Graph con la consola de Google Cloud y las bibliotecas cliente. Los siguientes temas te ayudarán a aprender a hacer lo siguiente:
Para obtener información sobre los detalles de los precios de Spanner, consulta Precios de Spanner.
Para probar un codelab, consulta Cómo comenzar a usar Spanner Graph.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- La API de Spanner debería habilitarse automáticamente. De lo contrario, habilítala de forma manual: Habilita la API de Spanner
-
Para obtener los permisos que necesitas para crear instancias y bases de datos, pídele a tu administrador que te otorgue el rol de IAM de administrador de Cloud Spanner (
roles/spanner.admin
) en tu proyecto.
Crea una instancia
Cuando uses Spanner por primera vez, deberás crear una instancia, que es una asignación de recursos que usan las bases de datos de Spanner. En esta sección, se muestra cómo crear una instancia con la consola de Google Cloud.
En la consola de Google Cloud, ve a la página Spanner.
Selecciona o crea un proyecto de Google Cloud si aún no lo hiciste.
Realiza una de las siguientes acciones:
Si nunca creaste una instancia de Spanner, en la página Te damos la bienvenida a Spanner, haz clic en Crear una instancia aprovisionada.
Si creaste una instancia de Spanner, en la página Instancias, haz clic en Crear instancia.
En la página Selecciona una edición, selecciona Enterprise Plus o Enterprise.
Spanner Graph solo está disponible en las ediciones Enterprise o Enterprise Plus. Para comparar las diferentes ediciones, haz clic en Comparar ediciones. Para obtener más información, consulta la descripción general de las ediciones de Spanner.
Haz clic en Continuar.
En Nombre de la instancia, ingresa un nombre de instancia, por ejemplo,
test-instance
.En ID de instancia, mantén o cambia el ID de la instancia. El ID de instancia se establece de forma predeterminada en el nombre de la instancia, pero puedes cambiarlo. El nombre y el ID de la instancia pueden ser iguales o diferentes.
Haz clic en Continuar.
En Elige una configuración, haz lo siguiente:
Mantén seleccionada la opción Regional.
En Elige una configuración, selecciona una región. La región que selecciones es dónde se almacenan y replican tus instancias.
Haz clic en Continuar.
En Configurar la capacidad de procesamiento, haz lo siguiente:
En Seleccionar unidad, selecciona Unidades de procesamiento (PU).
En Elige un modo de escalamiento, mantén seleccionada la Asignación manual y, en Cantidad, mantén 1,000 unidades de procesamiento.
Haz clic en Crear. La consola de Google Cloud muestra la página Descripción general de la instancia que creaste.
Crea una base de datos con el esquema de Spanner Graph
En esta sección, se muestra cómo usar la consola de Google Cloud y las bibliotecas cliente para crear una base de datos con el esquema de Spanner Graph.
Console
- En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en la instancia que creaste, por ejemplo,
Test Instance
.En Descripción general, debajo del nombre de tu instancia, haz clic en Crear base de datos.
En Nombre de la base de datos, ingresa un nombre de base de datos. Por ejemplo,
example-db
En Seleccionar dialecto de la base de datos, elige SQL estándar de Google. Spanner Graph no está disponible en el dialecto de PostgreSQL. La página de creación de la base de datos ahora se ve de la siguiente manera:
Copia y pega el siguiente esquema en la pestaña del editor Plantillas de DDL. El esquema contiene dos definiciones de tablas de nodos,
Person
yAccount
, y dos definiciones de tablas de aristas,PersonOwnAccount
yAccountTransferAccount
. Spanner Graph usa tablas relacionales para definir gráficos, por lo que ves tablas relacionales y sentencias de gráfico en el esquema. Para obtener más información sobre el esquema de Spanner Graph, consulta la descripción general del esquema de Spanner Graph.CREATE TABLE Person ( id INT64 NOT NULL, name STRING(MAX), birthday TIMESTAMP, country STRING(MAX), city STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE Account ( id INT64 NOT NULL, create_time TIMESTAMP, is_blocked BOOL, nick_name STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE PersonOwnAccount ( id INT64 NOT NULL, account_id INT64 NOT NULL, create_time TIMESTAMP, FOREIGN KEY (account_id) REFERENCES Account (id) ) PRIMARY KEY (id, account_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE; CREATE TABLE AccountTransferAccount ( id INT64 NOT NULL, to_id INT64 NOT NULL, amount FLOAT64, create_time TIMESTAMP NOT NULL, order_number STRING(MAX), FOREIGN KEY (to_id) REFERENCES Account (id) ) PRIMARY KEY (id, to_id, create_time), INTERLEAVE IN PARENT Account ON DELETE CASCADE; CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES (Account, Person) EDGE TABLES ( PersonOwnAccount SOURCE KEY (id) REFERENCES Person (id) DESTINATION KEY (account_id) REFERENCES Account (id) LABEL Owns, AccountTransferAccount SOURCE KEY (id) REFERENCES Account (id) DESTINATION KEY (to_id) REFERENCES Account (id) LABEL Transfers );
No realices ningún cambio en Mostrar opciones de encriptación.
Haz clic en Crear. La consola de Google Cloud muestra la página Descripción general de la base de datos que creaste.
Bibliotecas cliente
Python
Java
Go
C++
Cómo insertar datos de gráficos
En esta sección, se muestra cómo usar la consola de Google Cloud y las bibliotecas cliente para insertar datos en un gráfico de Spanner.
Console
En la página Spanner Studio, haz clic en
Nueva pestaña o usa la pestaña del editor.Copia y pega las siguientes instrucciones de inserción de datos de gráfico en los nodos y las aristas.
INSERT INTO Account (id, create_time, is_blocked, nick_name) VALUES (7,"2020-01-10 06:22:20.222",false,"Vacation Fund"), (16,"2020-01-27 17:55:09.206",true,"Vacation Fund"), (20,"2020-02-18 05:44:20.655",false,"Rainy Day Fund"); INSERT INTO Person (id, name, birthday, country, city) VALUES (1,"Alex","1991-12-21 00:00:00","Australia","Adelaide"), (2,"Dana","1980-10-31 00:00:00","Czech_Republic","Moravia"), (3,"Lee","1986-12-07 00:00:00","India","Kollam"); INSERT INTO AccountTransferAccount (id, to_id, amount, create_time, order_number) VALUES (7,16,300,"2020-08-29 15:28:58.647","304330008004315"), (7,16,100,"2020-10-04 16:55:05.342","304120005529714"), (16,20,300,"2020-09-25 02:36:14.926","103650009791820"), (20,7,500,"2020-10-04 16:55:05.342","304120005529714"), (20,16,200,"2020-10-17 03:59:40.247","302290001255747"); INSERT INTO PersonOwnAccount (id, account_id, create_time) VALUES (1,7,"2020-01-10 06:22:20.222"), (2,20,"2020-01-27 17:55:09.206"), (3,16,"2020-02-18 05:44:20.655");
Haz clic en Ejecutar. Cuando se completa la ejecución, la pestaña Resultados muestra que se insertaron 3 filas.
Bibliotecas cliente
Python
Java
Go
C++
En el siguiente gráfico, se muestran las personas, las cuentas, la propiedad de las cuentas y las transferencias de cuentas de los insertos:
Ejecuta una consulta de grafo
En esta sección, se muestra cómo usar la consola de Google Cloud o las bibliotecas cliente para ejecutar una consulta de esquema de Spanner Graph.
Console
En la página Descripción general de la base de datos, haz clic en Spanner Studio en el menú de navegación.
En la página Spanner Studio, haz clic en
Nueva pestaña o usa la pestaña del editor.Ingresa la siguiente consulta en el editor de consultas. La búsqueda encuentra a todas las personas a las que Dana transfirió dinero y el importe de esas transferencias.
GRAPH FinGraph MATCH (from_person:Person {name: "Dana"})-[:Owns]-> (from_account:Account)-[transfer:Transfers]-> (to_account:Account)<-[:Owns]-(to_person:Person) RETURN from_person.name AS from_account_owner, from_account.id AS from_account_id, to_person.name AS to_account_owner, to_account.id AS to_account_id, transfer.amount AS amount
Haz clic en Ejecutar.
En la pestaña Resultados, se muestran las siguientes rutas de Dana a través de
Account {id:20}
:- A
Account {id:7}
propiedad de Alex. A
Account {id:16}
propiedad de Lee.
- A
Bibliotecas cliente
Python
Java
Go
C++
Limpia
Muchos de los ejemplos de Qué sigue usan los recursos que configuraste en este documento. Si quieres seguir trabajando con Spanner Graph con uno de estos ejemplos, no realices estos pasos de limpieza todavía. En esta sección, se muestra cómo usar la consola de Google Cloud para limpiar tus recursos.
De lo contrario, para evitar cargos adicionales en tu cuenta de Facturación de Cloud, borra la base de datos y la instancia que creaste durante la configuración. Si borras una instancia, se borrarán de forma automática todas las bases de datos creadas en ella.
Borra la base de datos
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en el nombre de la instancia que tiene la base de datos que deseas borrar, por ejemplo, Instancia de prueba.
Haz clic en el nombre de la base de datos que deseas borrar, por ejemplo, example-db.
En la página Detalles de la base de datos, haz clic en Borrar Borrar base de datos.
Para confirmar que quieres borrar la base de datos, ingresa su nombre y haz clic en Borrar.
Borra la instancia
En la consola de Google Cloud, ve a la página Instancias de Spanner.
Haz clic en el nombre de la instancia que deseas borrar, por ejemplo, Instancia de prueba.
Haz clic en Borrar instancia.
Ingresa el nombre de la instancia y haz clic en Borrar para confirmar que quieres borrarla.
¿Qué sigue?
- Obtén más información sobre Spanner Graph con un codelab.
- Obtén información sobre el esquema de Spanner Graph.
- Crea, actualiza o borra un esquema de gráfico de Spanner.
- Inserta, actualiza o borra datos de Spanner Graph.
- Descripción general de las consultas de Spanner Graph.
- Migra a Spanner Graph.