Distribución de datos para la optimización de consultas
Cuando carga datos en una tabla, Amazon Redshift distribuye las filas de la tabla a cada uno de los nodos de informática, en función del estilo de distribución de la tabla. Cuando ejecuta una consulta, el optimizador de consultas redistribuye las filas a los nodos de computación según se necesite para realizar combinaciones y agregaciones. El objetivo al elegir un estilo de distribución de tablas es reducir el impacto del paso de redistribución al localizar los datos en el lugar que deben estar antes de que se ejecute la consulta.
nota
En esta sección, se presentarán los principios de la distribución de datos en una base de datos de Amazon Redshift. Se recomienda que cree sus tablas con DISTSTYLE AUTO
. De hacerlo así, Amazon Redshift utiliza la optimización automática de tablas para elegir el estilo de distribución de los datos. Para obtener más información, consulte Optimización de tablas automática. En el resto de esta sección, se proporcionan detalles sobre los estilos de distribución.
Temas
Conceptos de distribución de datos
A continuación, se exponen algunos conceptos de distribución de datos para Amazon Redshift.
Nodos y sectores
Un clúster de Amazon Redshift es un conjunto de nodos. Cada nodo del clúster tiene su propio sistema operativo, su propia memoria especializada y almacenamiento especializado en el disco. Hay un nodo que es el nodo principal, que administra la distribución de los datos y las tareas de procesamiento de consultas a los nodos de informática. Los nodos de informática proporcionan los recursos necesarios para realizar esas tareas.
El almacenamiento en disco de un nodo de computación se divide en una serie de sectores. El número de sectores por nodo depende del tamaño de nodo del clúster. Todos los nodos participan en la ejecución de consultas en paralelo y trabajan en datos que se distribuyen de la manera más uniforme posible entre los sectores. Para obtener más información acerca de la cantidad de sectores que tiene cada tamaño de nodo, consulte Acerca de clústeres y nodos en la Guía de administración de Amazon Redshift.
Redistribución de datos
Cuando carga datos en una tabla, Amazon Redshift distribuye las filas de la tabla a cada uno de los sectores del nodo, en función del estilo de distribución de la tabla. Como parte de un plan de consulta, el optimizador determina dónde se deben ubicar los bloques de datos para ejecutar la consulta de la mejor manera. A continuación, los datos se mueven o se redistribuyen físicamente mientras se ejecuta la consulta. La redistribución puede implicar enviar filas específicas a los nodos para realizar una combinación, o bien para difundir una tabla entera a todos los nodos.
La redistribución de datos puede representar una parte sustancial del costo de un plan de consulta y el tráfico de red que genera puede afectar otras operaciones de la base de datos y ralentizar el rendimiento general del sistema. En la medida en que pueda prever dónde conviene ubicar los datos inicialmente, puede reducir el impacto de la redistribución de datos.
Objetivos de la distribución de datos
Cuando carga datos en una tabla, Amazon Redshift distribuye las filas de la tabla a los nodos de informática y a los sectores, en función del estilo de distribución que se haya elegido al crearla. La distribución de datos tiene dos objetivos principales:
-
Distribuir la carga de trabajo de manera uniforme entre los nodos del clúster. Una distribución irregular, o un sesgo en la distribución de datos, exige que algunos nodos trabajen más que otros, lo que perjudica el rendimiento de las consultas.
-
Para minimizar el movimiento de datos durante la ejecución de una consulta. Si las filas que participan de uniones o de agregaciones ya están ubicadas junto a los nodos con las filas de las otras tablas con las que se unirán, el optimizador no necesita redistribuir tantos datos cuando se ejecutan las consultas.
La estrategia de distribución que selecciona para su base de datos tiene consecuencias importantes en el rendimiento de la consulta, en los requisitos de almacenamiento, en la carga de datos y en el mantenimiento. Si selecciona el mejor estilo de distribución para cada tabla, puede equilibrar la distribución de sus datos y mejorar considerablemente el rendimiento general del sistema.