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. Puedes mejorar el rendimiento comprimiendo ciertos formatos de archivos u optimizando los contenidos de archivos para tus consultas.
Compresión
Cuando comprimes archivos de datos, tardan menos en descargarse. Reducir el tiempo de descarga tiene un mayor beneficio en el rendimiento que analizar datos no comprimidos.
Se pueden comprimir los siguientes formatos de archivo utilizando gzip:
Estructura del archivo
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 archivos Parquet proporcionan el mejor rendimiento y eficiencia de espacio para la instancia federada de base de datos, ya que está optimizada para analizar los 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 su gestión, asegúrese de que sus datos estén agrupados lógicamente en particiones. Atlas Data Federation utiliza particiones que creas con los valores de campo que especificas en tu sintaxis de partición. Puedes mejorar el rendimiento de tu instancia federada de base de datos asegurando que la estructura de partición esté mapeada con tus patrones de query y que la estructura de partición esté definida en tu 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 las 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 admitir una query en los campos software y OS. Sin embargo, en este caso, Atlas Data Federation no es tan eficiente para la query como lo sería si la query fuera solo sobre los campos software y computer. Las particiones se analizan en orden; si una query omite una partición particular, Atlas Data Federation es menos eficiente en el uso de cualquier partición que siga a la partición. Debido a que una query en software y OS omite computer, Atlas Data Federation utiliza la partición software de manera más eficiente que la partición OS para respaldar esta query.
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
Considera un S3 bucket 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.