O objetivo da computação é o insight, não os números. - Richard Hamming
A espiral de administrar o negócio, analisar o que mudar e para que mudar, e depois mudar o negócio é eterna. Se fizer a análise correta, sua espiral aumentará. Caso contrário, você entrará em uma espiral descendente.
CouchbaseO Couchbase, assim como os outros pioneiros dos sistemas NoSQL, foi criado para atender aos requisitos extremos de escala, desempenho e disponibilidade do mundo da Web 2.0. Do simples valor-chave, o Couchbase evoluiu para lidar com consulta, pesquisa e análises - em escala. Cada um deles é um mecanismo criado para fins específicos, integrado por meio do multidimensional arquitetura. Tanto o serviço de consulta quanto o de análise falam N1QL. Por que criar dois mecanismos distintos que falam a mesma linguagem? Porque...
O tamanho único serve para todos: An Idea Whose Time Has Come and Gone. - Michael Stonebraker
O mecanismo de consulta foi criado para a carga de trabalho operacional e o mecanismo do Analytics para a carga de trabalho de análise. Nós comparado os dois motores e dado o orientação. O MongoDB seguiu um caminho semelhante, passando de um banco de dados em cluster que lidava com uma carga de trabalho simples para uma carga de trabalho complexa para análises e consultas em data lakes.
No ano passado, o MongoDB anunciou nós analíticos em seus clusters para processamento analítico. Neste blog, comparamos e contrastamos os dois mecanismos para o caso de uso de análise.
Couchbase: Arquitetura de alto nível
Por dentro do Couchbase Analytics: Arquitetura de alto nível

Nós de análise do MongoDB:
Vamos comparar e contrastar o suporte de análise nos nós do MongoDB Analytic e do Couchbase Analytics.
| Nós analíticos do MongoDB | Análise do Couchbase | |
| Documentos | https://docs.atlas.mongodb.com/reference/replica-set-tags/ | https://docs.couchbase.com/server/6.5/analytics/introduction.html |
| Arquitetura | Use um conjunto de nós de réplica secundários com uma cópia completa dos dados operacionais. A linguagem de consulta é a mesma (MQL); o processamento da consulta é o mesmo da carga de trabalho operacional. | Nós analíticos distintos que têm um subconjunto definido pelo usuário dos dados operacionais. A linguagem de consulta é a mesma (N1QL); o processamento de consultas é projetado para conjuntos de dados maiores (veja abaixo). |
| Detalhes da arquitetura | Nós analíticos mapeados do Atlas | Análise do Couchbase: NoETL para análise escalável de dados NoSQL |
| Modelo de dados | BSON | JSON |
| Linguagem de consulta | MQL - Linguagem de consulta do MongoDB | N1QL - Linguagem de consulta de formato normal não 1; SQL para JSON |
| Página de consulta | Consulta ao MongoDB | Consulta do Analytics |
| Processamento de consultas | O mesmo que o processamento de consultas operacionais, usando mongos e mongod para o processamento de consultas distribuídas. | Mecanismo de análise projetado para processamento paralelo massivo (MPP) dos dados. Cada N1QL |
| Otimizador de consultas | Otimizador baseado em forma; requer gerenciamento de planos. | Otimizador baseado em regras. Não é necessário gerenciamento de planos. |
| Explicar | Texto e gráficos. | Texto e gráficos. |
| Indexação | É necessário criar o índice no operacional e copiá-lo. | Indexação somente de análises |
| Processamento paralelo | Cada nó Mongod executa as operações básicas e os mongos as combinam (por exemplo, grupo final e agregação). | Para lidar com consultas analíticas complexas de forma eficiente e fornecer
as propriedades desejadas de aumento de escala e de velocidade, o Analytics Service emprega os mesmos tipos de MPP de última geração, sem compartilhamento (processamento paralelo massivo) com base em estratégias de processamento de consultas [Do documento do VLDB]. |
| Indexação | Indexação local | Indexação local |
| Uniões - Idioma | $lookup suporta uniões de igualdade simples entre duas coleções; somente campos escalares simples são permitidos. As matrizes precisam ser desdobradas antes das uniões.
|
Operações INNER JOIN, LEFT OUTER JOIN, NEST e UNNEST.
|
| Processamento de consultas: tamanho dos dados | Os estágios intermediários do pipeline aggregate() não podem ser maiores que 100 MiB em tamanho. Os redatores/usuários de consultas devem usar um sinalizador especial para permitir isso. | Sem limitações; quando os dados intermediários (por exemplo, tabela de hash, dados de classificação) ficam maiores, eles são transferidos para o disco. |
| Processamento de consultas: Tipo de união | (aproximadamente) LEFT OUTER JOIN | INNER JOIN
UNIÃO EXTERNA ESQUERDA |
| Pesquisa | Oferece suporte à pesquisa dentro da consulta. Usa a pesquisa do Atlas na nuvem e a pesquisa básica baseada em árvore B no local. | O serviço Analytics não tem uma pesquisa integrada. Precisamos usar o serviço de consulta com o FTS para combinar a pesquisa em uma consulta. |
| Consultas suportadas | find() e aggregate() | Instrução SELECT (do SQL e SQL++) |
| Tipos de JOIN (idioma) | $lookup - isso é mais ou menos LEFT OUTER JOIN via | INNER JOIN
UNIÃO EXTERNA ESQUERDA |
| Tipos de JOIN (Implementação) |
|
|
| Agregação | Suporta o agrupamento e a agregação comuns por meio do método aggregate(). | Oferece suporte ao agrupamento e à agregação comuns por meio do GROUP BY e das respectivas agregações. Veja abaixo as agregações em janela. |
| Funções agregadas em janela: Provavelmente, o recurso mais legal do SQL. | Indisponível. | Totalmente suportado.
RANK() PERCENT_RANK() DENSERANK() ROW_NUMBER() CUME_DIST() FIRST_VALUE() LAST_VALUE() NTH_VALUE() LEAD() NTILE() RATIO_TO_REPORT() |
| Análise de dados de vários clusters | Todos os dados analisados são de um único cluster do MongoDB. | 6.5: Todos os dados analisados são de um único cluster do Couchbase.
6.6: Pode ingerir e analisar os dados de vários clusters do Couchbase. |
| Dados externos | Oferece suporte ao processamento de consultas em dados do S3. Oferece suporte aos formatos BSON, CSV, TSV, Avro e Parquet. | 6.6: Suporte a dados externos JSON, CSV e TSV no S3 |
| Fontes de dados externas | Oferece suporte a fontes de dados adicionais por meio do driver JDBC. Integrado com o pipeline de agregação via, você terá que esperar por ele, Operador $sql. | Nenhum, exceto os mencionados acima. |
| Subconsultas | Subconsultas por meio do pipeline de agregação. | Subconsultas SQL padrão. |
| Plano de consulta | 1TP4Explicar | EXPLICAR |
| DataViz | Gráficos integrados do MongoDB | Nenhum DataViz incorporado |
| Inteligência de negócios | Conhecer
Tableau e outros mecanismos de BI compatíveis com ODBC e JDBC. |
Conhecer
Tableau e outros mecanismos de BI compatíveis com ODBC e JDBC. |
Referências:
- Comparação de duas abordagens baseadas em SQL para consulta de JSON: SQL++ e SQL:2016
- SQL para NoSQL - 7 métricas para comparar a linguagem de consulta
- Análise do Couchbase: NoETL para análise escalável de dados NoSQL
