Spanner Graph e padrões ISO

A página descreve como o Spanner Graph oferece suporte à linguagem de consulta padrão internacional ISO para bancos de dados de gráficos.

O Spanner Graph é baseado em dois padrões ISO:

As tabelas a seguir descrevem a relação de alto nível entre SQL/PGQ, GQL e como o Spanner Graph oferece suporte a esses padrões.

Padrão SQL/PGQ GQL Spanner Graph
Consulta Recursos de correspondência de padrões de gráfico Compartilha as funcionalidades principais da linguagem de correspondência de padrões de gráfico (GPML, na sigla em inglês) com o GQL. Compartilha as funcionalidades principais do GPML com o SQL/PGQ. Ambos os padrões são aceitos. Para mais informações, consulte os padrões GQL do Spanner Graph.
Consulta Outros recursos da linguagem de consulta (por exemplo, LIMIT, ORDER, agregação) Com base em SQL. Semelhante ao SQL, mas os recursos de consulta do GQL são instruções de consulta de gráfico linearmente combináveis. Ambos os padrões são aceitos. Para mais informações, consulte as Instruções de consulta GQL do Spanner Graph e a Sintaxe de consulta no GoogleSQL.
Consulta Interoperabilidade de gráficos e tabelas Compatível. Incompatível. Ambos os padrões são aceitos. Para mais informações, consulte Operador GRAPH_TABLE.
Tipos Os tipos de dados, as funções e as expressões em SQL/PGQ e GQL são semelhantes. Os tipos de dados, as funções e as expressões em SQL/PGQ e GQL são semelhantes. Oferece suporte à maioria dos tipos de dados e expressões em SQL/PGQ e GQL. Para mais informações, consulte Tipos de dados no GoogleSQL.
DML O SQL/PGQ herda a DML do SQL. DML baseado em gráfico é aceito. Oferece suporte a DML baseada em tabelas SQL. Para mais informações, consulte a linguagem de manipulação de dados do GoogleSQL.
Esquema Oferece suporte ao uso de CREATE PROPERTY GRAPH em tabelas. Suporte ao uso de CREATE PROPERTY GRAPH com tipos abertos e fechados. Oferece suporte ao método SQL/PGQ. Para mais informações, consulte a definição de CREATE PROPERTY GRAPH.

Suporte a SQL/PGQ

Padrão ID do recurso SQL/PGQ Spanner Graph
Consulta (interoperabilidade de gráfico e tabela) Recurso G900: GRAPH_TABLE Compatível. Para mais informações, consulte o operador GRAPH_TABLE.
Esquema Recurso G924: cláusula de chave explícita para tabelas de elementos. Isso implica uma declaração de conformidade com o recurso G920: gráficos de propriedade SQL baseados em DDL. Compatível. Para mais informações, consulte a instrução CREATE_PROPERTY_GRAPH.
Esquema Recurso G925: cláusula de rótulo e propriedades explícitas para tabelas de elementos. Isso implica uma declaração de conformidade com o recurso G920: gráficos de propriedade SQL baseados em DDL. Compatível. Para mais informações, consulte a instrução CREATE_PROPERTY_GRAPH.
Consulta (GPML) Recurso G001: modo de correspondência de elementos repetíveis. Compatível. O modo de correspondência de elementos repetíveis é a semântica padrão. A sintaxe da cláusula de modo de correspondência de elementos repetitivos explícitos não é aceita.
Consulta (GPML) Recurso G008: cláusula WHERE de padrão de gráfico. Isso implica uma declaração de conformidade com o recurso G000: Padrão de gráfico. Compatível. Para mais informações, consulte Padrão de gráfico.
Consulta (GPML) Recurso G034: concatenação de caminho. Compatível. Para mais informações, consulte Padrão de gráfico.
Consulta (GPML) Recurso G040: padrão de vértice. Compatível. Para mais informações, consulte Padrão de elemento.
Consulta (GPML) Recurso G042: padrões básicos de borda completa. Compatível. Para mais informações, consulte Padrão de elemento.
Consulta (GPML) Recurso G070: expressão de rótulo: disjunção de rótulos. Compatível. Para mais informações, consulte Expressão de rótulo.
Consulta (GPML) Recurso G073: expressão de rótulo: nome do rótulo individual. Compatível. Para mais informações, consulte Expressão de rótulo.
Consulta (GPML) Recurso G090: referência de propriedade. Compatível.

Suporte ao GQL

Padrão ID do recurso GQL Spanner Graph
Esquema Recurso GG02: gráfico com um tipo fechado. Conformidade com pelo menos uma das GG20, GG21, GG22 ou GG23:
  • Recurso GG20: nomes de tipo de elemento explícitos.
  • Recurso GG21: conjuntos de rótulos de chave de tipo de elemento explícito.
  • Recurso GG22: inferência de conjunto de rótulos de chave de tipo de elemento.
  • Recurso GG22: inferência de conjunto de rótulos de chave de tipo de elemento.
  • Recurso GG23 Conjuntos de rótulos de chave de tipo de elemento opcional.
Compatível. O suporte ao GQL pode ser escolhido entre GG01: Gráfico com um tipo aberto ou GG02.
O Spanner Graph não oferece suporte à mesma instrução CREATE_GRAPH_TYPE do GQL. No entanto, a instrução CREATE_PROPERTY_GRAPH (link em inglês) aceita pelo Spanner Graph está intimamente relacionada ao GG02, com suporte semelhante para GG20, GG21, GG22 e GG23.
Estrutura lexical "Uma declaração de conformidade com uma versão específica do padrão Unicode® e as versões síncronas do Unicode Technical Standard #10, do Unicode Standard Annex #15 e do Unicode Standard Annex #31. A versão indicada do padrão Unicode® não pode ser inferior a 13.0.0." O GQL do Spanner Graph compartilha a estrutura léxica exata com o GoogleSQL. Para referência a valores de escape Unicode, consulte Sequências de escape para literais de strings e bytes.
Tipos de dados Uma declaração de conformidade com o conjunto de todos os tipos de valor com suporte como tipos de valores de propriedade. No mínimo, esse conjunto deve incluir:
  • O tipo de string de caracteres especificado por STRING ou VARCHAR.
  • O tipo booleano especificado por BOOLEAN ou BOOL.
  • O tipo de número inteiro regular assinado especificado por SIGNED INTEGER, INTEGER ou INT.
  • O tipo numérico aproximado especificado por FLOAT.
Compatível. Para mais informações, consulte uma lista completa de tipos de dados aceitos pelo Spanner Graph GQL.

Outros recursos

Os recursos listados nas seções anteriores são os recursos de conformidade mínima dos padrões. O Spanner Graph oferece suporte a outros recursos nos padrões ISO. Para saber mais, consulte a Visão geral do esquema do Spanner Graph e a Visão geral do GQL.