Explorar dados de gráficos com o notebook do Spanner Graph

Com o notebook Spanner Graph, é possível explorar seus dados visualmente em um ambiente de notebook, como o Jupyter Notebook ou o JupyterLab. Usando a sintaxe de consulta da Graph Query Language (GQL), é possível extrair insights de gráficos e padrões de relacionamento, incluindo propriedades de nós e arestas e análise de expansão de vizinhos. A ferramenta também oferece visualização de metadados do esquema de gráfico, inspeção de resultados tabulares e diversas topologias de layout.

O notebook do Spanner Graph é compatível com conexões de texto simples, TLS e TLS mútuo (mTLS).

Instalar o notebook do Spanner Graph

Para instalar o pacote Spanner Graph notebook (versão 1.1.11 ou mais recente) no seu ambiente Python ou Jupyter, execute o seguinte comando pip:

pip install "spanner-graph-notebook>=1.1.11"

Carregar a extensão do Spanner Graph

Para carregar a extensão Spanner Graph no notebook Jupyter, use o seguinte comando:

%load_ext spanner_graphs

Conectar ao seu banco de dados

Para se conectar ao banco de dados do Spanner Omni, verifique se você carregou a extensão e use o comando de célula %%spanner_graph:

Texto simples

Para estabelecer uma conexão de texto simples, execute o seguinte:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

Substitua:

  • OMNI_ENDPOINT: o nome do host ou o endereço IP da instância do Spanner Omni.

  • PORT: o número da porta da sua instância do Spanner Omni.

  • DATABASE_NAME: o nome do banco de dados do Spanner Omni.

TLS

Para estabelecer uma conexão TLS, especifique o caminho para o certificado de CA:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT

Substitua:

  • OMNI_ENDPOINT: o nome do host ou o endereço IP da instância do Spanner Omni.

  • PORT: o número da porta da sua instância do Spanner Omni.

  • DATABASE_NAME: o nome do banco de dados do Spanner Omni.

  • PATH_TO_CA_CERT: o caminho para o arquivo de certificado de CA.

mTLS

Para estabelecer uma conexão mTLS, especifique o certificado de CA, o certificado do cliente e a chave privada do cliente:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT --client_certificate PATH_TO_CLIENT_CERT --client_key PATH_TO_CLIENT_KEY

Substitua:

  • OMNI_ENDPOINT: o nome do host ou o endereço IP da instância do Spanner Omni.

  • PORT: o número da porta da sua instância do Spanner Omni.

  • DATABASE_NAME: o nome do banco de dados do Spanner Omni.

  • PATH_TO_CA_CERT: o caminho para o arquivo de certificado de CA.

  • PATH_TO_CLIENT_CERT: o caminho para o arquivo de certificado do cliente.

  • PATH_TO_CLIENT_KEY: o caminho para o arquivo da chave privada do cliente.

Visualizar uma consulta

Para visualizar os resultados da consulta de gráfico no notebook, suas consultas precisam retornar elementos de gráfico no formato JSON usando a função SAFE_TO_JSON ou TO_JSON. Os caminhos completos do gráfico são recomendados para integridade dos dados e facilidade de visualização.

Exemplo: retornar um caminho como JSON

O exemplo a seguir mostra o caminho que conecta uma pessoa às contas que ela possui:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH query_path = (person:Person {id: 5})-[owns:Owns]->(accnt:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json

Exemplo: consulta de gráfico de várias etapas

O exemplo a seguir mostra um caminho de comprimento variável (1 a 3 transmissões) de transferências entre contas:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH query_path = (src:Account {id: 9})-[edge:Transfers]->{1,3}(dst:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json

Exemplo: retornar vários caminhos

O exemplo a seguir retorna e visualiza vários caminhos de gráfico em uma única consulta:

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH path_1 = (person:Person {id: 5})-[:Owns]->(accnt:Account),
      path_2 = (src:Account {id: 9})-[:Transfers]->(dst:Account)
RETURN SAFE_TO_JSON(path_1) AS path_1,
        SAFE_TO_JSON(path_2) AS path_2

A seguir