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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

¿Cómo ejecutar sentencias UPDATE y DELETE?

26/33
Recursos

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Les comparto mis querys:

SELECT salesid, pricepaid, commission
FROM sales s
WHERE eventid IN (
	SELECT eventid
	FROM event e
	WHERE eventname = 'Beck'
);

CREATE table sales_auxiliar AS (
	SELECT salesid, pricepaid * 2 pricepaid , commission * 2 commission 
	FROM sales s
	WHERE eventid IN (
		SELECT eventid
		FROM event e
		WHERE eventname = 'Beck'
	)
);

UPDATE sales
SET pricepaid =sa.pricepaid
FROM sales_auxiliar sa
WHERE sales.salesid = sa.salesid;

DELETE FROM sales
USING sales_auxiliar
WHERE sales.salesid = sales_auxiliar.salesid;


DROP TABLE sales_auxiliar;

CREATE table sales_auxiliar AS (
	SELECT *
	FROM sales s
	WHERE eventid IN (
		SELECT eventid
		FROM event e
		WHERE eventname = 'Macbeth'
	)
);

INSERT INTO sales (SELECT * FROM sales_auxiliar);

Excelente

Para hacer update o delete en Redshift, la mejor practica es crear una tabla auxiliar con todos los datos involucrados en el borrado o actualización, para después hacer utilizar esa nueva tabla para hacer una sola operación cruzada con la tabla original.

  1. cargar en tabla auxiliar los datos actualizados
  2. borrar los datos de la tabla oficial, con ayuda de la tabla auxiliar (uso por ejemplo del id)
  3. Insertar en la tabla oficial los datos de la tabla auxiliar
SELECT * FROM sales LIMIT 10;

SELECT *
FROM sales s 
WHERE eventid ;

SELECT *
FROM event e 
WHERE eventname  = 'Beck';

SELECT eventid 
FROM event e 
WHERE eventname  = 'Beck';

SELECT *
FROM sales s 
WHERE eventid in(
	SELECT eventid 
	FROM event e 
	WHERE eventname  = 'Beck'
) ;

DROP TABLE sales_auxiliar;


CREATE TABLE sales_auxiliar AS (
	SELECT salesid, pricepaid  * 2 pricepaid, commission * 2 commission 
	FROM sales s 
	WHERE eventid in(
		SELECT eventid 
		FROM event e 
		WHERE eventname  = 'Beck'
)
);

SELECT * 
FROM sales_auxiliar
LIMIT 10;

SELECT * 
FROM sales_auxiliar
WHERE salesid = 137519
LIMIT 10; --448

SELECT * 
FROM sales
WHERE salesid = 137519
LIMIT 10; --448

UPDATE sales 
SET pricepaid = sa.pricepaid
FROM sales_auxiliar sa
WHERE sales.salesid = sa.salesid;

DELETE FROM sales 
USING sales_auxiliar
WHERE sales.salesid = sales_auxiliar.salesid;

DROP TABLE sales_auxiliar;

CREATE TABLE sales_auxiliar AS (
	SELECT * 
	FROM sales s 
	WHERE eventid in(
		SELECT eventid 
		FROM event e 
		WHERE eventname  = 'Macbeth'));
	
DELETE FROM sales 
USING sales_auxiliar
WHERE sales.salesid = sales_auxiliar.salesid;

INSERT INTO sales (SELECT * FROM sales_auxiliar);

SELECT eventid 
FROM event e 
WHERE eventname  = 'Macbeth';

SELECT * 
	FROM sales s 
	WHERE eventid in(
		SELECT eventid 
		FROM event e 
		WHERE eventname  = 'Macbeth');

SELECT * 
FROM sales_auxiliar
WHERE salesid = 107121
LIMIT 10; --82, --12.3

SELECT * 
FROM sales
WHERE salesid = 107121
LIMIT 10; --82, --12.3