Consulta SQL++ / N1QL

Pesquisa mais inteligente com consultas de gráfico em dados de documentos

Durante décadas, os desenvolvedores enfrentaram um dilema frustrante: escolher a flexibilidade e a escalabilidade de um banco de dados de documentos ou escolher a rica modelagem de relacionamento de um banco de dados de gráficos. Para criar aplicativos que exigiam ambos - como sistemas de detecção de fraudes, mecanismos de recomendação ou rastreadores complexos da cadeia de suprimentos - muitas vezes era necessário gerenciar dois sistemas separados, lidando com as inevitáveis dores de cabeça da sincronização de dados, latência e complexidade operacional.

Mas os aplicativos agênticos exigem mais. Eles precisam atravessar relacionamentos complexos e gerenciar dados ricos e hierárquicos com rapidez.

Conceituamos um modelo gráfico no Couchbase para eliminar essa dicotomia. Ao colocar um modelo de gráfico diretamente sobre o nosso armazenamento de documentos, permitimos que você consulte seus dados JSON existentes como um gráfico sem movê-los, duplicá-los ou gerenciar um banco de dados separado. Esse modelo de gráfico equipa o SQL++ com gráficos para correspondência de padrões e passagem de relacionamentos, tudo em uma única plataforma de alto desempenho.

Nesta postagem, apresentamos a arquitetura conceitual desse novo modelo, exploramos como ele aproveita a linguagem SQL++ que você já conhece e mostramos como criar aplicativos com muitos relacionamentos com simplicidade e escala sem precedentes.

O modelo de gráfico amplia o SQL++ introduzindo 1) uma instrução “CREATE GRAPH” que define um gráfico de propriedade virtual sobre o conjunto de dados existente e 2) um termo “MATCH” na FromClause existente do SQL++. O ’MATCH“ permite que os autores de consultas especifiquem padrões de consulta de navegação usando a mesma sintaxe encontrada em linguagens de consulta de gráficos populares, como Cypher (Neo4j) e SQL/PGQ 2023. O que separa o modelo de gráfico do Couchbase das extensões de gráfico ”aparafusadas“ de outros concorrentes é nossa interação sinérgica entre documentos, vértices e bordas. Por exemplo, as consultas do modelo de gráfico do Couchbase podem se unir explicitamente aos vértices do padrão de consulta e às coleções/subconsultas do Couchbase. Consequentemente, um usuário do Couchbase pode expressar conceitos poderosos (por exemplo, hipergráficos, gráficos de hipernó, etc.) que modelam com mais precisão o modelo de dados de uma organização. 

Nos bastidores, o Couchbase reescreve os padrões de consulta de gráfico em uma série de JOINs e CTEs recursivos que operam sobre as consultas de vértice e borda da definição “CREATE GRAPH”. Depois de reescrita, a consulta é otimizada e executada em paralelo particionado usando os mesmos serviços (Query Service, Index Service, Search Service, etc.) que suas consultas SQL++ existentes usam. Devido à natureza virtual desse gráfico, os usuários não precisam esperar que o gráfico seja criado e podem obter seus insights mais rapidamente. Combinando o MATCH com as cláusulas SQL++ existentes, os usuários do Couchbase podem “manter” seu JSON e fazer o gráfico também.

Veja a seguir os casos de uso possibilitados pelo suporte ao modelo de gráfico no Couchbase:

  1. Atendimento ao paciente em 360 graus: Os dados do setor de saúde são notoriamente confusos. O registro de um paciente é um “documento” (nome, data de nascimento, endereço), mas seu histórico médico é uma complexa rede de relacionamentos: médicos visitados, receitas aviadas, resultados de laboratório, pedidos de seguro e histórico familiar. Um médico agora pode perguntar: “Mostre-me todos os pacientes diagnosticados com diabetes tipo 2 que receberam prescrição de metformina do Dr. Smith, mas que não visitaram a clínica em seis meses”, como um padrão gráfico.
  2. Detecção de fraudes: Os fraudadores operam em redes. Eles compartilham endereços, números de telefone ou dispositivos para criar identidades sintéticas. Para detectar isso, é necessário identificar os conexões entre contas aparentemente não relacionadas. Agora, um analista pode detectar uma rede de fraudes com uma simples consulta: “Encontre todos os usuários que se conectaram a partir do mesmo endereço IP em um intervalo de 10 minutos e iniciaram transações na mesma conta de destino”.”
  3.  Mecanismos de recomendação: “As pessoas que compraram X também compraram Y” é simples. Mas “Pessoas como você (mesmo perfil demográfico) que compraram X e fizeram uma avaliação positiva também compraram Y” é um problema gráfico complexo. Um site de comércio eletrônico pode agora oferecer recomendações hiperpersonalizadas: “Recomende produtos comprados por outros usuários que também compraram as mesmas ‘Botas de caminhada’ que o usuário atual, mas filtre por produtos na categoria ‘Equipamento de acampamento’.”
  4. Visibilidade da cadeia de suprimentos: Uma cadeia de suprimentos moderna é uma hierarquia profunda. Um carro contém um motor, que inclui um pistão, que contém uma liga metálica específica. Se um lote de liga estiver com defeito, você precisará saber exatamente quais carros devem ser recolhidos. Um fabricante pode rastrear um defeito instantaneamente: “Encontre todos os carros ‘Modelo X’ acabados que contenham um ‘Anel de pistão’ fornecido pela ‘Acme Corp’ no ‘Lote #99’.” É mais intuitivo expressar essa travessia (CONTAINS -> CONTAINS -> CONTAINS) como um caminho em um modelo de gráfico, em vez de uma consulta usando CTEs recursivos.

O modelo de gráfico oferece um passo adiante ao tornar os dados ricos em relacionamentos acessíveis diretamente no Couchbase. Ao preencher a lacuna entre os documentos JSON e as estruturas de gráficos, agora você pode descobrir padrões ocultos e responder a perguntas complexas sem a sobrecarga de um banco de dados de gráficos separado.

Pronto para experimentá-lo e fornecer feedback? Preparamos um notebook completo e prático que o orienta na criação do gráfico de pesquisa de cães, preenchendo-o com dados de amostra e executando consultas gráficas para responder a perguntas como: “Encontre todos os produtos de ração para cães que contenham ingredientes que desencadeiam alergias em Golden Retrievers”. Faça o download do Caderno Colab e comece a explorar o potencial de seus dados hoje mesmo.

,
Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Glenn Galvizo

Deixe um comentário

Ready to get started with Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.