Primeros pasos en la arquitectura no transaccional

1

Objetivos y presentación del proyecto

2

Aprende qué es un Data Warehouse

3

Bases de datos columnares y arquitectura orientada a optimización de consultas

4

¿Cómo funciona AWS Redshift?

Configura tu entorno de trabajo para Redshift

5

Creando nuestro entorno de trabajo en AWS

6

Configura tu primer cluster

7

Consumiendo Redshift: empieza la magia

8

Sentencias SQL en Redshift

Cómo diseñar tu base de datos para mejorar su desempeño

9

¿Qué es la compresión en Redshift?

10

Algoritmos de compresión con Redshift

11

Aplicando algoritmos de compresión

12

Análisis de desempeño con diferentes tipos de compresión

13

Estilos de distribución con Redshift

14

Evaluando los estilos de distribución

15

Llaves de ordenamiento para optimizar nuestras consultas

16

Aplicando ordenamiento de columnas

17

Evaluando algoritmos de ordenamiento

18

Buenas prácticas para diseñar tablas en Redshift

19

Tipos de datos en AWS Redshift

20

Reto: mejora el desempeño de tu base de datos

Manipular enormes cantidades de datos

21

Olvídate de los insert, el copy llego para quedarse

22

Cargando archivos tipo JSON

23

El comando copy a fondo

24

Manifiestos y uso de COMPUPDATE para carga con compresión automática

25

Métodos de carga alternativos al comando copy

26

¿Cómo ejecutar sentencias UPDATE y DELETE?

27

¿Cómo mantener el desempeño de tu base de datos?

28

Estadísticas y limpieza de las tablas

Buenas prácticas para diseñar y ejecutar consultas en tu base de datos

29

Agrupamiento, ordenamiento y subqueries

30

¿Qué es y cómo interpretar un explain plan?

Análisis de comportamiento y descarga de datos con Redshift

31

¿Cómo descargar datos eficientemente con UNLOAD?

32

Otras tablas útiles de Redshift para entender el comportamiento de nuestros datos

Conclusiones

33

Próximos pasos con AWS Redshift

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Evaluando algoritmos de ordenamiento

17/33
Recursos

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Pero por qué aún apagando el caché la segunda consulta es muchísimo más rápida? Me daría la impresión de que el siguiese haciendo uso del caché

set enable_result_cache_for_session to off;

SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_simple
WHERE c_custkey < 100000; --349ms ,237ms

SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_compuesto
WHERE c_custkey < 100000; --125ms ,146ms

SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_intercalado
WHERE c_custkey < 100000; --397 ms ,179ms
-------------------------------

set enable_result_cache_for_session to off;


SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_simple
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE'; --1.468ms, 1.369 ms

SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_compuesto
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE';--2.586s, 770ms

SELECT max(lo_revenue), min(lo_revenue) 
FROM cust_sales_intercalado
WHERE c_region = 'ASIA'
AND c_mktsegment = 'FURNITURE';--303ms, 104 ms


-----------
set enable_result_cache_for_session to off;


SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_simple
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--1.415s, 115ms

SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_compuesto
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--806 ms, 326ms

SELECT max(lo_revenue), min(lo_revenue)
FROM cust_sales_intercalado
WHERE d_date BETWEEN '01/01/1996' AND '01/14/1996'
AND c_mktsegment = 'FURNITURE'
AND c_region = 'ASIA';--236 ms, 112ms

La sentencia ENABLE_RESULT_CACHE_FOR_SESSION opera de la siguiente forma:

Si su valor es ON busca en cache algún resultado previamente calculado para el query ejecutado. Si su valor es OFF ejecuta el query directamente y obtiene un resultado nuevo.

ENABLE_RESULT_CACHE_FOR_SESSION - STACKOVERFLOW

Apagar el cache: set enable_result_cache_for_session to off

Hice unas consultas para los registros con ID mayor a 500,000 de mayo de 1996, sector automóvil y con región de Medio Oriente y mientras más filtros se agregan más es la diferencia de las sort key tipo intercalado en el rendimiento

set enable_result_cache_for_session to off;

select sum(lo_revenue) 
from cust_sales_simple 
WHERE c_custkey > 500000
	AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
	AND c_mktsegment = 'AUTOMOBILE'
	AND c_region = 'MIDDLE EAST' ; 
-- tiempo con cache desactivado 1.345 s

select sum(lo_revenue) 
from cust_sales_compound 
WHERE c_custkey > 500000
	AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
	AND c_mktsegment = 'AUTOMOBILE'
	AND c_region = 'MIDDLE EAST' ; 
-- tiempo con cache desactivado 710 ms

select sum(lo_revenue) 
from cust_sales_interleaved 
WHERE c_custkey > 500000
	AND d_date BETWEEN '1996/05/01' AND '1996/05/30'
	AND c_mktsegment = 'AUTOMOBILE'
	AND c_region = 'MIDDLE EAST' ; 
-- tiempo con cache desactivado 277 ms

muy clara esta clase

Mis tiempos en las queries:

set enable_result_cache_for_session to off;

select max(lo_revenue), min(lo_revenue) 
from cust_sales_simple
where c_custkey < 100000;--420ms/ 232ms

select max(lo_revenue), min(lo_revenue) 
from cust_sales_compuesto
where c_custkey < 100000;--178ms/ 153ms

select max(lo_revenue), min(lo_revenue) 
from cust_sales_intercalable
where c_custkey < 100000;--326/ 234ms
-------------------------------------------------

select max(lo_revenue), min(lo_revenue)
from cust_sales_simple
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--8.847s/ 4.399s

select max(lo_revenue), min(lo_revenue)
from cust_sales_compuesto
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--7.931s/ 3.459s

select max(lo_revenue), min(lo_revenue)
from cust_sales_intercalable
where c_region = 'ASIA'
and c_mktsegment = 'FURNITURE';--4.761/539ms
---------------------------------------------------

set enable_result_cache_for_session to off;

select max(lo_revenue), min(lo_revenue)
from cust_sales_simple
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--1.254s/ 1.103s

select max(lo_revenue), min(lo_revenue)
from cust_sales_compuesto
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--9.191s/ 4.590s

select max(lo_revenue), min(lo_revenue)
from cust_sales_intercalable
where d_date between '01/01/1996' and '01/14/1996'
and c_mktsegment = 'FURNITURE'
and c_region = 'ASIA';--5.221/ 404ms```