Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / /

Otimizar o desempenho da consulta

Nesta página

  • Estrutura de Dados em S3
  • Tamanho do arquivo de dados
  • Formato de Data Federation

O desempenho da sua instância do banco de dados federado é afetado pelos seguintes fatores:

  • A estrutura de seus dados no S3 e como você a representa em sua instância do banco de dados federado configuração.

  • O tamanho do seu Data Federation.

  • O formato e a estrutura do seu Data Federation.

Para facilitar o gerenciamento, certifique-se de que seus dados estejam agrupados de forma lógica em partições. O Atlas Data Federation utiliza partições que você cria com os valores de campo que você especifica em sua sintaxe de partição. Você pode melhorar o desempenho da instância do reconhecimento de data center garantindo que a estrutura de partição seja mapeada para seus padrões de query e que a estrutura de partição esteja definida em seu databases.[n].collections.[n].dataSources.[n].path. Para a partição, escolha os campo que você query com frequência e ordene-os do campo mais query na primeira posição para o campo menos query na última posição.

A ordem dos campos listados em databases.[n].collections.[n].dataSources.[n].path é importante da mesma forma que nosÍndices compostos . O caminho especificado corresponde a dados que são particionados primeiro pelo valor do primeiro campo e, em seguida, pelo valor do próximo campo e assim por diante.

Exemplo

Considere uma collection com os campo e partições software, computer e OS no bucket S3 denominada metrics primeiro para o campo software , seguido pelo campo computer e então o OS campo.

metrics
|--software
|--computer
|--OS

O Atlas Data Federation utiliza as partições para query nestes campo:

  • o campo software,

  • o campo software e o campo computer,

  • o campo software e o campo computer e o campo OS.

O Atlas Data Federation pode usar as partições para suportar uma query no campo software e OS . No entanto, nesse caso, o Atlas Data Federation não é tão eficiente para a query quanto seria se a query estivesse apenas nos campos software e computer . As partições são analisadas em ordem; se uma query omitir uma partição específica, o Atlas Data Federation será menos eficiente ao utilizar quaisquer partições que seguem a partição. Como uma query no software e no OS omite computer, o Atlas Data Federation usa a partição software de forma mais eficiente do que a partição OS para oferecer suporte a essa query.

O Atlas Data Federation não pode usar as partições para suportar query em campo não especificados no databases.[n].collections.[n].dataSources.[n].path. Além disso, o Atlas Data Federation não pode usar as partições para oferecer suporte a query que incluam os seguintes campo sem o campo software :

  • o campo computer,

  • o campo OS, ou

  • os campos computer e OS.

Você pode usar partições para melhorar o desempenho da Data Federation mapeando-as para atributos de partição em sua configuração. Ao mapear os atributos da partição (as partes do prefixo S3 que parecem uma pasta) para um atributo de query, o Atlas Data Federation pode abrir seletivamente os arquivos que contêm dados relacionados à sua query. Isso reduz o tempo que uma query leva e diminui o custo, pois o Data Federation lê e baixa menos arquivos da Amazon Web Services.

Exemplo

Considere um bucket S3 metrics com a seguinte estrutura:

metrics
|--hardware
|--software
|--computer
|--phone

Você pode definir um atributo de partição para "tipo de métrica" definindo /metrics/{metric_type string}/* em sua configuração. Se você emitir uma query que contenha {metric_type: software}, o Data Federation processará somente os arquivos com o prefixo /software e ignorará os arquivos com o prefixo /hardware.

Você pode então definir um atributo de partição para "tipo de software" definindo /metrics/{metric_type string}/{software_type string} em sua configuração. Se você emitir uma query que contenha {metric_type: software, software_type: computer}, o Data Federation ignorará os arquivos com o prefixo /phone.

Para obter mais informações sobre como mapear atributos de partição para uma collection databases.[n].collections.[n].dataSources.[n].path, consulte Definir caminho para dados do S3.

Cada arquivo com o Atlas Data Federation exige uma determinada quantidade de recursos de computação. Se o armazenamento de instância do reconhecimento de data center federado contiver muitos Data Federation pequenos, os recursos necessários serão compostos e poderão reduzir o desempenho. Como alternativa, muitos arquivos de dados grandes são problemáticos, pois o Data Federation baixa e processa dados desnecessários.

Para a maioria dos casos de uso, um tamanho de arquivo de alto desempenho é de 100 a 200 MB.

A instância do banco de dados federado suporta vários Data Federation. Você pode melhorar o desempenho compactando determinados formatos de arquivo ou otimizando o conteúdo do arquivo para sua query.

Quando você compacta Data Federation, eles levam menos tempo para serem baixados. A redução do tempo de download tem um benefício de desempenho maior do que a análise de dados descompactados.

Você pode compactar os seguintes formatos de arquivo usando o gzip:

Parquet, Avro, e ORC Os arquivos contêm metadados sobre o próprio arquivo para que um aplicação possa percorrer o conteúdo do arquivo de diferentes maneiras. Se você estruturar seu arquivo de dados para se alinhar com as queries que deseja executar, o Atlas Data Federation poderá aproveitar esses metadados para pular rapidamente para os dados certos.

Desses formatos, oParquet os arquivos fornecem o melhor desempenho e eficiência de espaço para a instância do banco de dados federado, pois é otimizado para analisar grupos de linhas e colunas para o Parquet.

Voltar

Definir caminho para dados S3