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

Buenas prácticas para diseñar tablas en Redshift

18/33
Recursos

Aportes 4

Preguntas 4

Ordenar por:

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

select
	schema schemaname,
	"table" tablename,
	table_id tableid,
	size size_in_mb,
	case
		when diststyle not in ('EVEN', 'ALL') then 1
		else 0
	end has_dist_key,
	case
		when sortkey1 is not null then 1
		else 0
	end has_sort_key,
	case
		when encoded = 'Y' then 1
		else 0
	end has_col_encoding,
	cast(max_blocks_per_slice - min_blocks_per_slice as FLOAT) / greatest(NVL (min_blocks_per_slice, 0)::int, 1) ratio_skew_across_slices,
	cast(100 * dist_slice as FLOAT) /(
	select
		COUNT(distinct slice)
	from
		stv_slices) pct_slices_populated
from
	svv_table_info ti
join (
	select
		tbl, MIN(c) min_blocks_per_slice, MAX(c) max_blocks_per_slice, COUNT(distinct slice) dist_slice
	from
		(
		select
			b.tbl, b.slice, COUNT(*) as c
		from
			STV_BLOCKLIST b
		group by
			b.tbl, b.slice)
	where
		tbl in (
		selectselect
	schema schemaname,
	"table" tablename,
	table_id tableid,
	size size_in_mb,
	case
		when diststyle not in ('EVEN', 'ALL') then 1
		else 0
	end has_dist_key,
	case
		when sortkey1 is not null then 1
		else 0
	end has_sort_key,
	case
		when encoded = 'Y' then 1
		else 0
	end has_col_encoding,
	cast(max_blocks_per_slice - min_blocks_per_slice as FLOAT) / greatest(NVL (min_blocks_per_slice, 0)::int, 1) ratio_skew_across_slices,
	cast(100 * dist_slice as FLOAT) /(
	select
		COUNT(distinct slice)
	from
		stv_slices) pct_slices_populated
from
	svv_table_info ti
join (
	select
		tbl, MIN(c) min_blocks_per_slice, MAX(c) max_blocks_per_slice, COUNT(distinct slice) dist_slice
	from
		(
		select
			b.tbl, b.slice, COUNT(*) as c
		from
			STV_BLOCKLIST b
		group by
			b.tbl, b.slice)
	where
		tbl in (
		select
			table_id
		from
			svv_table_info)
	group by
		tbl) iq on
	iq.tbl = ti.table_id;
			table_id
		from
			svv_table_info)
	group by
		tbl) iq on
	iq.tbl = ti.table_id;

Muy interesante hasta ahora, aunque me ha costado entender del todo varios puntos. No descarto tomar el curso una segunda vez cuando lo termine.

Profe muchisimas gracias por este curso, estoy aplicando todo lo que me indicas para llevar buenas prácticas en mi empresa. Un saludo

Es bueno resaltar que redshift permite definir restricciones más son solo informativas: "Las restricciones de unicidad, clave principal y clave externa son solo informativas, *Amazon Redshift* no las aplica al rellenar una tabla. Por ejemplo, si inserta datos en una tabla con dependencias, la inserción puede realizarse correctamente aunque infrinja la restricción. No obstante, las claves principales y externas se utilizan como sugerencias de planificación y deben estar declaradas si el proceso de Extract, Transform, Load (ETL, Extracción, transformación y carga) o algún otro proceso de su aplicación exige su integridad." <https://docs.aws.amazon.com/es_es/redshift/latest/dg/t_Defining_constraints.html>