O desempenho da sua instância do banco de dados federado é afetado pelos seguintes fatores:
O tamanho do seu Data Federation.
O formato e a estrutura do seu Data Federation.
See the following sections to learn how to optimize your federated database instance query performance.
Tamanho do arquivo de dados
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.
Formato de Data Federation
Federated Database Instances support several data file formats. You can improve performance by compressing certain file formats or by optimizing file contents for your queries.
Compressão
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.
You can compress the following file formats using gzip:
Estrutura do arquivo
Os arquivos Parquet, Avro e ORC 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, os arquivos do Parquet fornecem o melhor desempenho e eficiência de espaço para a instância do banco de dados federado, pois são otimizados para analisar grupos de linhas e colunas para o Parquet.
Estrutura de dados em S3
In AWS S3 Buckets, the structure of your data and the way you define it in the configuration file affect the performance of your federated database instance.
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 no 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
softwaree o campocomputer,o campo
softwaree o campocomputere o campoOS.
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, ouos campos
computereOS.
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.
For more information on mapping partition attributes to a collection databases.[n].collections.[n].dataSources.[n].path, see Define Path File Syntax.