More

    O que é um banco de dados gráfico?


    O problema: o aplicativo deve armazenar uma coleção de pessoas e quem elas conhecem. Às vezes, deve descobrir todo mundo que conhece alguém que conhece Bob. Às vezes, é preciso procurar mais longe para todos que estão a três saltos de distância. Às vezes deve encontrar os amigos dos amigos de Bob que gostam de pescar ou ouvir sinfonias.

    O banco de dados de gráficos foi originalmente projetado para armazenar redes – ou seja, as conexões entre vários elementos, como pessoas, lugares que podem visitar ou coisas que podem usar. Os bancos de dados relacionais podem encontrar conexões únicas entre eles, mas ficam atolados quando solicitados a negociar e analisar relacionamentos complexos entre várias partes.

    Isso pode ser tão desafiador em termos computacionais que pode ameaçar uma empresa que cresce muito rapidamente. Dobrar o número de usuários quadruplicará os relacionamentos possíveis, por exemplo. Uma das primeiras redes sociais, Friendster, lutou para gerenciar a complexidade crescente de seu gráfico social quando se tornou popular. No final das contas, ele perdeu sua vantagem de pioneiro para aqueles com melhor tecnologia de banco de dados.

    O banco de dados gráfico cresceu em popularidade com o surgimento das redes sociais, mas não há razão para limitá-lo a rastrear pessoas e suas amizades. Ele pode ser usado para localizar todos os livros que citam um livro que estava na biblioteca pessoal de Isaac Newton. Ou todos os produtos químicos que reagem com o sal de cozinha. Ou todos os edifícios que podem ser alcançados esperando em no máximo dois semáforos.

    A palavra “gráfico” costuma ser confusa porque os matemáticos usam a palavra para várias construções diferentes, e a maioria das pessoas tem experiência apenas com a versão mais conhecida: a linha que traça a relação entre duas variáveis ​​como tempo e dinheiro. Por outro lado, os bancos de dados gráficos são especializados em armazenar relacionamentos mais arbitrários que podem não ser contínuos.

    O banco de dados gráfico brilha quando solicitado a pesquisar nas redes definidas por essas conexões. Eles têm algoritmos especializados para compilar as camadas de relacionamentos que se irradiam de uma entrada.

    Alguns dos casos de uso comuns

    • Mecanismos de recomendação – as pessoas geralmente procuram produtos semelhantes como outras pessoas. Ou seja, se uma pessoa compra cadarços depois de comprar tênis, há uma boa chance de que outras pessoas façam o mesmo. Os mecanismos de recomendação procuram pessoas que estão conectadas por suas compras e, em seguida, procuram outros produtos intimamente relacionados no gráfico.
    • Detecção de fraude – Bons clientes raramente cometem fraude, e os fraudadores frequentemente seguem o mesmo padrão repetidamente. Construir um gráfico de transações pode identificar fraudes sinalizando padrões suspeitos que geralmente não têm conexão com transações legítimas.
    • Redes de conhecimento – Alguns pesquisadores de inteligência artificial vêm criando gráficos de fatos e as conexões entre eles para que os computadores possam se aproximar do raciocínio humano seguindo caminhos.
    • Roteamento – Encontrar um caminho no mundo é muito parecido com encontrar um caminho em um gráfico abstrato que está modelando as estradas. Se as interseções são nós, e as ruas entre elas, elos ou bordas, o gráfico é uma boa representação abstrata do mundo. A escolha de um caminho para um carro autônomo requer apenas uma sequência de nós e links entre eles.

    Em geral, os bancos de dados padrão podem localizar facilmente conexões que estão a apenas um salto de distância. Os bancos de dados de gráficos são otimizados para lidar com consultas que podem seguir vários saltos e coletar todos os nós em um raio. Ele não pode pesquisar através de vários links ou saltos sem várias consultas.

    Como os jogadores legados estão abordando isso

    A Microsoft adicionou nós especiais e tabelas de borda ao SQL Server para tornar mais simples a execução de pesquisas mais complicadas. Essas tabelas podem ser pesquisadas com os comandos SELECT tradicionais, mas brilham quando o comando especial MATCH pode procurar padrões específicos de itens e as conexões entre eles. Uma PARTIDA escrita por um criador de cães, por exemplo, pode procurar dois pais em potencial que não são primos próximos.

    A Oracle oferece um Graph Server separado que se integra com seus produtos principais e a combinação armazenará dados em tabelas gráficas e tradicionais. A ferramenta pode executar mais de 60 algoritmos de gráfico diferentes, como encontrar a conexão mais curta entre as pessoas ou procurar grupos particularmente restritos.

    Ambas as extensões podem funcionar com SQL padrão, mas ambas também integram mecanismos GraphQL para usuários que desejam usar essa linguagem de consulta. O GraphQL, aliás, foi projetado para simplificar algumas consultas. Embora faça um bom trabalho com bancos de dados gráficos, também brilha com tabelas relacionais básicas.

    Muitos usuários estão implantando GraphQL para tarefas que não são estritamente aplicativos gráficos. Por exemplo, a IBM integrou a estrutura analítica Apache TinkerPop ao Db2. As consultas são escritas em uma linguagem chamada Gremlin, que é traduzida em mais solicitações SQL padrão.

    Os iniciantes

    Várias novas startups estão construindo bancos de dados gráficos do zero. Alguns são puramente comerciais e muitos oferecem modelos híbridos.

    O Neo4j é um banco de dados de código aberto completo que pode ser executado localmente ou adquirido como serviço na própria nuvem Aura do Neo4J. A empresa também oferece ferramentas de navegação nas redes (Bloom) e implementação de algoritmos de busca de rede mais sofisticados para analisar os nós mais importantes da rede e prever o desempenho. Os algoritmos de centralidade, por exemplo, encontram os nós mais influentes usando o número e a estrutura das conexões. Os algoritmos de detecção de comunidade procuram grupos de nós fortemente conectados.

    O produto homônimo de ArangoDB está disponível como uma licença de comunidade, um produto corporativo ou uma instância que pode ser iniciada em qualquer uma das principais nuvens. A empresa afirma que seu produto é “multimodal”, o que significa que os nós podem atuar como armazenamentos de chave / valor NoSQL, partes de um gráfico ou ambos. A versão Enterprise adiciona recursos extras para espalhar gráficos maiores em várias máquinas para um desempenho mais rápido. A ferramenta funciona para manter registros ou nós conectados na mesma máquina para acelerar algoritmos que requerem pesquisa ou cruzamento local.

    O Neptune da Amazon é um banco de dados gráfico distribuído otimizado para conjuntos de dados muito grandes e tempos de resposta rápidos. Ele funciona com duas linguagens de consulta populares (TinkerPop e SparQL). Ele é totalmente gerenciado e avaliado como um serviço integrado com os outros serviços da AWS.

    O Dgraph é um banco de dados gráfico distribuído com um núcleo que está disponível sob a licença Apache envolto por uma coleção de rotinas corporativas que suportam conjuntos de dados maiores. A principal linguagem de consulta é GraphQL, desenvolvido pelo Facebook para uma recuperação de dados mais geral. O Dgraph também estendeu a linguagem central com um conjunto de rotinas focadas na busca e extração das conexões do gráfico. Essa extensão, chamada DQL, pode executar tarefas mais sofisticadas, como encontrar o nó com o maior número de arestas de entrada correspondentes a um predicado específico.

    JanusGraph é um projeto da Linux Foundation que foi desenvolvido para armazenar e analisar gráficos muito grandes. O trabalho é apoiado por várias empresas, incluindo a Target. O código-fonte é lançado sob a licença Apache e funciona junto com alguns dos grandes bancos de dados NoSQL, como Apache HBase, Google’s Bigtable ou Oracle’s Berkeley DB. O código é totalmente integrado com muitos dos outros projetos Apache, como Spark para análise distribuída do gráfico, Lucene para armazenar e pesquisar texto bruto e TinkerPop para consultar e visualizar os resultados.

    TigerGraph foi desenvolvido para grandes empresas com grandes conjuntos de dados que podem querer executar a ferramenta localmente ou assinar um serviço no TigerGraph Cloud. As análises são destinadas a setores com casos de uso bem compreendidos, como os regulamentos que pedem aos bancos que rastreiem os fluxos de dinheiro entre as contas para impedir a lavagem de dinheiro.

    Existe algo que um banco de dados gráfico como serviço não pode fazer?

    Os bancos de dados gráficos são em grande parte superconjuntos de bancos de dados regulares e muitos deles foram criados adicionando novas estruturas de tabelas aos bancos de dados existentes. Eles geralmente podem fazer tudo que um banco de dados normal pode realizar e também pesquisar nas redes definidas nos dados.

    Alguns algoritmos de pesquisa de gráfico mais simples podem não precisar dos recursos extras de um banco de dados de gráfico. Um programador experiente pode duplicá-los com um pouco de código. Os resultados, porém, podem ser muito mais lentos, especialmente quando a análise requer várias consultas. Isso significa mais hardware e mais licenças para lidar com a mesma carga de trabalho.

    A verdadeira questão é se o caso de uso precisa de recursos extras e sacrifícios associados às tabelas de gráficos. Seu algoritmo precisará usar uma coleção maior de objetos fracamente conectados? Existe alguma ideia de localidade ou proximidade que deve fazer parte do algoritmo? A regra sobre proximidade ou proximidade é forte o suficiente para que os algoritmos sejam capazes de ignorar nós que não são particularmente próximos? Por exemplo, um algoritmo de recomendação de restaurante pode sugerir apenas lugares próximos. Os usuários ficarão satisfeitos com as recomendações se não incluírem um lugar particularmente notável que se encaixa perfeitamente, mas fica logo fora do raio de pesquisa?

    Este artigo faz parte de uma série sobre tendências de tecnologia de banco de dados corporativo.

    VentureBeat

    A missão da VentureBeat é ser uma praça da cidade digital para que os tomadores de decisões técnicas obtenham conhecimento sobre a tecnologia transformadora e façam transações. Nosso site oferece informações essenciais sobre tecnologias e estratégias de dados para guiá-lo à medida que lidera suas organizações. Convidamos você a se tornar um membro de nossa comunidade, para acessar:

    • informações atualizadas sobre os assuntos de seu interesse
    • nossas newsletters
    • conteúdo líder de pensamento fechado e acesso com desconto a nossos eventos premiados, como o Transform
    • recursos de rede e muito mais

    Torne-se um membro


    Artigos Recentes

    Cor da lâmpada Wyze: a única lâmpada inteligente barata que vale a pena por aí

    “É tão bom e barato que talvez você nunca mais volte para a Philips Hue.” Saída realmente brilhante As cores estão muito saturadas Não requer ponte Preço...

    Yield Guild Games permitirá que os jogadores ganhem dinheiro com jogos NFT

    Chegou a hora de ganhar dinheiro com jogos, de acordo com a Yield Guild Games, que arrecadou US...

    UFC PPV: Quanto custa na ESPN +?

    A nova temporada do UFC começou oficialmente com o UFC 259: Blachowicz vs. Adesanya - o terceiro grande evento pay-per-view de 2021 com...

    Artigos Relacionados

    DEIXE UMA RESPOSTA

    Por favor digite seu comentário!
    Por favor, digite seu nome aqui