Optimiza el rendimiento de las estadísticas

Last reviewed 2023-08-04 UTC

En este documento de Framework de la arquitectura de Google Cloud, se proporcionan recomendaciones para optimizar el rendimiento de las cargas de trabajo analíticas en Google Cloud.

BigQuery

En esta sección, se proporcionan recomendaciones para ayudarte a optimizar el rendimiento de las consultas en BigQuery.

Optimiza el diseño de las consultas

El rendimiento de las consultas depende de factores como la cantidad de bytes que tus consultas y operaciones de lectura leen, y el volumen de datos que se pasan entre las ranuras. Para optimizar el rendimiento de las consultas en BigQuery, aplica las prácticas recomendadas que se describen en la siguiente documentación:

Define y usa vistas materializadas de forma eficiente

Para mejorar el rendimiento de las cargas de trabajo que usan consultas comunes y repetidas, puedes usar vistas materializadas. Existen límites para la cantidad de vistas materializadas que puedes crear. No crees una vista materializada separada para cada permutación de una consulta. En su lugar, define las vistas materializadas que puedes usar para varios patrones de consultas.

Mejora el rendimiento de JOIN

Puedes usar vistas materializadas para reducir el costo y la latencia de una consulta que realiza la agregación sobre un JOIN. Considera un caso en el que combinas una tabla de hechos grande con unas pocas tablas de dimensiones y, luego, realiza una agregación sobre la unión. Puede ser práctico reescribir la consulta para realizar primero la agregación en la tabla de hechos con claves externas como agrupamientos de claves. Luego, combina el resultado con las tablas de dimensiones. Por último, realiza una agregación posterior.

Dataflow

En esta sección, se proporcionan recomendaciones para ayudarte a optimizar el rendimiento de las consultas de tus canalizaciones de Dataflow.

Cuando creas y, luego, implementas canalizaciones, puedes configurar parámetros de ejecución, como el tipo de máquina de Compute Engine que se debe usar para las VMs de trabajador de Dataflow. Para obtener más información, consulta Opciones de canalización.

Después de implementar las canalizaciones, Dataflow administra los recursos de Compute Engine y Cloud Storage que son necesarios para ejecutar los trabajos. Además, las siguientes características de Dataflow ayudan a optimizar el rendimiento de las canalizaciones:

Puedes supervisar el rendimiento de las canalizaciones de Dataflow a través de la interfaz de supervisión basada en la Web o gcloud CLI de Dataflow.

Dataproc

En esta sección, se describen las prácticas recomendadas para optimizar el rendimiento de los clústeres de Dataproc.

Ajustar la escala automática del clúster

Para asegurarte de que los clústeres de Dataproc entreguen un rendimiento predecible, puedes habilitar el ajuste de escala automático. Dataproc usa métricas de memoria de Hadoop YARN y una política de ajuste de escala automático que defines para ajustar de forma automática la cantidad de VMs de trabajador en un clúster. Si deseas obtener más información para usar y configurar el ajuste de escala automático, consulta Clústeres con ajuste de escala automático.

Aprovisiona el almacenamiento adecuado

Elige una opción de almacenamiento adecuada para tu clúster de Dataproc según tus requisitos de rendimiento y costo:

  • Usa Cloud Storage si necesitas un sistema de archivos compatible con Hadoop (HCFS) de bajo costo en el que los trabajos de Hadoop y Spark puedan leer y escribir con cambios mínimos. Los datos almacenados en Cloud Storage son persistentes y otros clúesteres y productos de Dataproc, como BigQuery, pueden acceder a ellos.
  • Si necesitas un sistema de archivos distribuido de Hadoop (HDFS) de baja latencia para tu clúster de Dataproc, usa discos persistentes de Compute Engine conectados a los nodos trabajadores. Los datos almacenados en el almacenamiento HDFS son transitorios, y el costo de almacenamiento es mayor que la alternativa de Cloud Storage.
  • Para obtener la ventaja de rendimiento de los discos persistentes de Compute Engine y los beneficios de costo y durabilidad de Cloud Storage, puedes combinar ambas opciones de almacenamiento. Por ejemplo, puedes almacenar tu conjunto de datos fuente y final en Cloud Storage y aprovisionar capacidad del HDFS limitada para los conjuntos de datos intermedios. Cuando decidas el tamaño y el tipo de los discos para el almacenamiento del HDFS, ten en cuenta las recomendaciones de la sección Discos persistentes y SSD locales.

Reduce la latencia cuando usas Cloud Storage

Para reducir la latencia cuando accedes a los datos almacenados en Cloud Storage, te recomendamos lo siguiente:

  • Crea tu bucket de Cloud Storage en la misma región que el clúster de Dataproc.
  • Inhabilita auto.purge para las tablas administradas por Apache Hive almacenadas en Cloud Storage.
  • Cuando uses Spark SQL, considera crear clústeres de Dataproc con las últimas versiones de imágenes disponibles. Con la versión más reciente, puedes evitar problemas de rendimiento que podrían permanecer en versiones anteriores, como el rendimiento lento de INSERT OVERWRITE en Spark 2.x.
  • Para minimizar la posibilidad de escribir muchos archivos con tamaños diferentes o pequeños en Cloud Storage, puedes configurar los parámetros de Spark SQL spark.sql.shuffle.partitions y spark.default.parallelism. el parámetro de Hadoop mapreduce.job.reduces.

Supervisa y ajusta la carga y la capacidad de almacenamiento

Los discos persistentes conectados a los nodos trabajadores en un clúster de Dataproc contienen datos Shuffle. Para obtener un rendimiento óptimo, los nodos trabajadores necesitan suficiente espacio en el disco. Si los nodos no tienen suficiente espacio en el disco, los nodos se marcan como UNHEALTHY en el registro YARN NodeManager. Si se produce este problema, aumenta el tamaño del disco para los nodos afectados o ejecuta menos trabajos de forma simultánea.

Habilita EFM

Cuando se quitan los nodos trabajadores de un clúster de Dataproc en ejecución, por ejemplo, debido a un escalamiento descendente o de interrupción, es posible que se pierdan los datos aleatorios. Para minimizar los retrasos de trabajo en esas situaciones, te recomendamos que habilites la función Modo de flexibilidad mejorada (EFM) para clústeres que usan VMs interrumpibles o que solo ajuste la escala de forma automática del grupo de trabajadores secundarios.

¿Qué sigue?

Revisa las prácticas recomendadas para optimizar el rendimiento de los recursos de procesamiento, almacenamiento, herramientas de redes y bases de datos: