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.
Tamaño del archivo 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.
Formato de archivo de datos
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.
Compresión
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:
Estructura de archivos
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.
Estructura de datos en S3
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
softwarey el campocomputer,el campo
softwarey el campocomputery el campoOS.
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, olos campos
computeryOS.
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.