Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Soporte grado 1
problemas entre comillas fáciles de resolver
Soporte grado 2
Ya es un soporte más avanzado y que cuesta más tiempo Revisión de bases de datos
Soporte grado 3
Tablero de soluciones
Base de datos
GW ---------------------- C/S
Actualmente se está migrando datos de la base de datos C/S a la nueva base de datos GW, lo están
haciendo por procesos.
Esto se hace para mejorar el desempeño de una base de datos actualizar versiones, reducir costes
o aplicar políticas de seguridad.
- Fusión de dos sistemas paralelos en uno solo que se requiere cuando una empresa absorbe a
otra o cuando dos negocios se fusionan.
Pese a que la migración de datos puede ser un proceso sencillo, su implementación puede
encontrarse con desafíos a los que habrá que hacer frente.
ETL (Extraer: extract. Transformar: transform. Y Cargar: load.) El usuario llena sus datos y allí se
transforman
Para llevar a cabo de manera correcta el proceso de extracción, primera fase de los procesos ETL,
hay que
- Extracción: es el proceso mediante el que se toman los datos del sistema o los sistemas de
origen.
- Transformación: en esta etapa al dato le son aplicadas las reglas del negocio para convertirlo,
- Carga: una vez que los datos se han transformado y convertido se cargan al nuevo sistema, de
forma directa o por etapas, dependiendo del tipo de conexión disponible entre ambos.
● Interpretar este chequeo para verificar que los datos extraídos cumplen la pauta o
estructura que se esperaba. Si no fuese así, los datos deberían ser rechazados.
● Convertir los datos a un formato preparado para iniciar el proceso de transformación
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Ventajas
Paralelismo: La teradata está diseñada desde su inicio con una arquitectura paralela, esto quiere
decir que todas las tareas que ejecutemos se ejecutan en paralelo.
Escalabilidad: Teradata posee una escalabilidad lineal, eso quiere decir que puede aumentar el
trabajo sin reducir el rendimiento.
Optimizador: Teradata posee un muy buen optimizador permitiendo así poder realizar consultas
complejas.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Esta almacena cada tipo de información en una tabla las cuales un reglón representa un elemento
y una columna representa propiedades o atributos de ese elemento.
SINTAXIS
Creación de tablas
ALTER Y DROP
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1' AND 'valor2';
IN EN SQL
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una
lista. Su sintaxis es:
OR = Sirve para obtener registros que coincidan con alguna de las condiciones
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una
lista. Su sintaxis es:
SUBCONSULTAS
Una subconsulta es una instrucción SELECT anidada dentro de una instrucción SELECT,
SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta. Puede utilizar tres
formas de sintaxis para crear una subconsulta:
comparación [ANY | ALL | SOME] (instrucción sql) expresión [NOT] IN (instrucción sql) [NOT]
EXISTS (instrucción sql
En donde:
instrucción SQL Es una instrucción SELECT, que sigue el mismo formato y reglas que cualquier otra
instrucción SELECT. Debe ir entre paréntesis.
OPERADOR (LIKE)
Se utiliza normalmente en una sentencia Where para buscar un patrón específico de una columna.
Este operador puede ser de utilidad en los casos donde necesitamos realizar un apareamiento de
patrones en vez de iguales o no iguales. El SQL Like se utiliza cuando se desea devolver la fila, si
una cadena de caracteres específica coincide con un patrón específico. El patrón puede ser una
combinación de caracteres regulares al igual que caracteres de comodín (*,%, ¿, etc.).
La siguiente consulta retorna todos los números de teléfono cuyo código de área “415” en la tabla
“PersonPhone”:
Nótese que el símbolo “415%” se especifica en la cláusula “Where”. Esto significa que SQL Server
buscará el número 415 seguido de cualquier cadena de cero o más caracteres. Aquí está el
conjunto de resultados:
se utiliza cuando queremos verificar un solo carácter que puede ser cualquier cosa y proveer el
resto de los personajes para nuestro lado.
Supongamos que si deseamos devolver todos los registros en los que el primer carácter de la tabla
“Nombre” puede ser cualquier cosa, pero el resto de ellos debe ser “en”. Utilice la siguiente
consulta:
Usando los corchetes [ ] (cualquier carácter individual dentro del rango especificado [a-t] o en
conjunto [abc])
El operador SQL Like con corchetes es utilizado cuando se quiere tener rango. Supongamos que si
queremos encontrar todas las filas donde el primer carácter de “Nombre” comienza con [a-f].
Utilice la siguiente consulta:
Como puede verse, hemos utilizado el rango [a-f]%. Eso significa que se debe devolver el primer
carácter de “a” a la “f” y después de eso, todos los caracteres están bien porque usamos “%”
después:
Usando corchetes [^] (cualquier carácter individual que no esté dentro del rango especificado [a-t]
o en conjunto [abc])
Como habrá adivinado, esto es lo contrario al uso anterior del operador SQL Like entre corchetes.
Digamos que queremos obtener todos los registros donde el primer carácter de “Nombre” no
comienza con [a a la f]:
Observe que solo retornó los registros que no comienzan con ningún carácter de la “a” a la “f”:
SUBCONSULTAS CON IN EJERCICIO
La función GROUP BY se utiliza para juntar filas de resultados que coincidan en el valor de alguna
columna seleccionada.
Sintaxis GROUP BY
SELECT cliente, SUM(precio)
FROM pedidos
GROUP BY cliente
HAVING SUM(precio) > 500
RESULTADO
La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, ..
Como la cláusula WHERE no se puede utilizar con funciones SQL del tipo SUM, MAX, entonces
utilizamos en su lugar, HAVING.
Sintaxis HAVING
Funciones de agregación
Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto de
resultados, pero devolviendo un único valor agregado para todos ellos. Es decir, nos permiten
obtener medias, máximos, esobre un conjunto de valores.
Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes:
AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en
columnas numéricas.
FROM student_grades;
AS
La instrucción CASE pasa por condiciones y devuelve un valor cuando se cumple la primera
condición (como una instrucción IF-THEN-ELSE). Entonces, una vez que una condición es
verdadera, dejará de leer y devolverá el resultado. Si no hay condiciones verdaderas, devuelve el
valor en la cláusula ELSE.
Los JOINs en SQL sirven para combinar filas de dos o más tablas basándose en un campo común
entre ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN se produce cuando dos o
más tablas se juntan en una sentencia SQL.
INNER JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas.
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de
la derecha.
LEFT JOIN mantiene todas las filas de la tabla izquierda (la tabla1). Las filas de la tabla derecha se
mostrarán si hay una coincidencia con las de la izquierda. Si existen valores en la tabla izquierda
pero no en la tabla derecha, ésta mostrará null.
RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de
la izquierda.
Es igual que LEFT JOIN pero al revés. Ahora se mantienen todas las filas de la tabla derecha
(tabla2). Las filas de la tabla izquierda se mostrarán si hay una coincidencia con las de la derecha.
Si existen valores en la tabla derecha pero no en la tabla izquierda, ésta se mostrará null.
OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama
FULL OUTER JOIN
OUTER JOIN o FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (tabla1) y de la tabla
derecha (tabla2). Combina el resultado de los joins LEFT y RIGHT. Aparecerá null en cada una de
las tablas alternativamente cuando no haya una coincidencia.
On == Where
SELF JOIN
JOINS
FROM movies sequel
ON movies.id = sequel.sequel_id;
DOCUENTACION
EJERCICIOS
EJERCICIO PRACTICO
2. Lista los nombres y los precios de todos los productos de la tabla producto.
6. Lista los nombres y los precios de todos los productos de la tabla producto,
convirtiendo los nombres a mayúscula.
7. Lista los nombres y los precios de todos los productos de la tabla producto,
convirtiendo los nombres a minúscula.
SELECT *
FROM CITY
WHERE
COUNTRYCODE = 'USA'
9 - Consulte todas las columnas (atributos) para cada fila en la tabla CITY .
Formato de entrada
Formato de entrada
SELECT *
FROM CITY
WHERE ID = 1661;
SELECT*
FROM CITY
SELECT NAME
FROM CITY
FROM STATION;
14 - Consulte una lista de nombres CITYI de STATIONN con solo números IDD.
Puede imprimir los resultados en cualquier orden, pero debe excluir duplicados
de su respuesta.
25. Obtener el nombre y cargo de todos los empleados, ordenado por cargo y por
salario
SELECT nomEmp, cargoE, salEmp
FROM Empleado
ORDER BY cargoE, salEmp ;
26. Obtener el nombre y cargo de todos los empleados, en orden inverso por cargo
SELECT nomEmp, cargoE
FROM Empleado
ORDER BY cargoE DESC ;
27. Listar los salarios y comisiones de los empleados del departamento 2000
SELECT salEmp, comisionE, codDepto
FROM Empleado
WHERE codDepto = 2000
28. Listar los salarios y comisiones de los empleados del departamento 2000,
ordenado por comisión
SELECT salEmp, comisionE, codDepto
FROM empleado
WHERE codDepto = 2000
ORDER BY comisionE;
29. Listar todas las comisiones
SELECT comisionE
FROM Empleado;
30. Listar las comisiones que sean diferentes, ordenada por valor
SELECT DISTINCT comisionE FROM Empleado ORDER BY comisionE;
31. Listar los diferentes salarios
SELECT DISTINCT salEmp
FROM Empleado;
32. Obtener el valor total a pagar que resulta de sumar a los empleados del
departamento 3000 unabonificación de $500.000, en orden alfabético del
empleado
SELECT salEmp, codDepto, nomEmp
FROM Empleado
WHERE codDepto = 3000 AND salEmp + 500.000
ORDER BY nomEmp;
33. Obtener la lista de los empleados que ganan una comisión superior a su sueldo.
SELECT nomEmp, comisionE
FROM Empleado
WHERE comisionE > salEmp;
34. Listar los empleados cuya comisión es menor o igual que el 30% de su sueldo
SELECT nomEmp, comisionE
FROM Empleado
WHERE comisionE <= salEmp* 0.30;
35. Elabore un listado donde para cada fila, figure ‘Nombre’ y ‘Cargo’ antes del
valor respectivo paracada empleado
SELECT "Nombre: " ,nomEmp, "Cargo: " ,cargoE
FROM Empleado;
36. Hallar el salario y la comisión de aquellos empleados cuyo número de
documento de identidad es superior al '19.709.802'
SELECT nomEmp, salEmp, comisionE, nDIEmp
FROM Empleado
WHERE nDIEmp > '19.709.802' ;
37. Listar los empleados cuyo salario es menor o igual que el 40% de su comisión
SELECT nomEmp, salEmp, comisionE
FROM Empleado
WHERE salEmp <= comisionE* 0.40;
38. Divida los empleados, generando un grupo cuyo nombre inicie por la letra J y
termine en la letra Z. Liste estos empleados y su cargo por orden alfabético.
SELECT JZ.nomEmp, JZ.cargoE
FROM (SELECT *
FROM Empleado
WHERE nomEmp> 'J' AND nomEmp <'z')
JZ
ORDER BY nomEmp;
39. Listar el salario, la comisión, el salario total (salario + comisión), documento de
identidad del empleado y nombre, de aquellos empleados que tienen comisión
superior a $1.000.000, ordenar el informe por el número del documento de
identidad
SELECT nDIEmp, nomEmp, salEmp, comisionE, (salEmp+comisionE) as total FROM
Empleado WHERE comisionE > 1000000 ORDER BY nDIEmp;
40. Obtener un listado similar al anterior, pero de aquellos empleados que NO
tienen comisión
SELECT nDIEmp, nomEmp, salEmp, comisionE, (salEmp+comisionE) as total
FROM Empleado
WHERE comisionE = 0
ORDER BY nDIEmp;
41. Hallar el nombre de los empleados que tienen un salario superior a $1000000, y
tienen como jefe al ,empleado con documento de identidad '31.840.269'
SELECT nomEmp
FROM Empleado
WHERE salEmp > 1000000 AND jefeID = '31.840.269';
42. Hallar el conjunto complementario del resultado del ejercicio anterior.
SELECT nomEmp
FROM Empleado
WHERE salEmp <= 1000000 AND jefeID = '31.840.269'
43. Hallar los empleados cuyo nombre no contiene la cadena “MA”
SELECT nomEmp
FROM Empleado
WHERE nomEmp LIKE "%MA%";
44. Obtener los nombres de los departamentos que no sean “Ventas” ni
“Investigación” NI ‘MANTENIMIENTO’, ordenados por ciudad.
SELECT nombreDpto
FROM Departamento
WHERE nombreDpto NOT IN
('VENTAS','INVESTIGACIÓN','MANTENIMIENTO')
ORDER BY ciudad;
45. Obtener el nombre y el departamento de los empleados con cargo 'Secretaria'
o 'Vendedor', que no trabajan en el departamento de “PRODUCCION”, cuyo
salario es superior a $1000000, ordenados por fecha de incorporación.
SELECT E.nomEmp, E. cargoE, D.nombreDpto
FROM Departamento D, Empleado E
WHERE cargoE IN ('Secretaria',
'Vendedor') AND
salEmp > 1000000 AND
E.coddepto = D.coddepto AND
E.coddepto NOT IN
(SELECT F.coddepto
FROM Departamento F
WHERE F.nombredpto='PRODUCCIÓN');
46. Listar los datos de los empleados cuyo nombre inicia por la letra 'M', su salario
es mayor a $800.000 o reciben comisión y trabajan para el departamento de
'VENTAS'
SELECT * FROM Empleado
WHERE nomEmp LIKE "M%" AND salEmp > 800000 AND comisionE > 0 AND
cargoE = "Vendedor" ;
SELECT
52. Entregar el nombre del último empleado de la lista por orden alfabético.
SELECT MAX(nomEmp)
FROM Empleado
ORDER BY nomEmp DESC;
53. Hallar el salario más alto, el más bajo y la diferencia entre ellos.
SELECT MAX(salEmp) AS MAS_ALTO, MIN(salEmp) AS MAS_BAJO,
(MAX(salEmp) - MIN(salEmp)) AS DIFERENCIA
FROM Empleado;
54. Conocido el resultado anterior, entregar el nombre de los empleados
que reciben el salario más alto y más bajo. ¿Cuánto suman estos salarios?
MAX MIN DIF
6250000.0|750000.0|5500000.0
SELECT nomEmp, MAX(salEmp), MIN(salEmp), (MAX(salEmp) + MIN(salEmp))
FROM Empleado ;
Proyectos SQL
1.
QUERY
CREATE TABLE ESTRUCTURAS (ID INTEGER PRIMARY KEY, MARCA TEXT, PRECIO INTEGER, MODELO
INTEGER, COLOR TEXT);
INSERT INTO ESTRUCTURAS VALUES (1, "GW", 100000, 2020, "VERDE");
SELECT ID, MARCA, PRECIO, MODELO, COLOR FROM ESTRUCTURAS ORDER BY PRECIO DESC;
QUERY
/* Source: http://www.boxofficemojo.com/alltime/world/ */
, title TEXT
, studio TEXT
, worldwide TEXT
, domestic_money TEXT
, domestic_percent TEXT
, overseas_money TEXT
, overseas_percent TEXT
, year TEXT
);
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('Rank','Title','Studio','Worldwide','Domestic /
%','Overseas / %','Year^','','');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('1','Avatar','Fox','$2,788.0','$760.5','27.3%','$2,027.5','72.7%','2009^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('2','Titanic','Par.','$2,186.8','$658.7','30.1%','$1,528.1','69.9%','1997^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('3','Marvel''s The
Avengers','BV','$1,518.6','$623.4','41.0%','$895.2','59.0%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('4','Harry Potter and the Deathly Hallows Part
2','WB','$1,341.5','$381.0','28.4%','$960.5','71.6%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('5','Furious
7','Uni.','$1,322.2','$321.2','24.3%','$1,001.0','75.7%','2015');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('6','Frozen','BV','$1,274.2','$400.7','31.4%','$873.5','68.6%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('7','Iron Man
3','BV','$1,215.4','$409.0','33.7%','$806.4','66.3%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('8','Transformers: Dark of the
Moon','P/DW','$1,123.8','$352.4','31.4%','$771.4','68.6%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('9','The Lord of the Rings: The Return of the
King','NL','$1,119.9','$377.8','33.7%','$742.1','66.3%','2003^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('10','Skyfall','Sony','$1,108.6','$304.4','27.5%','$804.2','72.5%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('11','Transformers: Age of
Extinction','Par.','$1,091.4','$245.4','22.5%','$846.0','77.5%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('12','The Dark Knight
Rises','WB','$1,084.4','$448.1','41.3%','$636.3','58.7%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('13','Pirates of the Caribbean: Dead Man''s
Chest','BV','$1,066.2','$423.3','39.7%','$642.9','60.3%','2006');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('14','Toy Story
3','BV','$1,063.2','$415.0','39.0%','$648.2','61.0%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('15','Pirates of the Caribbean: On Stranger
Tides','BV','$1,045.7','$241.1','23.1%','$804.6','76.9%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('16','Jurassic
Park','Uni.','$1,029.2','$402.5','39.1%','$626.7','60.9%','1993^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('17','Star Wars: Episode I - The Phantom
Menace','Fox','$1,027.0','$474.5','46.2%','$552.5','53.8%','1999^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('18','Alice in Wonderland
(2010)','BV','$1,025.5','$334.2','32.6%','$691.3','67.4%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('19','The Hobbit: An Unexpected
Journey','WB','$1,017.0','$303.0','29.8%','$714.0','70.2%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('20','The Dark
Knight','WB','$1,004.6','$534.9','53.2%','$469.7','46.8%','2008^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('21','The Lion
King','BV','$987.5','$422.8','42.8%','$564.7','57.2%','1994^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('22','Harry Potter and the Sorcerer''s
Stone','WB','$974.8','$317.6','32.6%','$657.2','67.4%','2001');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('23','Despicable Me
2','Uni.','$970.8','$368.1','37.9%','$602.7','62.1%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('24','Pirates of the Caribbean: At World''s
End','BV','$963.4','$309.4','32.1%','$654.0','67.9%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('25','The Hobbit: The Desolation of
Smaug','WB','$960.4','$258.4','26.9%','$702.0','73.1%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('26','Harry Potter and the Deathly Hallows Part
1','WB','$960.3','$296.0','30.8%','$664.3','69.2%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('27','The Hobbit: The Battle of the Five
Armies','WB','$955.1','$255.1','26.7%','$700.0','73.3%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('28','Harry Potter and the Order of the
Phoenix','WB','$939.9','$292.0','31.1%','$647.9','68.9%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('29','Finding
Nemo','BV','$936.7','$380.8','40.7%','$555.9','59.3%','2003^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('30','Harry Potter and the Half-Blood
Prince','WB','$934.4','$302.0','32.3%','$632.5','67.7%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('31','The Lord of the Rings: The Two
Towers','NL','$926.0','$342.6','37.0%','$583.5','63.0%','2002^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('32','Shrek
2','DW','$919.8','$441.2','48.0%','$478.6','52.0%','2004');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('33','Harry Potter and the Goblet of
Fire','WB','$896.9','$290.0','32.3%','$606.9','67.7%','2005');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('34','Spider-Man
3','Sony','$890.9','$336.5','37.8%','$554.3','62.2%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('35','Ice Age: Dawn of the
Dinosaurs','Fox','$886.7','$196.6','22.2%','$690.1','77.8%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('36','Harry Potter and the Chamber of
Secrets','WB','$879.0','$262.0','29.8%','$617.0','70.2%','2002');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('37','Ice Age: Continental
Drift','Fox','$877.2','$161.3','18.4%','$715.9','81.6%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('38','The Lord of the Rings: The Fellowship of the
Ring','NL','$871.5','$315.5','36.2%','$556.0','63.8%','2001^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('39','The Hunger Games: Catching
Fire','LGF','$864.9','$424.7','49.1%','$440.2','50.9%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('40','Star Wars: Episode III - Revenge of the
Sith','Fox','$848.8','$380.3','44.8%','$468.5','55.2%','2005^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('41','Transformers: Revenge of the
Fallen','P/DW','$836.3','$402.1','48.1%','$434.2','51.9%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('42','The Twilight Saga: Breaking Dawn Part
2','LG/S','$829.7','$292.3','35.2%','$537.4','64.8%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('43','Inception','WB','$825.5','$292.6','35.4%','$533.0','64.6%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('44','Spider-
Man','Sony','$821.7','$403.7','49.1%','$418.0','50.9%','2002');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('45','Independence
Day','Fox','$817.4','$306.2','37.5%','$511.2','62.5%','1996^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('46','Shrek the
Third','P/DW','$799.0','$322.7','40.4%','$476.2','59.6%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('47','Harry Potter and the Prisoner of
Azkaban','WB','$796.7','$249.5','31.3%','$547.1','68.7%','2004');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('48','E.T.: The Extra-
Terrestrial','Uni.','$792.9','$435.1','54.9%','$357.8','45.1%','1982^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('49','Fast & Furious
6','Uni.','$788.7','$238.7','30.3%','$550.0','69.7%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('50','Indiana Jones and the Kingdom of the Crystal
Skull','Par.','$786.6','$317.1','40.3%','$469.5','59.7%','2008');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('51','Spider-Man
2','Sony','$783.8','$373.6','47.7%','$410.2','52.3%','2004');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('52','Star
Wars','Fox','$775.4','$461.0','59.5%','$314.4','40.5%','1977^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('53','Guardians of the
Galaxy','BV','$774.2','$333.2','43.0%','$441.0','57.0%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('54','2012','Sony','$769.7','$166.1','21.6%','$603.6','78.4%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('55','Maleficent','BV','$758.4','$241.4','31.8%','$517.0','68.2%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('56','The Da Vinci
Code','Sony','$758.2','$217.5','28.7%','$540.7','71.3%','2006');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('57','The Amazing Spider-
Man','Sony','$757.9','$262.0','34.6%','$495.9','65.4%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('58','Shrek Forever
After','P/DW','$752.6','$238.7','31.7%','$513.9','68.3%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('59','The Hunger Games: Mockingjay - Part
1','LGF','$752.1','$337.1','44.8%','$415.0','55.2%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('60','X-Men: Days of Future
Past','Fox','$748.1','$233.9','31.3%','$514.2','68.7%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('61','Madagascar 3: Europe''s Most
Wanted','P/DW','$746.9','$216.4','29.0%','$530.5','71.0%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('62','The Chronicles of Narnia: The Lion, the Witch
and the Wardrobe','BV','$745.0','$291.7','39.2%','$453.3','60.8%','2005');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('63','Monsters
University','BV','$743.6','$268.5','36.1%','$475.1','63.9%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('64','The Matrix
Reloaded','WB','$742.1','$281.6','37.9%','$460.6','62.1%','2003');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('65','Up','BV','$731.3','$293.0','40.1%','$438.3','59.9%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('66','Gravity','WB','$716.4','$274.1','38.3%','$442.3','61.7%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('67','Captain America: The Winter
Soldier','BV','$714.8','$259.8','36.3%','$455.0','63.7%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('68','The Twilight Saga: Breaking Dawn Part
1','Sum.','$712.2','$281.3','39.5%','$430.9','60.5%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('69','The Twilight Saga: New
Moon','Sum.','$709.8','$296.6','41.8%','$413.2','58.2%','2009');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('70','Transformers','P/DW','$709.7','$319.2','45.0%','$390.5','55.0%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('71','The Amazing Spider-Man
2','Sony','$709.0','$202.9','28.6%','$506.1','71.4%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('72','Dawn of the Planet of the
Apes','Fox','$708.8','$208.5','29.4%','$500.3','70.6%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('73','The Twilight Saga:
Eclipse','Sum.','$698.5','$300.5','43.0%','$398.0','57.0%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('74','Mission: Impossible - Ghost
Protocol','Par.','$694.7','$209.4','30.1%','$485.3','69.9%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('75','The Hunger
Games','LGF','$691.2','$408.0','59.0%','$283.2','41.0%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('76','Forrest
Gump','Par.','$677.9','$330.3','48.7%','$347.7','51.3%','1994^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('77','The Sixth
Sense','BV','$672.8','$293.5','43.6%','$379.3','56.4%','1999');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('78','Interstellar','Par.','$672.7','$188.0','27.9%','$484.7','72.1%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('79','Man of
Steel','WB','$668.0','$291.0','43.6%','$377.0','56.4%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('80','Kung Fu Panda
2','P/DW','$665.7','$165.2','24.8%','$500.4','75.2%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('81','Ice Age: The
Meltdown','Fox','$660.9','$195.3','29.6%','$465.6','70.4%','2006');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('82','Pirates of the Caribbean: The Curse of the Black
Pearl','BV','$654.3','$305.4','46.7%','$348.9','53.3%','2003');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('83','Big Hero
6','BV','$652.0','$222.4','34.1%','$429.6','65.9%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('84','Star Wars: Episode II - Attack of the
Clones','Fox','$649.4','$310.7','47.8%','$338.7','52.2%','2002^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('85','Thor: The Dark
World','BV','$644.8','$206.4','32.0%','$438.4','68.0%','2013');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('86','Kung Fu
Panda','P/DW','$631.7','$215.4','34.1%','$416.3','65.9%','2008');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('87','The
Incredibles','BV','$631.4','$261.4','41.4%','$370.0','58.6%','2004');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('88','Fast
Five','Uni.','$626.1','$209.8','33.5%','$416.3','66.5%','2011');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('89','Hancock','Sony','$624.4','$227.9','36.5%','$396.4','63.5%','2008');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('90','MIB
3','Sony','$624.0','$179.0','28.7%','$445.0','71.3%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('91','Iron Man
2','Par.','$623.9','$312.4','50.1%','$311.5','49.9%','2010');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('92','Ratatouille','BV','$623.7','$206.4','33.1%','$417.3','66.9%','2007');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('93','How to Train Your Dragon
2','Fox','$618.9','$177.0','28.6%','$441.9','71.4%','2014');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('94','The Lost World: Jurassic
Park','Uni.','$618.6','$229.1','37.0%','$389.6','63.0%','1997');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('95','The Passion of the
Christ','NM','$611.9','$370.8','60.6%','$241.1','39.4%','2004^');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('96','Mamma
Mia!','Uni.','$609.8','$144.1','23.6%','$465.7','76.4%','2008');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('97','Life of
Pi','Fox','$609.0','$125.0','20.5%','$484.0','79.5%','2012');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('98','Madagascar: Escape 2
Africa','P/DW','$603.9','$180.0','29.8%','$423.9','70.2%','2008');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES ('99','Casino
Royale','Sony','$599.0','$167.4','28.0%','$431.6','72.0%','2006');
INSERT INTO
top_movies(rank,title,studio,worldwide,domestic_money,domestic_percent,overseas_mo
ney,overseas_percent,year) VALUES
('100','Tangled','BV','$591.8','$200.8','33.9%','$391.0','66.1%','2010');
FROM top_movies
GROUP BY studio;
FROM top_movies
GROUP BY studio;
FROM top_movies
GROUP BY studio;
SELECT year,overseas_percent
FROM top_movies
FROM top_movies
GROUP BY title
3.
QUERY
CREATE TABLE gente_famosa (id INTEGER PRIMARY KEY, nombre TEXT, salario INTEGER, edad
INTEGER );
INSERT INTO gente_famosa VALUES (3, "JOSE LUIS CANO", 150000, 63);
CREATE TABLE hobbies (id INTEGER PRIMARY KEY, nombre TEXT, gente_famosa_id INTEGER);
FROM gente_famosa
ON gente_famosa.id = hobbies.gente_famosa_id;
4.
QUERY
nombre TEXT,
edad INTEGER);
Visualizadores (sinco)
Analítica
------------------------------------------------------------------------------------------------------------------------------
Filezilla
Facilita la trasnferencia entre dos o mas servidores por un protocolo ftp
X o número = seguros
Programación en bash
Adminastrar Linux
R,Python,sql
GUÍA CORTA DE
IMPLEMENTACIÓN DE PROCESOS
TERADATA BI EN
SURAMERICANA
Con esta guía se busca exponer de manera general el funcionamiento de los
componentes que se utilizan para la implementación de un proceso en Teradata y los
pasos estándar que se tienen para su implementación. Para empezar, se ilustrará el
flujo de ejecución de un proceso estándar y los componentes que se utilizan: el
administrador de tareas Tivoli y el sistema de archivos de Teradata que contiene
todos los archivos (En esta guía solo se hará referencia a los ficheros SCO, Principal
y los pasos estándar).
TIVOLI: Es una herramienta desarrollada por IBM que permite a las organizaciones el
manejo automatizado de ambientes computacionales. Al interior del área de A&BI se
hace uso de esta herramienta para la administración de la ejecución de los procesos,
es decir, aquí se programa en que horarios y fechas se va a ejecutar cada proceso en
Teradata. Como se observa en la figura, Tivoli se enlaza con el sistema de archivos
de Teradata e invoca al SCO, posteriormente cuando el proceso finalice, recibe y
notifica el estado de la ejecución.
SCO: Es el script es el encargado de orquestar la invocación de los
scripts Principales, en este se realiza toda la validación de la existencia de los
archivos, la configuración de los logs, la iteración de los archivos planos necesarios
para correr el proceso y da respuesta a Tivoli de la ejecución.
Paso 100: En este paso se realizan la carga de archivos planos a las tablas de
Teradata, estos archivos pueden estar en dos formatos, separados por un delimitador
(En la actualidad : ~{\< ) o por longitud fija. Aquí se debe definir cuál es la estructura
(los campos) de la tabla temporal que se creará para cargar los datos, el esquema de
esta tabla debe ser igual a la estructura que se tiene en el archivo plano.
Paso 111: En este script se crean tablas temporales que serán usadas para
desarrollar toda la lógica necesaria para la preparación de los datos, esto incluye
cruces (joins), transformaciones de los tipos de datos, cálculos, entre otros. Al final,
debe quedar al menos una tabla cuyo esquema incluya la información que será
llevada a la tabla destino.
Paso 120: Este paso se realiza la verificación de la disponibilidad de las tablas a las
que se va a cargar la información en el Paso 150.
Paso 150: En este script se bloquea la tabla destino y se carga en ella la información
procesada en el Paso 111. Si se trata de un proceso que tiene en cuenta las
inconsistencias, las mismas son insertadas en la tabla destinada para tal fin.
Nota: Una inconsistencia se podría definir como un error en los datos provenientes de
la fuente de información, se produce por ejemplo, cuando falta la clave primaria de un
registro o cuando un código operativo que es importante no cruza correctamente con
un catálogo.
Paso 150error: En caso de error en el paso 150, este se encarga de liberar las tablas
bloqueadas en el proceso de carga.
Nota 2: En caso de que no sean suficientes estos pasos, se puede crear pasos
intermedios para realizar las operaciones necesarias.
Nota 3: Los archivos con el código de cada uno de los pasos se encuentran en la
ruta:
/home/cargas_tpt/scripts_carga
Pasos a seguir para la implementación de
un Proceso TPT
Que es un proceso tpt ?
Para consultar el nombre de los procesos se puede tomar como ejemplo la siguiente
consulta. (NOTA: Cambiar la letra I en la condición de like por la correspondiente al
negocio que pertenecerá el proceso)
select *
from sura_consultas.procesos_area_sujeto
Para registrar el proceso se puede hacer con la siguiente consulta, colocando los
valores correspondientes
INSERT INTO SURA_CONSULTAS.procesos_area_sujeto(Nombre_Proceso_Desc,Nombre_Area_Sujeto,De
scripcion_Proceso,Analista_Extraccion,Analista_Carga,Empleado_Id,Analista_Segundo,Job_Ext
raccion,Corriente_Extraccion,Job_Carga,Corriente_Carga,Complejidad_Desc,Cantidad_Pasos)
VALUES(
'PI140_SCENFM.sh',
'Materializada',
25853763,
'SCOI140_cga_SCENFM.sh',
'N/A',
'SCOI140_cga_SCENFM.sh',
'N/A',
'baja',
);
Uso de Plantillín
Con el objetivo de simplificar y estandarizar la implementación de los procesos se
desarrolló Plantillín. Esta es una herramienta que genera plantillas para procesos de
carga, creación de sumarizadas y materializadas. Para usar la herramienta se debe
antes crear un archivo de formato LPS (Lenguaje Plantillín Sura) o JSON con los
parámetros necesarios según lo que se desee hacer. Al ejecutar Plantillín, el resultado
será una serie de archivos, por ejemplo:
1. [Nombre del campo]: Es el nombre que tiene el nuevo campo y que debe
seguir los estándares de nombramiento de la compañía.
2. [Tipo del dato]: Define el tipo de dato que se almacenará en este campo y
debe coincidir con los formatos aceptados por Teradata, Ejemplo:
VARCHAR(20), TIMESTAMP(0), INTEGER.
3. [Configuración en stage]: Debe estar entre paréntesis, aquí se indica como
se comporta este campo en la tabla temporal, allí puede tener un nombre y tipo
de dato diferente al de la final, adicionalmente es posible indicar si será
primario o no. Ejemplos:
o (EN STAGE)
o (EN STAGE PRIMARIO)
o (EN STAGE Fecha_Sale DATE)
o (EN STAGE Valor_Pago DECIMAL(18,9) PRIMARIO)
4. [Configuración en la tabla final]: Indica si el campo llegará a la tabla final y
en caso tal de hacerlo, se puede indicar si es parte del índice primario.
Ejemplos:
o LLEVAR A TABLA FINAL COMO PRIMARIO
o LLEVAR A TABLA FINAL
o NO LLEVAR A TABLA FINAL
5. ([Configuraciones adicionales]): Son configuraciones extras que se le
pueden dar a la definición del campo en Teradata, uno de los más importantes
puede ser COMPRESS. Ejemplo:
o ("COMPRESS -1")
Luego de especificar todos los campos de la tabla, para especificar un cruce se deben
incluir en el archivo de configuración las siguientes entradas:
1. [Tipo de cruce]: Se debe indicar un tipo de cruce de los soportados por
Teradata. Por ejemplo, LEFT JOIN, INNER JOIN.
2. [Base de datos].[Nombre de la tabla]: Se especifica la base de datos y el
nombre de la tabla con la que se quiere hacer JOIN (NOTA: Generalmente se
hace JOIN con las vistas).
3. CRUZAR POR: Indica que se iniciará la lista de los campos por los que se hará
el cruce.
4. [Condiciones del cruce]: Se deben listar las condiciones para hacer el cruce y
que quedarán en la sección ON del JOIN, en caso de ser campos homónomos
se puede poner solo una vez el nombre del campo. Multiples condiciones del
cruce deben ir separadas por el conector 'y' Ejemplos:
o (Temp.Codigo_Tipo_Ayu_Op != TIP.Codigo_Tipo_Ayu_Op)
o (Codigo_Ciudad_Op y Codigo_Departamento_Op)
o (Codigo_Ayuda_Op y Temp.Codigo_Sucursal_Atiende_Op =
AYU.Codigo_Sucursal_Op) Nota: En la actualidad no se soporta
condiciones con valores estáticos o 'quemados', los mismos deben ser
agregados al final en el paso 111.
5. [Lista de campos que serán incluidos en la final]: Es una lista de campos,
cada línea debe iniciar con guión seguido por el nombre del campo que se
traerá, adicionalmente se puede especificar un alias (nombre que tendrá en la
tabla final), el tipo del dato o si será primario en la tabla final. Ejemplo:
o - Tipo_Ayu_Id INTEGER PRIMARIO EN LA FINAL
o - Cliente_Id BIGINT NO PRIMARIO EN LA FINAL
o - Sucursal_Id AS Sucursal_Atiende_Id BIGINT
...
- Mes_Id INTEGER
En caso de tener dudas sobre los conceptos propios de Teradata, podrá encontrar
una guia en el siguiente enlace:
http://inboggit01.suramericana.com.co:8080/gitbucket/BI/Tutoriales
Ejecución de Plantillín
Despues de realizar el archivo de configuración de Plantillín como se presentó
anteriormente se debe ejecutar el programa para que se generen los archivos. Para
esto se debe abrir una terminal/consola y ubicarse en el directorio donde está
localizado Plantillín y ejecutarlo especificando el nombre del archivo de configuración.
A continuación se muestra un ejemplo de la ejecución, en este caso el archivo de
configuración se llama conf2.lps.
plantillin.bat conf2.lps
Al realizar esta ejecución se crea una carpeta llamada output, y esta contiene todos
los archivos generados.