Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Idiomaschevron-right
Javachevron-right

Fragmentação e dados de primavera MongoDB: dimensione seus dados

8 min. – Publicado 15 agosto, 2024
SpringJava
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Pesquisar
00:00:00Introdução à fragmentação
00:00:24Pré-requisitos e configuração
00:01:26Criando e configurando um cluster fragmentado
00:02:27Carregando dados de exemplo e conectando ao MongoDB
00:03:39Fragmentando a collection manualmente
00:04:56Melhores práticas para escolher uma chave de shard
00:07:30Implementação da fragmentação no MongoDB de dados de primavera
O foco principal do vídeo é configurar e configurar a fragmentação no MongoDB e integrá-la a um aplicativo Spring usando o Spring Data MongoDB.
} Pontos-chave
  • A fragmentação é usada para distribuir dados em vários servidores.
  • Um mínimo de um cluster M30 é necessário para habilitar a fragmentação no MongoDB.
  • A chave de shard deve ter alta cardinalidade e suportar padrões de query comuns.
  • O Spring Data MongoDB não configura automaticamente a fragmentação; isso deve ser feito manualmente.
  • A anotação `@ShardKey' no Spring Data MongoDB ajuda na clareza do código e na otimização de queries.
Todos os vídeos do MongoDB

Transcrição completa do vídeo
bancos de dados com um conjunto de dados grande o suficiente ou read write through put podem desafiar a capacidade de um único servidor a fragmentação é um método para distribuir seu conjunto de dados em vários servidores e, neste tutorial, vamos ver como os dados mongod da primavera para ser pode trazer o compartilhamento para seu aplicativo de primavera então antes de começarmos há algumas coisas que precisaremos primeiro se estiver Java instalado na versão ou superior da sua máquina,17 também precisaremos da versão do 3 Maven.9.3 ou superior você também precisará de um projeto de livro de primavera com primavera dat M para ser e dependências da lista instalada da web de primavera você mesmo pode configurar isso usando o inicializador de primavera ou você pode clonar o projeto que vinculamos a este vídeo em a descrição também precisará do mongod para ser shell para interagir com seu mongod para ser o banco de dados e você precisará de uma conta Mong depois de ter tudo isso, o que vamos fazer é começar a configurar up nosso cluster ao criar nosso novo cluster há algumas coisas w e precisamos configurar para que possamos mapear nosso aplicativo a primeira coisa que precisaremos fazer é garantir que tenhamos um cluster30 m então, para fazer isso, estamos em nosso cluster dedicado, vamos rolar para baixo e você verá para nosso nível o nível mais próximo que temos m você30 pode fazer isso com uma proximidade maior, mas ele precisa ser um mínimo de30 para permitir a fragmentação a próxima coisa que precisamos fazer é Go para o adicional configurações, continue rolando mais para baixo e você verá aqui que temos Shard seu cluster então, se alternarmos isso, podemos decidir quantos shards queremos então para seus aplicativos de produção você precisa de um mínimo de dois shards para realmente aproveitar os benefícios do compartilhamento, mas você pode escolher qualquer lugar entre um e 100 fragmentos para isso, apenas Go com três, portanto, se criarmos uma Go proximidade agora, devemos estar definidos como perfeita agora enquanto isso está provisionando isso levará algum tempo para que você possa se separar e volte quando tudo isso estiver pronto, agora que nosso cluster é configurado a seguir,mongod vamos carregar alguns dados de amostra, então estou apenas vamos clicar neste prompt aqui na tela e ele será carregado no para ser o conjunto de amostras que vamos usar isso para testar o mapeamento do nosso cluster mais tarde nos salva mongod de criar nossos próprios dados enquanto isso está carregando também estamos vai se conectar ao nosso banco de dados mongos para que o be não configure automaticamente o compartilhamento de collections, precisamos fazer isso manualmente e vamos usar o para isso, então tenho um terminal aberto aqui e no meu Go terminal vai Go se shell conectar ao meu banco de string dados, então uma maneira rápida mongos de fazer isso é apenas conectá-lo ao e obtenha sua connection agora, se você não tiver o instalado, há instruções aqui e clique para instalar, dependendo do seu sistema operacional Já estou configurado aqui, só preciso copiar e, em seguida, no meu terminal, posso colar isso perfeitamente e, em seguida, só preciso inserir minha senha se estiver tudo bem lá, o que deve ser feito é apenas fazer login e tudo bem estamos conectados ao nosso cluster aqui, então vamos espere um momento e esperaremos que nossos dados de amostra entrem e então fragmentaremos essa coleção bem, agora que nossos dados estão carregados em nosso banco de dados, vamos usar o banco de dados inflex de amostra e nossa coleção de usuários então em isso vamos escolher nossa chave de shard como o e-mail agora há algumas práticas recomendadas a serem lembradas ao escolher sua chave de shard para ajudar a manter uma distribuição uniforme de dados e isso é fundamental para manter um alto desempenho e a escalabilidade do seu cluster fragmentado, portanto, o ideal é que sua chave de shard tenha um cardal alto. Isso significa que a chave deve ter muitos valores exclusivos para garantir que os dados sejam distribuídos uniformemente entre os shards, portanto não é necessário que a chave de shard seja totalmente exclusiva, mas é é importante que ele tenha essa alta cardinalidade na próxima vez, vamos pensar em fornecer uma distribuição uniforme de nossos dados. Portanto, para distribuir uniformemente nossos documentos em todos os nossos fragmentos, queremos evitar pontos quentes onde um gráfico lida com mais são dados do que as outras solicitações, portanto, se você acha que se tem 90chaves específicas que serão escolhidas muitas vezes, deseja evitar usá-las, o 10motivo é se você tiver um cluster que está lidando com % das suas solicitações e o outro dois estão recebendo apenas % das solicitações, então você realmente não está aproveitando ao máximo seus shards, como poderia fazer se seu aplicativo ou se seu banco de dados estiver lidando com muita taxa de transferência em seguida, você também deseja oferecer suporte a queries comuns então você deseja escolher uma chave que se alinhe com seus padrões de query comuns para minimizar a dispersão de query e otimizar o desempenho do seu aplicativo. Portanto, para a coleção de usuários em nosso banco de dados nflix de amostra, use o campo de e-mail como a chave de fragmentação é uma boa opção se os e-mails são únicos ou relativamente únicos e são bem distribuídos e, se estivermos usando queries que frequentemente filtram ou classificam por e-mail, se estivermos usando o e-mail para classificar nossos usuários, digamos que o nome não precisa ser ser único na nossa e é claro que não vamos pesquisar por senha faz sentido para o e-mail se estivermos pesquisando usuários com frequência usaremos esse campo de e-mail Usuários do Searcher agora há muito a considerar ao escolher suas chaves de fragmento não estamos limitados a ter apenas um campo para a chave de fragmento A, você pode combiná-la, então, linkarei alguma documentação abaixo para ajudá-lo a decidir melhor qual deve ser a chave de fragmento para seu aplicativo, agora mongos que temos isso Go fora do maneira o que vamos fazer é realmente configurar nossa coleção para isso e fragmentá-la usando então, se voltarmos ao nosso terminal, tenho um Go comando aqui que estou usando coloque e é apenas sh. coleção de cartões e, em seguida, amostrar o inflix dos usuários e vamos passar esse segundo parâmetro, que é apenas o e-mail, então isso enviará nossa coleção pelo e-mail. Se executarmos isso, isso levará um pouco um pouco de tempo não muito longo e agora nossa coleção será configurada para ser fragmentada por esse campo de e-mail agora, se quisermos verificar se ela foi fragmentada, podemos simplesmente digitar sh. status e em nossa saída aqui podemos dar uma olhada e podemos verificar manualmente se nosso banco de dados foi mapeado para que possamos rolar para cima aqui e você pode ver nos parâmetros de configuração que estamos de fato fragmentados perfeitamente então agora que temos a configuração do banco de dados Mong e a configuração da coleção para ser fragmentada, o Go que vamos fazer é nosso aplicativo de dados de primavera e ver o que precisamos em dados de primavera para compartilhar nosso aplicativo agora I não vamos mostrar como configurar todo o aplicativo, teremos um repositório GTO que você poderá clonar e nós apenas focaremos nos pontos necessários para realmente ativar o compartilhamento no aplicativo é muito fácil de configurar dados da primavera, então essa parte não deve demorar muito, então o que eu tenho aqui é apenas uma de usuário muito simples que API você verá Eu só tenho alguns pontos de extremidade em obter todos os usuários e criar um usuário muito disso parecerá muito familiarizado com você, se está usando o repositório [ __ ], veja aqui este m significa que temos acesso a todas as nossas operações brutas em nosso para mongod ser banco de dados e estamos usando nosso servidor para implementar isso, mas a única diferença em que precisamos nos concentrar por ter um banco de dados fragmentado é que aqui em nosso modelo temos nossa chave de shard então você verá que nossa chave de fragmento é e-mail e isso apenas para indicar ao nosso aplicativo que, de fato, estamos trabalhando em uma coleção de shell agora para mongod usar isso, toda a implementação é feita no lado do banco de dados , mas o que isso fará é apenas ajuda com a clareza do código e com a integração de outros recursos de dados da primavera, além de ajudar no esquema de validação; portanto, se você estiver trabalhando com um esquema de validação suave para garantir que quaisquer alterações nos campos principais do Shard sejam deliberadas e analisado também como isso ajudará na otimização da query portanto, ao escrever suas queries personalizadas para métodos de repositório, os desenvolvedores podem identificar facilmente quais campos são essas chaves compartilhadas e podem otimizar de acordo com isso com seu testes automatizados e ele adicionará metadados aos campos que estão fragmentados agora aqui só temos a chave Shard para o e-mail, mas digamos que fosse uma chave Shard composta teriamos algo como e-mail e senha e é simples assim para fazer anotações quais campos são chaves compartilhadas então lá você tem novamente tudo o que é realmente feito no lado do banco de dados Mong toda a configuração é feita lá e isso é apenas para interagir com ele com nosso aplicativo de dados de primavera para começar a executar queries em seu banco de dados fragmentado então pronto, agora você sabe como começar a compartilhar em seu aplicativo para implementar esse recurso para seu dimensionamento horizontal se você achar este tutorial útil o que você pode fazer é Curtir E se inscrever pode acessar o canal para encontrar mais tutoriais, bem como ir ao nosso centro de desenvolvedores, onde temos a versão escrita deste tutorial e de muitos outros. Se você estiver trabalhando com o Mong t confira nosso para mongod ser Fóruns da comunidade onde você pode fazer perguntas e ver em que as outras pessoas estão trabalhando, obrigado e tchau [Aplausos] [Aplausos] um

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Introdução à paginação de dados com o Quarkus e o MongoDB: um tutorial abrangente


Apr 25, 2024 | 7 min read
Tutorial

Projetos de coleção única no MongoDB com dados Spring (Parte 1)


Sep 09, 2024 | 10 min read
Início rápido

Pipeline de agregação Java


Oct 01, 2024 | 8 min read
Início rápido

Construindo o aplicativo Quakus com MongoDB e Panache


Dec 03, 2024 | 5 min read