Banco de Dados
 Open Source
 Brenno Ayres / Rodrigo Aurélio
             TBD
Sumário

1. Conceito Open Source

2. Banco de Dados Open Source

3. PostgreSQL

4. NoSQL
Open Source
                      Definição


● A definição de Open Source foi criada pela OSI (Open
   Source Iniciative) a partir do texto original Debian
   Free Software Guidelines (DFSG) e determina que
   um software de código aberto deve garantir;

● Distribuição livre, código fonte, trabalhos derivados,
   integridade do autor, não discriminar pessoas e áreas
   de atuação, distribuição da licença.
Open Source
                              Lincenças
General Public License (Licença Pública Geral): A GPL é a licença com maior
utilização por parte de projetos de software livre, em grande parte devido à sua
adoção para o projeto GNU e o sistema operacional GNU/Linux.

Licença Apache é uma licença para software livre (open source) de autoria da
Apache Software Foundation (ASF). Todo software produzido pela ASF ou
qualquer um dos seus projetos e sub-projetos é licenciado de acordo com os
termos da licença Apache.

BSD permite que o software distribuído sob a licença, seja incorporado a
produtos proprietários. Trabalhos baseados no material podem até ser
liberados com licença proprietária. Alguns exemplos notáveis são: o uso de
código do BSD (funções de rede de computadores) em produtos da Microsoft,
e o uso de muitos componentes do FreeBSD no sistema Mac OS X da Apple
Computer.
Banco de dados
 Open Source
MySQL
              História/Características


● Partindo da necessidade de usar o mSQL para
  conectar tabelas utilizando ISAM, e visto que isso
  não tinha performance considerável. Foi criado
  uma nova abordabem da API do mSQL, nascendo
  assim o MySQL;

● Consome poucos recursos de hardware, controle
  trasancional, triggers, stored procedures, cursors,
  muito utilizado em hospedagens, dentre outros
MySQL
Cases de Sucesso
Firebird
              História/Características




● O Código fonte do Interbase foi liberado pela
  Borland em 2000, dando assim subsídio para que a
  comunidade pudesse construir o firebird;

● Ele dá suporte à ACID, MVCC, triggers,
  procedures, dentre outros;
PostgreSQL
PostgreSQL
                              História
O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com
o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia.

Stonebraker um dos pioneiros dos bancos de dados relacionais deixou a
faculdade em 1982 para vender o Ingres, porém retornou logo em seguida.

Em 1985 Stonebraker deu inicio ao projeto pós-Ingres patrocinado pela
DARPA(*Defense Advanced Research Projects Agency) e pelo ARO (Army
Research Office) construíram um banco que pudesse compreender tipos de
dados, que hoje nós conhecemos como objetos.

O projeto resultante, chamado Postgres, era orientado a introduzir a menor
quantidade possível de funcionalidades para completar o suporte a tipos.
PostgreSQL
                  Apresentação


● Utiliza a licença BSD;
● Suporte para os sistemas operacionais mais
  utilizados (Linux, Unix-Like e Windows);
● Implementa todos os conceitos de ACID
● Além dos tipos de dados do SQL também suporta
  objetos binários(Fotos, Vídeos...)
PostgreSQL
                   Apresentação


●   Banco de dados Objeto-Relacional
    ○   Herança;
    ○   Tipos de dados complexos;
    ○   Funções;
PostgreSQL
        Linguagem - Desenvolvimento
A principal liguagem utilizada para desenvolver o
PostgreSQL é o ANSI C, porem são utilizadas algumas
outras linguagens conforme podemos ver abaixo.
PostgreSQL
● Limites PostgreSQL
  ○   Banco de dados:       Ilimitado
  ○   Tabela:               32 TB
  ○   Linha:                1.6 TB
  ○   Campos:               1GB
  ○   Linhas por tabela:    Ilimitado
  ○   Colunas por tabela:   250 - 1600 (Conforme tipo)
  ○   Índices por tabela:   Ilimitado
PostgreSQL
                          Arquitetura

O PostgreSql utiliza o modelo cliente/servidor e sua sessão
consiste nos seguintes processos cooperando entre si.
   ○   O primeiro processo fica ativo no servidor que por sua vez gerencia
       arquivos e aceita conexões do clientes e executa as ações em nome
       dos clientes.


   ○   O segundo processo é o aplicativo cliente do usuário (frontend) que
       deseja executar operações de banco de dados.
PostgreSQL
  Arquitetura
PostgreSQL
                        Administração
Existem várias ferramentas para administrar o PostgreSQl
que vão de aplicações multiplataforma, Linux e outras para
Windows.

● Multiplataforma
   ○   PGAccess, phpPGAdmin, PGAdmin III, OpenOffice.org, ...

● Linux
   ○   pgFouine, Red Hat, TOra, ...

● Windows
   ○   Embarcadero, PGExplorer, DBTools,Pg Manager, ...
PostgreSQL
 Administração
PostgreSQL
                         Administração

Backups

    Método SQL-Dump: gera um arquivo de texto contendo instruções SQL
para serem processadas pelo servidor para recriar o Banco conforme o
arquivo.

    Cópia de Segurança: copiar diretamente os arquivos que o PostgreSQL
usa para armazenar o Banco.

    Cópia de Segurança em linha: o PostgreSQL mantém o registro de escrita
prévia (WAL = write ahead log) no subdiretório pg_xlog do diretório de dados
do agrupamento.
PostgreSQL
                   Replicação

● Replicação
  ○ Hot Standby, Streaming Replication
PostgreSQL
                  Performance/Recursos


●   Two Phase Commit (2PC)
    ○ Surgiu para controlar e monitorar as atividades de commit e rollback
       das transações em ambientes de bases de dados distribuídos, ele
       garante a integridade entre as bases permitindo que a transação seja
       segura e íntegra.


●   Performance
    ○ Com um grande poder de processamento, o PostgreSQL é capaz de
       resolver consultas complexas em milisegundos;
    ○ Para tal, ele consome recursos computacionais consideráveis;
PostgreSQL
                    Performance/Recursos




●   MVCC (controle de concorrência de multi-versão);
    ○ Diferentemente dos sistemas gerenciadores de banco de dados
       tradicionais, que usam bloqueios para    realizar o controle de
       concorrência, o PostgreSQL mantém a      consistência dos dados
       utilizando o modelo MVCC. Este modelo   impede que a transação
       enxergue dados inconsistentes ou seja   a informação que estão
       aparecendo são de algum tempo atrás.
PostgreSQL
                    Triggers

● Triggers
  ○ Before/After
  ○ NEW
    ■ INSERT: Valores inseridos;
    ■ UPDATE: Novos valores;
  ○ OLD
    ■ DELETE: Dados que estão sendo excluídos;
    ■ UPDATE: Valores sobrescritos;
  ○ Existem várias liguagens para a implementação
    (PL/pgSQL, PL/Perl, PL/Python, PL/Java, entre
    outras);
PostgreSQL
                           Trigger - Implementação

CREATE FUNCTION valida_dados_funcionario() RETURNS TRIGGER AS $valida_dados_funcionario$
BEGIN
       IF NEW.NOME IS NULL THEN
           RAISE EXCEPTION 'Por Favor, digite o nome do funcionario!';
   END IF;


       IF NEW.IDADE IS NULL THEN
           RAISE EXCEPTION 'Por favor, informe a idade!';
    END IF;


       IF NEW.IDADE < 0 THEN
           RAISE EXCEPTION 'Desculpe, o funcionario não pode ter % anos', NEW.IDADE;
    END IF;


   RETURN NEW;
END;
$valida_dados_funcionario$
LANGUAGE plpgsql;
PostgreSQL
        Procedures - Implementação

● Stored Procedures
  ○ Função que retonar um valor
  ○ Pode ser implementada em várias linguagens
  ○ Divide-se em:
     ■ Procedurais
     ■ Não procedurais
     ■ Linguagem específica
PostgreSQL
                   Stored Procedure

//Criar
create or replace function alunosAprovados()returns setof aluno
as

     select * from aluno where situacao = ''aprovado'';

language 'sql';

//Executar
    select alunosAprovados();
PostgreSQL
                            View - Implementação

CREATE VIEW vis_permanente_temporaria AS

  SELECT id_perm, nome_perm, nome_temp

  FROM tbl_permanente INNER JOIN tbl_temporaria ON (id_perm = id_temp);

INSERT INTO tbl_permanente VALUES (1,'nome permanente 1');
INSERT INTO tbl_permanente VALUES (2,'nome permanente 2');
INSERT INTO tbl_temporaria VALUES (1,'nome temporario 1');
INSERT INTO tbl_temporaria VALUES (2,'nome temporario 2');

pset border 2
pset title 'Visão juntando tabela permanente com temporária'

SELECT * FROM vis_permanente_temporaria;

  Visão juntando tabela permanente com temporária
+---------+-------------------+-------------------+
| id_perm |    nome_perm       |    nome_temp       |
+---------+-------------------+-------------------+
|     1 | nome permanente 1 | nome temporario 1 |
|     2 | nome permanente 2 | nome temporario 2 |
+---------+-------------------+-------------------+
(2 linhas)
PostgreSQL
 Patrocinadores
PostgreSQL
 Cases de Sucesso
Banco de dados OS
     NoSQL
NoSQL

A                                 B
C                                 A
I                                 S
D                                 E
                                Basic
                                     a
      icity                    Avaia lly
 Atom ency                           ble
     ist               Even Soft Stat
Cons tion                  tually      e
  Isola lity                      Cons
                                       isten
         bi                                  cy
  Dura
NoSQL
● Motivação
  ○ O fluxo gigantesco de dados em prazos mínimos de
    tempo, em um determinado contexto;
  ○ A crescente de serviços que necessitam de uma
    arquitetura que ofereça escalabilidade horizontal;
  ○ A necessidade de manusear ambiente semi-
    estruturados e até mesmo não estruturados;
● Modelos
  ○   Documento (Riak, MongoDB, CouchDB)
  ○   Chave-Valor (Amazon s3, Redis, Voldemort)
  ○   Colunas (Cassandra, HBase, Hyperbase)
  ○   Grafos (Neo4j, Titan, InfoGrid)
Document Based
● Principais caracteristicas
   ○   Comum a todas implementações é o conceito de "Document";


   ○   Document trata-se do encapsulamento e o encoding dos dados em
       arquivos de vários tipos (XML, JSON, BSON, até mesmo arquivos
       binários como PDF, DOC).


   ○   Em comparativo com o modelo relacional, internamente, um
       document pode ser tratado como uma tupla, porém de maneira mais
       flexível


   ○   A organização se dá de vários modos: Coleções, Tags, Hierarquias
       de diretórios, entre outras
Document Based
              Exemplo Mongo

darthVader = {
  nome: "Anakin Skywalker",
  politica: Sith,
  universo: "Star Wars",
  arma: "Estrela da morte"
}
db.starwars.save(darthVader)
Key - Value

● Conceito Básico

  ○ "O dados é geralmente consistido de uma string que
    representa a chave e o atual dado que é
    considerado o value";
  ○ O dados podem ser de tipos primitivos, como
    também objetos empacotados como utilizados na
    Orientação a Objetos;
Column Based

● Conceitos
  ○ Em face dos SGBDs row-oriented, que os dados
    são serializados em uma organização de linhas, o
    column based oferece tal organização em forma de
    colunas. Onde cada campo é armazenado em uma
    coluna;
● Beneficios
  ○ Empacotamento de dados. Onde os dados
    semelhantes e de mesmo formato estão sendo
    armazenados próximo;
  ○ Melhor utilização em sistemas OLAP (On-LIne Analytical
     processing)
Column Based
   Exemplo
Graph

● Breve introdução
  ○ Estrutura baseada na teoria dos gráficos;
  ○ Emprega conceitos como "Vertices/Nodes", "Edges"
    e "Properties";
  ○ Nodes e propriedades assemelham-se ao conceito
    utilizados em POO;
  ○ Não depende de esquemas ou de uma estruturação
    nos dados;
Titan
●   Graph database
●   Suporta Milhares de usuários concorrentes
●   Escalabilidade linear
●   Multi-datacenter
●   Suporte ACID e consistência eventual
●   Persistência
    ○ Cassandra, HBase, Oracle BerkleyDB
● Produtos voltado para grafos
    ○ Gremlin, Rexster, Blueprints
Titan
Grafos dos Deuses
Titan
                Breve implementação

● Criando uma instância do banco
   gremlin> g = GraphOfTheGodsFactory.create('/tmp/titan')
   ==>titangraph[local:/tmp/titan]

● Consultas
gremlin>      saturn          =           g.V('name','saturn').next()
==>v[4]
gremlin>                                                 saturn.map()
==>name=saturn
==>age=10000
==>type=titan
gremlin>                          saturn.in('father').in('father').name
==>hercules
Query Methods

● Document Based
  ○ Dynamic Object-based, MapReduce, XQuery;
● Wide Columns
  ○ MapReduce, HQL;
● Key-Value
  ○ MR Inside Value, MapReduce, NewSQL;
● Graphs
  ○ SparQL, Gremlin, JRuby, Java, Web UI ;
Dúvidas!?

Bancos de dados open source

  • 1.
    Banco de Dados Open Source Brenno Ayres / Rodrigo Aurélio TBD
  • 2.
    Sumário 1. Conceito OpenSource 2. Banco de Dados Open Source 3. PostgreSQL 4. NoSQL
  • 3.
    Open Source Definição ● A definição de Open Source foi criada pela OSI (Open Source Iniciative) a partir do texto original Debian Free Software Guidelines (DFSG) e determina que um software de código aberto deve garantir; ● Distribuição livre, código fonte, trabalhos derivados, integridade do autor, não discriminar pessoas e áreas de atuação, distribuição da licença.
  • 4.
    Open Source Lincenças General Public License (Licença Pública Geral): A GPL é a licença com maior utilização por parte de projetos de software livre, em grande parte devido à sua adoção para o projeto GNU e o sistema operacional GNU/Linux. Licença Apache é uma licença para software livre (open source) de autoria da Apache Software Foundation (ASF). Todo software produzido pela ASF ou qualquer um dos seus projetos e sub-projetos é licenciado de acordo com os termos da licença Apache. BSD permite que o software distribuído sob a licença, seja incorporado a produtos proprietários. Trabalhos baseados no material podem até ser liberados com licença proprietária. Alguns exemplos notáveis são: o uso de código do BSD (funções de rede de computadores) em produtos da Microsoft, e o uso de muitos componentes do FreeBSD no sistema Mac OS X da Apple Computer.
  • 5.
    Banco de dados Open Source
  • 6.
    MySQL História/Características ● Partindo da necessidade de usar o mSQL para conectar tabelas utilizando ISAM, e visto que isso não tinha performance considerável. Foi criado uma nova abordabem da API do mSQL, nascendo assim o MySQL; ● Consome poucos recursos de hardware, controle trasancional, triggers, stored procedures, cursors, muito utilizado em hospedagens, dentre outros
  • 7.
  • 8.
    Firebird História/Características ● O Código fonte do Interbase foi liberado pela Borland em 2000, dando assim subsídio para que a comunidade pudesse construir o firebird; ● Ele dá suporte à ACID, MVCC, triggers, procedures, dentre outros;
  • 9.
  • 10.
    PostgreSQL História O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia. Stonebraker um dos pioneiros dos bancos de dados relacionais deixou a faculdade em 1982 para vender o Ingres, porém retornou logo em seguida. Em 1985 Stonebraker deu inicio ao projeto pós-Ingres patrocinado pela DARPA(*Defense Advanced Research Projects Agency) e pelo ARO (Army Research Office) construíram um banco que pudesse compreender tipos de dados, que hoje nós conhecemos como objetos. O projeto resultante, chamado Postgres, era orientado a introduzir a menor quantidade possível de funcionalidades para completar o suporte a tipos.
  • 11.
    PostgreSQL Apresentação ● Utiliza a licença BSD; ● Suporte para os sistemas operacionais mais utilizados (Linux, Unix-Like e Windows); ● Implementa todos os conceitos de ACID ● Além dos tipos de dados do SQL também suporta objetos binários(Fotos, Vídeos...)
  • 12.
    PostgreSQL Apresentação ● Banco de dados Objeto-Relacional ○ Herança; ○ Tipos de dados complexos; ○ Funções;
  • 13.
    PostgreSQL Linguagem - Desenvolvimento A principal liguagem utilizada para desenvolver o PostgreSQL é o ANSI C, porem são utilizadas algumas outras linguagens conforme podemos ver abaixo.
  • 14.
    PostgreSQL ● Limites PostgreSQL ○ Banco de dados: Ilimitado ○ Tabela: 32 TB ○ Linha: 1.6 TB ○ Campos: 1GB ○ Linhas por tabela: Ilimitado ○ Colunas por tabela: 250 - 1600 (Conforme tipo) ○ Índices por tabela: Ilimitado
  • 15.
    PostgreSQL Arquitetura O PostgreSql utiliza o modelo cliente/servidor e sua sessão consiste nos seguintes processos cooperando entre si. ○ O primeiro processo fica ativo no servidor que por sua vez gerencia arquivos e aceita conexões do clientes e executa as ações em nome dos clientes. ○ O segundo processo é o aplicativo cliente do usuário (frontend) que deseja executar operações de banco de dados.
  • 16.
  • 17.
    PostgreSQL Administração Existem várias ferramentas para administrar o PostgreSQl que vão de aplicações multiplataforma, Linux e outras para Windows. ● Multiplataforma ○ PGAccess, phpPGAdmin, PGAdmin III, OpenOffice.org, ... ● Linux ○ pgFouine, Red Hat, TOra, ... ● Windows ○ Embarcadero, PGExplorer, DBTools,Pg Manager, ...
  • 18.
  • 19.
    PostgreSQL Administração Backups Método SQL-Dump: gera um arquivo de texto contendo instruções SQL para serem processadas pelo servidor para recriar o Banco conforme o arquivo. Cópia de Segurança: copiar diretamente os arquivos que o PostgreSQL usa para armazenar o Banco. Cópia de Segurança em linha: o PostgreSQL mantém o registro de escrita prévia (WAL = write ahead log) no subdiretório pg_xlog do diretório de dados do agrupamento.
  • 20.
    PostgreSQL Replicação ● Replicação ○ Hot Standby, Streaming Replication
  • 21.
    PostgreSQL Performance/Recursos ● Two Phase Commit (2PC) ○ Surgiu para controlar e monitorar as atividades de commit e rollback das transações em ambientes de bases de dados distribuídos, ele garante a integridade entre as bases permitindo que a transação seja segura e íntegra. ● Performance ○ Com um grande poder de processamento, o PostgreSQL é capaz de resolver consultas complexas em milisegundos; ○ Para tal, ele consome recursos computacionais consideráveis;
  • 22.
    PostgreSQL Performance/Recursos ● MVCC (controle de concorrência de multi-versão); ○ Diferentemente dos sistemas gerenciadores de banco de dados tradicionais, que usam bloqueios para realizar o controle de concorrência, o PostgreSQL mantém a consistência dos dados utilizando o modelo MVCC. Este modelo impede que a transação enxergue dados inconsistentes ou seja a informação que estão aparecendo são de algum tempo atrás.
  • 23.
    PostgreSQL Triggers ● Triggers ○ Before/After ○ NEW ■ INSERT: Valores inseridos; ■ UPDATE: Novos valores; ○ OLD ■ DELETE: Dados que estão sendo excluídos; ■ UPDATE: Valores sobrescritos; ○ Existem várias liguagens para a implementação (PL/pgSQL, PL/Perl, PL/Python, PL/Java, entre outras);
  • 24.
    PostgreSQL Trigger - Implementação CREATE FUNCTION valida_dados_funcionario() RETURNS TRIGGER AS $valida_dados_funcionario$ BEGIN IF NEW.NOME IS NULL THEN RAISE EXCEPTION 'Por Favor, digite o nome do funcionario!'; END IF; IF NEW.IDADE IS NULL THEN RAISE EXCEPTION 'Por favor, informe a idade!'; END IF; IF NEW.IDADE < 0 THEN RAISE EXCEPTION 'Desculpe, o funcionario não pode ter % anos', NEW.IDADE; END IF; RETURN NEW; END; $valida_dados_funcionario$ LANGUAGE plpgsql;
  • 25.
    PostgreSQL Procedures - Implementação ● Stored Procedures ○ Função que retonar um valor ○ Pode ser implementada em várias linguagens ○ Divide-se em: ■ Procedurais ■ Não procedurais ■ Linguagem específica
  • 26.
    PostgreSQL Stored Procedure //Criar create or replace function alunosAprovados()returns setof aluno as select * from aluno where situacao = ''aprovado''; language 'sql'; //Executar select alunosAprovados();
  • 27.
    PostgreSQL View - Implementação CREATE VIEW vis_permanente_temporaria AS SELECT id_perm, nome_perm, nome_temp FROM tbl_permanente INNER JOIN tbl_temporaria ON (id_perm = id_temp); INSERT INTO tbl_permanente VALUES (1,'nome permanente 1'); INSERT INTO tbl_permanente VALUES (2,'nome permanente 2'); INSERT INTO tbl_temporaria VALUES (1,'nome temporario 1'); INSERT INTO tbl_temporaria VALUES (2,'nome temporario 2'); pset border 2 pset title 'Visão juntando tabela permanente com temporária' SELECT * FROM vis_permanente_temporaria; Visão juntando tabela permanente com temporária +---------+-------------------+-------------------+ | id_perm | nome_perm | nome_temp | +---------+-------------------+-------------------+ | 1 | nome permanente 1 | nome temporario 1 | | 2 | nome permanente 2 | nome temporario 2 | +---------+-------------------+-------------------+ (2 linhas)
  • 28.
  • 29.
  • 30.
  • 31.
    NoSQL A B C A I S D E Basic a icity Avaia lly Atom ency ble ist Even Soft Stat Cons tion tually e Isola lity Cons isten bi cy Dura
  • 32.
    NoSQL ● Motivação ○ O fluxo gigantesco de dados em prazos mínimos de tempo, em um determinado contexto; ○ A crescente de serviços que necessitam de uma arquitetura que ofereça escalabilidade horizontal; ○ A necessidade de manusear ambiente semi- estruturados e até mesmo não estruturados; ● Modelos ○ Documento (Riak, MongoDB, CouchDB) ○ Chave-Valor (Amazon s3, Redis, Voldemort) ○ Colunas (Cassandra, HBase, Hyperbase) ○ Grafos (Neo4j, Titan, InfoGrid)
  • 33.
    Document Based ● Principaiscaracteristicas ○ Comum a todas implementações é o conceito de "Document"; ○ Document trata-se do encapsulamento e o encoding dos dados em arquivos de vários tipos (XML, JSON, BSON, até mesmo arquivos binários como PDF, DOC). ○ Em comparativo com o modelo relacional, internamente, um document pode ser tratado como uma tupla, porém de maneira mais flexível ○ A organização se dá de vários modos: Coleções, Tags, Hierarquias de diretórios, entre outras
  • 34.
    Document Based Exemplo Mongo darthVader = { nome: "Anakin Skywalker", politica: Sith, universo: "Star Wars", arma: "Estrela da morte" } db.starwars.save(darthVader)
  • 35.
    Key - Value ●Conceito Básico ○ "O dados é geralmente consistido de uma string que representa a chave e o atual dado que é considerado o value"; ○ O dados podem ser de tipos primitivos, como também objetos empacotados como utilizados na Orientação a Objetos;
  • 36.
    Column Based ● Conceitos ○ Em face dos SGBDs row-oriented, que os dados são serializados em uma organização de linhas, o column based oferece tal organização em forma de colunas. Onde cada campo é armazenado em uma coluna; ● Beneficios ○ Empacotamento de dados. Onde os dados semelhantes e de mesmo formato estão sendo armazenados próximo; ○ Melhor utilização em sistemas OLAP (On-LIne Analytical processing)
  • 37.
  • 38.
    Graph ● Breve introdução ○ Estrutura baseada na teoria dos gráficos; ○ Emprega conceitos como "Vertices/Nodes", "Edges" e "Properties"; ○ Nodes e propriedades assemelham-se ao conceito utilizados em POO; ○ Não depende de esquemas ou de uma estruturação nos dados;
  • 39.
    Titan ● Graph database ● Suporta Milhares de usuários concorrentes ● Escalabilidade linear ● Multi-datacenter ● Suporte ACID e consistência eventual ● Persistência ○ Cassandra, HBase, Oracle BerkleyDB ● Produtos voltado para grafos ○ Gremlin, Rexster, Blueprints
  • 40.
  • 41.
    Titan Breve implementação ● Criando uma instância do banco gremlin> g = GraphOfTheGodsFactory.create('/tmp/titan') ==>titangraph[local:/tmp/titan] ● Consultas gremlin> saturn = g.V('name','saturn').next() ==>v[4] gremlin> saturn.map() ==>name=saturn ==>age=10000 ==>type=titan gremlin> saturn.in('father').in('father').name ==>hercules
  • 42.
    Query Methods ● DocumentBased ○ Dynamic Object-based, MapReduce, XQuery; ● Wide Columns ○ MapReduce, HQL; ● Key-Value ○ MR Inside Value, MapReduce, NewSQL; ● Graphs ○ SparQL, Gremlin, JRuby, Java, Web UI ;
  • 43.