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?

o inicia sesión.

¬Ņ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```