Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Optimizar el rendimiento del query

El rendimiento de su instancia federada de base de datos se ve afectado por los siguientes factores:

  • El tamaño de tus archivos de datos.

  • El formato y la estructura de tus archivos de datos.

Consulta las siguientes secciones para aprender a optimizar el rendimiento de las queries de tu instancia federada de base de datos.

Cada archivo que Atlas Data Federation maneja requiere cierta cantidad de recursos informáticos. Si el almacén de la instancia federada de base de datos contiene muchos archivos de datos pequeños, los recursos necesarios se acumulan y pueden reducir el rendimiento. Alternativamente, muchos archivos grandes de datos resultan problemáticos, ya que la Data Federation descarga y procesa datos innecesarios.

Para la mayoría de los casos de uso, un tamaño de archivo eficiente es de 100 a 200 MB.

Las instancias federadas de base de datos admiten varias Formatos de archivos de datos. Puede mejorar el rendimiento comprimiendo ciertos formatos de archivo u optimizando el contenido de los archivos para sus consultas.

Al comprimir archivos de datos, su descarga tarda menos. Esto ofrece una mayor ventaja de rendimiento que analizar datos sin comprimir.

Se pueden comprimir los siguientes formatos de archivo utilizando gzip:

  • JSON

  • BSON

  • CSV

  • TSV

Parquet, Avro, y ORC los archivos contienen metadatos sobre el propio archivo para que una aplicación pueda recorrer los contenidos del archivo de diferentes maneras. Si estructuras tu archivo de datos para alinearlo con las consultas que deseas ejecutar, Atlas Data Federation puede aprovechar estos metadatos para ir rápidamente a los datos correctos.

De estos formatos, los archivosParquet proporcionan el mejor rendimiento y eficiencia de espacio para la instancia de base de datos federada, ya que están optimizados para analizar grupos de filas y columnas para Parquet.

En los Buckets de AWS S3, la organización de tus datos y la forma en que los defines en el archivo de configuración afectan el rendimiento de tu instancia federada de base de datos.

Para facilitar la gestión, asegúrese de que sus datos estén agrupados lógicamente en particiones. Atlas Data Federation utiliza las particiones que usted crea con los valores de campo que especifica en la sintaxis de partición. Puede mejorar el rendimiento de su instancia de base de datos federada asegurándose de que la estructura de partición se asigne a sus patrones de consulta y que esté definida en su...databases.[n].collections.[n].dataSources.[n].path. Para la partición, elige los campos que queries con frecuencia y ordénalos desde el más query en la primera posición hasta el menos query en la última posición.

El orden de los campos enumerados en el databases.[n].collections.[n].dataSources.[n].path es importante de la misma manera que lo es en índices compuestos. La ruta especificada corresponde a datos que se particionan primero por el valor del primer campo y, a continuación, por el valor del siguiente campo, y así sucesivamente.

Ejemplo

Considera una colección con los campos software, computer y OS, y particiónate en el bucket S3 denominado metrics primero para el campo software, seguido del campo computer y luego el campo OS.

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

Atlas Data Federation utiliza las particiones para consultas en estos campos:

  • El campo software,

  • el campo software y el campo computer,

  • el campo software y el campo computer y el campo OS.

Atlas Data Federation puede usar las particiones para realizar consultas en los campos software y OS. Sin embargo, en este caso, no es tan eficiente para la consulta como si solo se realizara en los campos software y computer. Las particiones se analizan en orden; si una consulta omite una partición específica, Atlas Data Federation es menos eficiente al usar las particiones posteriores. Dado que una consulta en software y OS omite computer, Atlas Data Federation utiliza la partición software con mayor eficiencia que la OS para realizar esta consulta.

Atlas Data Federation no puede usar las particiones para admitir consultas en campos no especificados en el databases.[n].collections.[n].dataSources.[n].path. Además, Atlas Data Federation no puede utilizar las particiones para admitir queries que incluyan los siguientes campos sin el campo software:

  • El campo computer,

  • el campo OS, o

  • los campos computer y OS.

Puedes utilizar particiones para mejorar el rendimiento de Data Federation mediante su asignación a atributos de partición en tu configuración. Al asignar tus atributos de partición (las partes de tu prefijo S3 que parecen una carpeta) a un atributo de query, Atlas Data Federation puede abrir selectivamente los archivos que contienen datos relacionados con tu query. Esto reduce la cantidad de tiempo que lleva una query y disminuye el costo, porque Data Federation lee y descarga menos archivos desde AWS.

Ejemplo

Considere un depósito S3 metrics con la siguiente estructura:

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

Puede configurar un atributo de partición para el "tipo de métrica" definiendo /metrics/{metric_type string}/* en su configuración. Si emites una query que contiene {metric_type: software}, Data Federation solo procesará los archivos con el prefijo /software e ignorará los archivos con el prefijo /hardware.

Luego, puede establecer un atributo de partición para "tipo de software" definiendo /metrics/{metric_type string}/{software_type string} en su configuración. Si emites una query que contiene {metric_type: software, software_type: computer}, Data Federation ignora los archivos con el prefijo /phone.

Para obtener más información sobre cómo asignar atributos de partición a una colección databases.[n].collections.[n].dataSources.[n].path, consulta Definir la sintaxis del archivo de ruta.

Volver

CSV y TSV

En esta página