Puedo dar algunos consejos para trabajar con Redshift (también funciona para otras bases de datos MPP como Teradata o Pivotal / Greenplum en las que también tengo experiencia):
– Comprima las columnas para reducir las E / S, esta es una de las operaciones más costosas al ejecutar consultas, hay una buena documentación en la Ayuda de Redshift, para elegir un buen algoritmo dependiendo del tipo de columna.
– Ordene las tablas grandes de manera que la mayoría de las consultas se puedan manejar mediante un escaneo limitado de la tabla (por lo general, una fecha es una buena opción para tablas de hechos, fecha de evento para ex). Las claves de clasificación compuestas podrían evaluarse, pero esto requiere comparar las ganancias o pérdidas en las consultas principales que está encontrando
- ¿Cuáles son las principales diferencias entre Spring Cloud Data Flow y Apache Nifi?
- Como estudiante de ECE, ¿qué puedo aprender, CCNA o computación en la nube?
- Vehículo conectado: ¿Es factible la idea de usar la nube para reemplazar las ECU del vehículo en el futuro cercano? ¿Qué tipo de cálculos de la ECU se pueden mover a la nube?
- ¿Cuántos años de experiencia laboral serán buenos para obtener la certificación de arquitecto de soluciones de AWS?
- Cómo trazar métricas de instancia de CloudWatch EC2 usando Python
– No debe comprimir la distribución ni ordenar las claves para que el filtrado por bloque siga siendo eficiente (esto podría ser sorprendente, pero funciona: por ejemplo, en un caso extremo, imaginemos que los valores de las claves de clasificación se almacenan en un bloque de datos, mientras que en otra columna usa 100 bloques, el filtrado por un valor de clave de clasificación no funcionará, los 100 bloques de otra columna se leen de todos modos).
– Intente utilizar la misma clave de distribución en las tablas de hechos, incluso si eso significa agregar una clave faltante en algunas de ellas. Al hacer esto e incluirlos en uniones de tablas de hecho (incluso si el modelo no lo requiere estrictamente), ayuda a Redshift a comprender que la unión se puede realizar localmente en cada segmento
– Aspire y analice regularmente las tablas, no olvide reclamar espacio si la eliminación / actualización ocurre con frecuencia en algunas tablas. Uno por semana debería ser suficiente.
– Mire los planes de explicación cuando tenga problemas de rendimiento, la mayoría de los problemas provienen de malas redistribuciones (Evaluación del plan de consulta). También revise las condiciones de filtrado y vea si puede filtrar mejor sus datos para evitar filas no necesarias
– No permita que el clúster se sobrecargue con demasiadas consultas. Puede ajustar esto con WML. Por encima de 10 consultas simultáneas, puede comenzar a tener problemas. Podría ser mucho menos si tiene consultas concurrentes pesadas al mismo tiempo (pesado significa que cada una de ellas necesita varios minutos para ejecutarse). Así que ejecute el mantenimiento / cargas en períodos tranquilos
– Tener un grupo lleno por encima del 75% no es bueno para las actuaciones.
Espero que esto ayude a evitar problemas