Want to make awesome contents like this one?

Dgraph

Created on Thu Feb 08 2018 00:58:26 GMT+0000 (UTC)

No description

More creations to inspire you

Discover Genially
It's time to take your communication to another level

Comments

Transcript

+,http://www.apcjones.com/arrows/#,Teoria dos grafos,Polygon,@micheldiz,<idade>,28,Michel Conrado,Neo4j,redis,Joe,false,Quem usa grafos?,KV de alta velocidade e disponibilidade,uid: 0xfd32,<name>,uid: 0xh55v,Features,Dgraph,Rápido,<castrado>,Introdução ao Dgraph,Vocês conhecem?,GraphQL,Vocês conhecem? blz, só que Dgraph é15x mais rápido com muito maior load :3,Michel conrado A. Diz,Vocês conhecem?,DB Grafo,@micheldizaeh,michelconrado@cryptoengage.com.br,Sobre mim,Linguagem Graphql+-,Dgraph é a união destes conceitos,Conceito,<name>,+,<owns_pet>, director(func: allofterms(name@en, "steven spielberg")) { name@en director.film { name@en initial_release_date country { name@en } genre { name@en }}},<vacinas>,Escalonavel (clustering),Altamente Disponível,Open Source,Características,1 Você tem mais de 10 tabelas SQL, conectadas entre si por foreign IDs?,2 Você possui dados esparsos, ao qual não se encaixam corretamente nas tabelas SQL?,Dgraph Seria uma boa escolha?,3 Você quer um esquema simples e flexível, que seja legível e sustentável ao longo do tempo?,4 Você se preocupa com velocidade e desempenho em escala?,Dgraph Seria uma boa escolha?,Se as respostas anteriores forem todas "SIM", então Dgraph seria perfeito!para sua aplicação. O Dgraph fornece o NoSQL como escalabilidade, ao mesmo tempo que fornece transações de SQL e a capacidade de selecionar, filtrar e agregar pontos de dados. Combina isso com junções distribuídas, travessas e operações gráficas, o que facilita a criação de aplicativos com ele.,Clientes,Entidade + Atributo + valor + valor extra .,<subject> <predicate> <object> (facete=true) .,BadgerDB,0xa01,<raça>,Dgraph-js,[lista],dgraph4j,owns_pet: uid @reverse, petOwner(func: eq(name, "Michel")){ name idade dono_de: owns_pet { name castrado raca { name } } }},<is_adm>,true,0xfd32, <estuda_aq> <True> (desde=2016) ., <nome> <"michel"> (tags=Bitcoin) .,Banco de dados Assícrono de KV (key + Value),Binário Dgraph cluster contendo três aplicações: Dgraph Zero, Dgraph Server e Ratel.,GEO - geolocalização,Analogias:BadgerDB = CozinhaDgraph Server = CozinheiroDgraph Zero = GarçonsRatel = Cardápio (Interface de usuário)Dgraph-JS = Cliente consumindo, <_:0xeb1dde9c> <loc> "{'type':'Point','coordinates' [-122.4220186,37.772318]}"^^<geo:geojson> . <_:0xeb1dde9c> <name> "Hamon Tower" .,<_:0xf76c276b> <loc> "{'type':'Polygon','coordinates':[[[-122.409869,37.7785442],[-122.4097444,37.7786443],[-122.4097544,37.7786521],[-122.4096334,37.7787494],[-122.4096233,37.7787416],[-122.4094004,37.7789207],[-122.4095818,37.7790617],[-122.4097883,37.7792189],[-122.4102599,37.7788413],[-122.409869,37.7785442]],[[-122.4097357,37.7787848],[-122.4098499,37.778693],[-122.4099025,37.7787339],[-122.4097882,37.7788257],[-122.4097357,37.7787848]]]}"^^<geo:geojson> . <_:0xf76c276b> <name> "Best Western Americana Hotel" .,MultiPolygon, O Google usa "Knowledge Graph" desde 2012 e resultou numa melhora de performance e escalabilidade do sistema de buscas. Em outubro de 2016, o Google anunciou que o "Knowledge Graph" continha mais de 70 bilhões de fatos., A teoria dos grafos é um ramo da matemática que estuda as relações entre os objetos de um determinado conjunto. Para tal são empregadas estruturas chamadas de grafos, G(V,E), onde V é um conjunto não vazio de objetos denominados vértices (ou nós) e E é um subconjunto de pares não ordenados de V, chamados arestas.,fonte: https://pt.wikipedia.org/wiki/Teoria_dos_grafos,Quem usa grafos?, Na conferência F8 do Facebook realizada em 24 de maio de 2007, quando foi usada para explicar como a nova Plataforma do Facebook aproveitaria os relacionamentos entre indivíduos para oferecer uma experiência online mais rica. A definição foi expandida para se referir a um gráfico social de todos os usuários da Internet., Manish Rai Jain - Fundador do dgraph.io. Autor de Dgraph e Badger. Ex-Google. Ex-Quora. Engenheiro de núcleo do Dgraph. Liderou vários projetos para consolidar e servir o gráfo knowledge do Google.,Quem criou o Dgraph?,_:blank-0 <name> "alguma string" (tags=InfoExtra) .,Envie um obj JSON,JSON object,{ "name": "diggy", "food": "pizza"},_:blank-0 <name> "diggy" ._:blank-0 <food> "pizza" .,Gera automaticamente um RDFs mutation,<0x467ba0> <name> "diggy" .<0x467ba0> <food> "pizza" .,Obtenha | RDFs gravado no DB,https://realtimeboard.com/app/board/o9J_k0N22Eo=/Fazer tourhttps://labs.play-with-docker.com/https://tour.dgraph.io/intro/2/,Oficiais,Como funcionar o Dgraph,Estrutura - Relação,Incompletos,Estrutura - do Schema,O que é um DB grafo, É um sistema Otimizado para pesquisas de valor-chave (KV) e cruzamentos de borda (famigerados JOINS). Que utiliza da teoria dos grafos na sua estrutura básica. Hoje o Dgraph é considerado uma mistura de noSQL e "NewSQL" tanto pela linguagem utilizada quanto das propriedades ACID. (Atomicidade, Consistência, Isolamento e Durabilidade),3 Se pretende criar um "newsFeeds", uma engine de recomendações, Sistema de busca contextual, sistema de detecção de padrões e fraudes, e muito mais., É um interpretador de linguagem para BadgerDB. De código aberto construido para escalonar ambientes em produção. Totalmente feito em Go Lang. Com várias funções.,Mas o que é o Dgraph?,director.film: uid @reverse @count .genre: uid @reverse .initial_release_date: dateTime @index(year) .name: string @index(term) .starring: uid @count .,Estrutura - Padrão RDF N-Quad,localhost:8080/*API,Protocolos disponíveis no Dgraph,Outras langs,Conceito,Estrutura - do Schema,uid: uint64int: int64float: ponto flutuantestring: stringbool: booleanoList Type: [string] ou [int] ou [geo] ou [UID]@reverse: para "friend" se usa => ~friend,dateTime: time.Time (RFC3339 format [Optional timezone] )geo: go-geom (GeoJSON)password: string (Encriptação nativa),Conceito,nome: string @index(term) .idade: int @index(int) .amigo: uid @count .industria: string @index(term) .chefe_de: uid @reverse.,Conceito,Estrutura - de Indexing do Schema,Conceito,@index(hash) => O índice mais performante para eq é hash.@index(exact) => Permite uma classificação mais rápida.@index(term) => Permite pesquisar por um termo em uma frase.@index(fulltext) => Correspondência com derivações e palavras específicas do idioma.@index(trigram) => Correspondência de expressões regulares. Também pode ser usado para verificar a igualdade.@index(year) @index(month) @index(day) @index(hour),Ferramentas,Grafana,Com: Filtros, Matching, +8 Funcs,Alias, Logic (AND, OR, NOT), Paginação, Contador, Sorteamento, Multiplos blocos de consulta, Variáveis e GraphQL variáveis, funções matemáticas, Schema simples, Facets, Consulta recursiva, Fragmentos, indexação e etc.,ACID transactions,+ Linguagem própria,ACID: Atomicidade, Consistência, Isolamento e Durabilidade,@micheldiz,Michel conrado A. Diz,@micheldizaeh,michelconrado@cryptoengage.com.br,Sobre mim