<aside>
💡 Por José Rodrigo Navas
</aside>
Ante cualquier duda consultar la documentación oficial en AWS de RedShift:
Indice
Crear una tabla
Tipos de datos
Descripciones
Funciones Principales
Estilos de distribución
- Key dist: el mejor método en la mayoría de casos, especialmente útil para joins y group by, se debe de usar la llave lógica de la tabla o la distribución no será equitativa.
- Even dist: (round robin) método equitativo, pero tiene problemas con joins y no es eficiente para la parte analítica, utlizar por defecto si no se reconoce un método mejor.
- All dist: replica la tabla en todos los nodos, solamente para tablas pequeñas.
Query para obtener la distribución de los registros dentro de los nodos de RedShift, siempre se debe buscar una distribución uniforme
SELECT distinct
slice, col, num_values, minvalue, maxvalue FROM pg_catalog.svv_diskusage
WHERE "name" = 'users' -- nombre de la tabla
AND col = 0 -- indice del campo de la llave en la tabla
AND num_values > 0
ORDER BY slice, col
LIMIT 10;
<aside>
⛔ Nunca asignar una columna con nulls como dist key
</aside>
Sort Key
- Simple: llave para filtrar por un solo campo, normalmente la llave primaria, ideal para tablas con pocas columnas
- Compound: utiliza un conjunto de columnas como llave de ordenamiento, mejora el rendimiento al filtrar por todas las columnas compuestas, y se reduce al filtrar por otras columnas
- Interleaved: igual que la compuesta utiliza varias columnas, pero al filtrar por cada una de manera individual el rendimiento no se reduce, pero los inserts a la tabla será mucho más lentos