No Estruturas de dados para aplicativos NoSQL postar, usamos o acesso simplificado a dados JSON por meio de coleções nativas, mapas e muito mais. Esta postagem demonstra a consulta desses dados usando consultas N1QL de nível superior, a linguagem baseada em SQL para JSON.
Os desenvolvedores podem se concentrar no gerenciamento de estruturas de dados básicas e tipos de dados usando linguagens de programação. Enquanto isso, os DBAs e os analistas podem acessar os mesmos dados usando uma linguagem de consulta. O Couchbase faz isso usando métodos de indexação de dados NoSQL e serviços de consulta N1QL.
As consultas de pesquisa com o mecanismo de pesquisa de texto completo do Couchbase também são possíveis e serão abordadas em um post futuro.
O que é indexação de banco de dados NoSQL?
A indexação examina os dados e determina como encontrar esses elementos novamente. A indexação pode ser aplicada a documentos JSON, chaves/campos ou valores em campos. As chaves em documentos JSON funcionam como nomes de colunas em sistemas de indexação de bancos de dados tabulares.
O banco de dados gerencia essas coleções de elementos e valores como índices que apontam para a fonte. O backend do banco de dados atualiza a indexação à medida que os documentos são alterados durante o armazenamento de dados. Enquanto isso, os DBAs podem otimizar a indexação para casos de uso específicos, como gravações ou consultas de alto volume.
Com o uso de índices, as consultas N1QL podem encontrar rapidamente os valores de campo correspondentes sem precisar examinar os dados originais. Esse método também se aplica às estruturas de dados comuns, coleções e escopos introduzidos em Couchbase 7.0.
Consulta de estruturas de dados do Couchbase com N1QL
O console da Web do Couchbase é uma maneira fácil de visualizar documentos de estrutura de dados no banco de dados. Observe como os documentos de estrutura de dados geralmente são muito mais simples do que os documentos JSON mais complexos.

Lista de documentos de estrutura de dados no bucket
Para começar a escrever consultas N1QL, é necessário indexar os dados de sua estrutura de dados. É necessário, no mínimo, um índice primário em todo o bucket para operações básicas.
1 |
CRIAR PRIMÁRIO ÍNDICE ON `viagem-amostra"; |
Para documentos que usam os novos recursos de coleções de Couchbase 7.0eles também devem ser indexados.
1 |
CRIAR PRIMÁRIO ÍNDICE ON `viagem-sample`.`scope1`.`col1` |
Píndices secundários dificuldade com grandes conjuntos de dados mas são excelentes para explorar rapidamente pequenas quantidades de dados. Use os índices secundários globais (GSI) ao passar para a produção em um projeto de Big Data.
Listagem de todos os documentos de dados e IDs
Entretanto, uma indexação mais direcionada nem sempre é possível, pois as estruturas de dados podem não ter chaves nomeadas. Por exemplo, um contador é apenas um ID e um valor inteiro sem nome de campo. Porém, se você tiver um mapa, poderá criar um índice que tenha como alvo uma chave interna.
Uma consulta básica para o ID do documento pode retornar todos os documentos e mostrar os nomes de campo que estão sendo usados.
1 |
SELECIONAR META().id, * DE `viagem-amostra |
CurrentScore é um contador básico, enquanto gameList é uma lista/coleção, etc.
Consulta de escopos/coleções para estruturas de dados
Se estiver usando escopos e coleções, adicione-os à cláusula from.
1 |
SELECIONAR * DE `viagem-sample`.`scope1`.`col1` |
Recupere um valor específico de um objeto de estrutura de dados nomeado, adicionando-o à cláusula where.
1 |
SELECIONAR META().id, * DE `viagem-amostra ONDE META().id = 'currentScore' |
Ao especificar nomes de campo (e nenhum ID), a consulta retorna valores correspondentes em todos os documentos.
1 |
SELECIONAR nome, contato DE `viagem-amostra |
A consulta retorna objetos com os campos específicos e seus valores. Nos resultados acima, apenas uma das estruturas de dados tinha o campo contato campo. Dois outros tinham um nome mas vários objetos em branco mostram que não havia campos correspondentes.
Para serem dimensionáveis, todos os aplicativos de consulta também devem usar índices secundários globais (GSI) para campos específicos.
Isso Práticas recomendadas de indexação de banco de dados O artigo aborda mais cenários de ciência da computação usados na engenharia de software de Big Data.
Reunindo tudo isso
Como você pode ver, a consulta de documentos e subcomponentes relacionados é muito simples com o Couchbase. O uso estratégico de métodos de indexação sofisticados oferece ainda mais maneiras de acessar os dados que seus aplicativos estão criando.
O Couchbase simplifica drasticamente as arquiteturas de sistema, permitindo que os desenvolvedores comecem a trabalhar sem muito trabalho pesado. Essas referências o ajudarão a começar rapidamente.
- Estruturas de dados para aplicativos NoSQL no Couchbase 7.0
- Escopos e coleções para aplicativos multilocatários
- API de estruturas de dados do Couchbase (Python SDK)
- Operações de subdocumentos docs (Python SDK)
- Práticas recomendadas de indexação do sistema de banco de dados NoSQL
- Práticas recomendadas de indexação de pesquisa de texto completo NoSQL
- Documentação de pesquisa de texto completo