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

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

1D
12H
19M
14S

M茅todos de carga alternativos al comando copy

25/33
Recursos

Aportes 4

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Deep Copy

Una copia profunda recrea y vuelve a llenar una tabla mediante una inserci贸n masiva, que ordena autom谩ticamente la tabla. Si una tabla tiene una regi贸n grande sin clasificar, una copia profunda es mucho m谩s r谩pida que una aspiradora. La compensaci贸n es que no debe realizar actualizaciones simult谩neas durante una operaci贸n de copia profunda a menos que pueda rastrearla y mover las actualizaciones delta a la nueva tabla despu茅s de que se haya completado el proceso. Una operaci贸n de VAC脥O admite actualizaciones simult谩neas de forma autom谩tica.

Puede elegir uno de los siguientes m茅todos para crear una copia de la tabla original:

  • Utilice la tabla DDL original.

Si el DDL CREATE TABLE est谩 disponible, este es el m茅todo m谩s r谩pido y preferido. Si crea una tabla nueva, puede especificar todos los atributos de tabla y columna, incluidas la clave principal y las claves externas.

  • Utilice CREAR TABLA COMO.

Si el DDL original no est谩 disponible, puede usar CREATE TABLE LIKE para recrear la tabla original. La nueva tabla hereda los atributos encoding, distkey, sortkey y notnull de la tabla principal. La nueva tabla no hereda los atributos de clave principal y clave externa de la tabla principal, pero puede agregarlos usando ALTER TABLE.

  • Cree una tabla temporal y trunque la tabla original.

Si necesita conservar la clave principal y los atributos de clave externa de la tabla principal, o si la tabla principal tiene dependencias, puede usar CREATE TABLE 鈥 AS (CTAS) para crear una tabla temporal, luego truncar la tabla original y completar de la tabla temporal.

El uso de una tabla temporal mejora el rendimiento significativamente en comparaci贸n con el uso de una tabla permanente, pero existe el riesgo de perder datos. Una tabla temporal se elimina autom谩ticamente al final de la sesi贸n en la que se crea. TRUNCATE se compromete inmediatamente, incluso si est谩 dentro de un bloque de transacci贸n. Si TRUNCATE tiene 茅xito pero la sesi贸n finaliza antes de que finalice el INSERT subsiguiente, los datos se pierden. Si la p茅rdida de datos es inaceptable, use una tabla permanente.

Para realizar una copia profunda utilizando la tabla original DDL

  1. (Opcional) Vuelve a crear la tabla DDL ejecutando un script llamado v_generate_tbl_ddl.

  2. Crea una copia de la tabla usando el CREATE TABLE DDL original.

  3. Utilisa una instrucci贸n INSERT INTO 鈥 SELECT para completar la copia con datos de la tabla original.

  4. Suelta la mesa original.

  5. Utilisa una instrucci贸n ALTER TABLE para cambiar el nombre de la copia al nombre de la tabla original.

El siguiente ejemplo realiza una copia profunda en la tabla SALES usando un duplicado de SALES llamado SALESCOPY.

create table salescopy ( 鈥 );
insert into salescopy (select * from sales);
drop table sales;
alter table salescopy rename to sales;

Para realizar una copia profunda usando CREATE TABLE LIKE

  1. Cree una nueva tabla usando CREATE TABLE LIKE.

  2. Utilice una instrucci贸n INSERT INTO 鈥 SELECT para copiar las filas de la tabla actual a la nueva tabla.

  3. Suelta la tabla actual.

  4. Utilice una instrucci贸n ALTER TABLE para cambiar el nombre de la nueva tabla al nombre de la tabla original.

  5. El siguiente ejemplo realiza una copia profunda en la tabla SALES usando CREATE TABLE LIKE.

create table likesales (like sales);
insert into likesales (select * from sales);
drop table sales;
alter table likesales rename to sales;

Para realizar una copia en profundidad creando una tabla temporal y truncando la tabla original

  1. Utilice CREATE TABLE AS para crear una tabla temporal con las filas de la tabla original.

  2. Truncar la tabla actual.

  3. Utilice una instrucci贸n INSERT INTO 鈥 SELECT para copiar las filas de la tabla temporal a la tabla original.

  4. Suelta la mesa temporal.

El siguiente ejemplo realiza una copia profunda en la tabla SALES creando una tabla temporal y truncando la tabla original:

create temp table salestemp as select * from sales;
truncate sales;
insert into sales (select * from salestemp);
drop table salestemp;
SELECT * FROM estudiante;

INSERT INTO estudiante VALUES
(5, 'Brandon', 'Huertas', 24, '2020-01-01'),
(6, 'Cristian', 'Salas', 30, '2020-03-01'),
(7, 'Holman', 'Capos', 25, '2020-02-01'),
(8, 'Natalia', 'Montenegro', 25, '2020-04-01');

-- bulk insert, datos por lotes
SELECT e.eventname, e.starttime, sum(pricepaid) pricepaid, sum(commission) commission 
FROM sales s 
INNER JOIN event e
ON s.eventid = e.eventid 
GROUP BY e.eventname , e.starttime;

CREATE TABLE total_price_by_event AS (
SELECT e.eventname, e.starttime, sum(pricepaid) pricepaid, sum(commission) commission 
FROM sales s 
INNER JOIN event e
ON s.eventid = e.eventid 
GROUP BY e.eventname , e.starttime
);

SELECT * FROM total_price_by_event;

-- deep copy
CREATE TABLE likesales (like sales);
INSERT INTO likesales (SELECT * FROM sales);
DROP TABLE sales;
ALTER TABLE likesales RENAME TO sales;

SELECT * FROM sales;

Buena clase

Ac谩 les dejo unos querys.

INSERT INTO estudiante VALUES
(8, 'Juan', 'Perez', 31, '2020-03-22'),
(9, 'Maria', 'Lopez', 31, '2020-01-22'),
(10, 'Josue', 'Ramirez', 31, '2020-02-22');

--Bulk select/insert
CREATE TABLE total_price_by_event as (
	SELECT e.eventname, e.starttime, sum(pricepaid) pricepaid, sum(commission) commission
	FROM sales s
	INNER JOIN event e ON s.eventid = e.eventid
	GROUP BY e.eventname, e.starttime
);

SELECT *
FROM total_price_by_event;