El rendimiento de su instancia de base de datos federada se ve afectado por los siguientes factores:
El tamaño de sus archivos de datos.
El formato y la estructura de sus archivos de datos.
Consulte las siguientes secciones para aprender a optimizar el rendimiento de las consultas de su instancia de base de datos federada.
Tamaño del archivo de datos
Cada archivo que gestiona Atlas Data Federation requiere una cierta cantidad de recursos computacionales. Si el almacén de instancias de la base de datos federada contiene muchos archivos de datos pequeños, los recursos requeridos se acumulan y pueden reducir el rendimiento. Por otro lado, muchos archivos de datos grandes resultan problemáticos, ya que Data Federation descarga y procesa datos innecesarios.
Para la mayoría de los casos de uso, un tamaño de archivo de alto rendimiento es 100 de 200 a MB.
Formato de archivo de datos
Las instancias de bases de datos federadas 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.
Puede comprimir los siguientes formatos de archivo usando gzip:
Estructura de archivos
Los archivos Parquet, Avro y ORC contienen metadatos sobre el propio archivo, lo que permite a una aplicación explorar su contenido de diferentes maneras. Si estructura su archivo de datos para que coincida con las consultas que desea ejecutar, Atlas Data Federation puede aprovechar estos metadatos para acceder 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 AWS S3 Buckets, la estructura de sus datos y la forma en que los define en el archivo de configuración afectan el rendimiento de su instancia de base de datos federada.
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].pathPara la partición, elija los campos que consulta con frecuencia y ordénelos desde el más consultado en la primera posición hasta el campo menos consultado en la última posición.
El orden de los campos enumerados en es tan databases.[n].collections.[n].dataSources.[n].path importante como en los índices compuestos. La ruta especificada corresponde a los datos que se particionan primero por el valor del primer campo, luego por el valor del siguiente, 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. Tampoco puede usar las particiones para admitir consultas que incluyan los siguientes campos sin databases.[n].collections.[n].dataSources.[n].path el software campo:
El campo
computer,el campo
OS, olos campos
computeryOS.
Puede usar particiones para mejorar el rendimiento de Data Federation asignándolas a los atributos de partición en su configuración.Al asignar los atributos de partición (las partes del prefijo S que parecen una carpeta) a un atributo de consulta, Atlas Data Federation puede abrir selectivamente los archivos que contienen datos relacionados3 con su consulta. Esto reduce el tiempo de una consulta y los costos, ya que Data Federation lee y descarga menos archivos de AWS.
Ejemplo
Considere un depósito S3 metrics con la siguiente estructura:
metrics |--hardware |--software |--computer |--phone
Puede establecer un atributo de partición para el tipo de métrica definiendo /metrics/{metric_type string}/* en su configuración. Si emite una consulta que contiene {metric_type: software}, la Federación de Datos solo procesa los archivos con el prefijo /software e ignora los archivos con el prefijo /hardware.
Luego, puede establecer un atributo de partición para el tipo de software definiendo /metrics/{metric_type string}/{software_type string} en su configuración. Si emite una consulta que contiene {metric_type: software, software_type: computer}, la Federación de Datos 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 consulte Definir sintaxis de archivo de ruta.