Pesquisa entre clusters usando Atlas Search e Data Federation
Avalie esse Artigo
O document model é a melhor maneira de trabalhar com dados e é o principal fator para impulsionar a popularização do MongoDB. O document model também está ajudam o MongoDB a inovar suas próprias soluções para atender aos requisitos de dados mais sofisticados do mundo.
Atlas Data Federation, permite formar instâncias de banco de dados federadas que abrangem várias fontes de dados, como diferentes clusters do Atlas, buckets do AWS S3 e outras fontes de HTTPs. Agora, um aplicativo ou serviço pode trabalhar com seu cluster individual com recursos dedicados e conformidade de dados, enquanto as queries podem ser executadas em uma união dos conjuntos de dados. Isso é ótimo para análises ou para os painéis de visualização global e muitos outros casos de uso em sistemas distribuídos.
O Atlas Search também é um produto recente que permite que os aplicativos criem pesquisas baseadas em relevância com a tecnologia Lucene diretamente em suas collection do MongoDB. Embora ambos os produtos sejam incríveis por si só, eles podem trabalhar juntos para formar uma pesquisa de texto robusta e de vários clusters para resolver desafios que eram difíceis de resolver antes.
Plotar atributos em um mapa com base em coordenadas geográficas é uma necessidade comum para muitos aplicativos. O código complexo precisa ser adicionado se quisermos mesclar diferentes fontes de pesquisa em um conjunto de dados com base na relevância ou em outros fatores de pontuação em uma única solicitação.
Com as queries federadas do Atlas executadas nos índices de pesquisa do Atlas, essa tarefa se torna tão fácil quanto disparar uma query.
No meu caso de uso, tenho dois clusters: cluster-airbnb (dados do Airbnb) e cluster-quescooking (dados do restaurante). Para a maioria dos meus aplicativos, ambos os conjuntos de dados não têm nada em comum e, portanto, são mantidos em clusters diferentes para cada aplicativo.
No entanto, se eu estiver interessado em plotar os locais de restaurantes e Airbnbs (e talvez lojas, mais tarde) em torno do usuário, terei que mesclar os conjuntos de dados com um índice de pesquisa criado com base nos dados mesclados.
Conforme mencionado acima, os dois aplicativos estão sendo executados em dois Atlas clusters separados devido à sua natureza de microsserviço independente. Eles podem até ser colocados em diferentes cloud e regiões, como nesta imagem.
Os dados dos restaurantes são armazenados em uma collection chamada “restaurants” seguida por uma modelagem comum, como gradas/menu/localização.
O aplicativo Airbnb armazena um modelo de conjunto de dados diferente que mantém os dados do Airbnb, como reservas/detalhes do apartamento/localização.
O poder do document model e das consultas federadas é que esses conjuntos de dados podem se tornar um se criarmos uma instância de banco de dados federado e agrupá-los em um "virtual collection" chamado "pointsOfInterest."
Os conjuntos de dados agora podem ser consultados como se tivéssemos uma coleção chamada "pointsOfInterest" unindo os dois.
Como as collections estão localizadas no Atlas, podemos usar facilmente o Atlas Search para indexar cada uma individualmente. Também é mais provável que já tenhamos feito isso, pois nossos aplicativos subjacentes exigem recursos de pesquisa de restaurantes e instalações do Airbnb.
No entanto, se nos certificarmos de que os nomes dos índices são idênticos — por exemplo, "default"— e que os campos-chave para pesquisa especial — como geo — são os mesmos (por exemplo, "location"), podemos executar consultas de pesquisa federadas em "pointsOfInterest." Podemos fazer isso porque as consultas federadas são propagadas para cada fonte de dados individual que compõe a collection virtual. Com Atlas Search, ele é surpreendentemente poderoso, pois podemos obter resultados com uma mesclagem correta das pontuações de pesquisa entre todos os nossos conjuntos de dados. Isso significa que, se os pontos de interesse da geo search estiverem próximos à minha localização, obteremos o Airbnb ou restaurantes ordenados corretamente pela distância. O que é ainda mais legal é que o Atlas Data Federation “pushes down” de forma inteligente “” é o máximo de consulta possível, então a operação de pesquisa será feita localmente nos clusters e a união será feita na camada de federação, tornando essa operação o mais eficiente possível.
Podemos pegar a query que acabamos de executar no Compass e exportá-la para o MongoDB Charts, nossa oferta de gráficos nativos que pode se conectar diretamente a uma instância do banco de dados federado, traçando os dados em um mapa:
Novos produtos oferecem novo poder e novas possibilidades. Unir as força do Data Federation e doAtlas Search permite que os criadores criem aplicativos facilmente como nunca antes. Comece a renovar hoje mesmo com o MongoDB Atlas.