forked from soyHenry/DS-M4-Herramientas_Big_Data
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Paso03.hql
354 lines (320 loc) · 6.35 KB
/
Paso03.hql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
CREATE DATABASE IF NOT EXISTS integrador2;
USE integrador2;
DROP TABLE IF EXISTS compra;
CREATE EXTERNAL TABLE IF NOT EXISTS compra (
IdCompra INTEGER,
Fecha DATE,
IdProducto INTEGER,
Cantidad INTEGER,
Precio FLOAT,
IdProveedor INTEGER
)
STORED AS PARQUET
LOCATION '/data2/compra'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO compra
SELECT
IdCompra,
Fecha,
IdProducto,
Cantidad,
Precio,
IdProveedor
FROM
integrador.compra;
DROP TABLE IF EXISTS gasto;
CREATE EXTERNAL TABLE IF NOT EXISTS gasto (
IdGasto INTEGER,
IdSucursal INTEGER,
Fecha DATE,
Monto FLOAT
)
PARTITIONED BY(IdTipoGasto INTEGER)
STORED AS PARQUET
LOCATION '/data2/gasto'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO gasto
PARTITION(IdTipoGasto=1)
SELECT
IdGasto,
IdSucursal,
Fecha,
Monto
FROM integrador.gasto
WHERE IdTipoGasto=1;
INSERT INTO gasto
PARTITION(IdTipoGasto=2)
SELECT
IdGasto,
IdSucursal,
Fecha,
Monto
FROM integrador.gasto
WHERE IdTipoGasto=2;
INSERT INTO gasto
PARTITION(IdTipoGasto=3)
SELECT
IdGasto,
IdSucursal,
Fecha,
Monto
FROM integrador.gasto
WHERE IdTipoGasto=3;
INSERT INTO gasto
PARTITION(IdTipoGasto=4)
SELECT
IdGasto,
IdSucursal,
Fecha,
Monto
FROM integrador.gasto
WHERE IdTipoGasto=4;
DROP TABLE IF EXISTS tipo_gasto;
CREATE EXTERNAL TABLE IF NOT EXISTS tipo_gasto (
IdTipoGasto INTEGER,
Descripcion VARCHAR(50),
Monto_Aproximado FLOAT
)
STORED AS PARQUET
LOCATION '/data2/tipodegasto'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO tipo_gasto
SELECT
IdTipoGasto,
Descripcion,
Monto_Aproximado
FROM integrador.tipo_gasto;
DROP TABLE IF EXISTS venta;
CREATE EXTERNAL TABLE IF NOT EXISTS venta (
IdVenta INTEGER,
Fecha DATE,
Fecha_Entrega DATE,
IdCanal INTEGER,
IdCliente INTEGER,
IdSucursal INTEGER,
IdEmpleado INTEGER,
IdProducto INTEGER,
Precio FLOAT,
Cantidad INTEGER
)
STORED AS PARQUET
LOCATION '/data2/venta'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO venta
SELECT
IdVenta,
Fecha,
Fecha_Entrega,
IdCanal,
IdCliente,
IdSucursal,
IdEmpleado,
IdProducto,
Precio,
Cantidad
FROM integrador.venta;
DROP TABLE IF EXISTS canal_venta;
CREATE EXTERNAL TABLE IF NOT EXISTS canal_venta (
IdCanal INTEGER,
Canal VARCHAR(50)
)
STORED AS PARQUET
LOCATION '/data2/canaldeventa'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO canal_venta
SELECT
IdCanal,
Canal
FROM integrador.canal_venta;
DROP TABLE IF EXISTS cliente;
CREATE EXTERNAL TABLE IF NOT EXISTS cliente (
IdCliente INTEGER,
Provincia VARCHAR(50),
Nombre_y_Apellido VARCHAR(80),
Domicilio VARCHAR(150),
Telefono VARCHAR(30),
Edad VARCHAR(5),
Localidad VARCHAR(80),
Longitud FLOAT,
Latitud FLOAT
)
STORED AS PARQUET
LOCATION '/data2/cliente'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO cliente
( idcliente,
provincia,
nombre_y_apellido,
domicilio,
telefono,
edad,
localidad,
longitud,
latitud)
SELECT
ID,
Provincia,
Nombre_y_Apellido,
Domicilio,
Telefono,
Edad,
Localidad,
REPLACE(Y, ',', '.'),
REPLACE(X, ',', '.')
FROM integrador.cliente;
DROP TABLE IF EXISTS producto;
CREATE EXTERNAL TABLE IF NOT EXISTS producto (
IdProducto INTEGER,
Descripcion VARCHAR(100),
Tipo VARCHAR(50),
Precio FLOAT
)
STORED AS PARQUET
LOCATION '/data2/producto'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO producto
(idproducto,
descripcion,
tipo,
precio)
SELECT
IdProducto,
Concepto,
Tipo,
REPLACE(Precio, ',', '.')
FROM integrador.producto;
DROP TABLE IF EXISTS empleado;
CREATE EXTERNAL TABLE IF NOT EXISTS empleado (
CodigoEmpleado INTEGER,
Apellido VARCHAR(50),
Nombre VARCHAR(80),
Sucursal VARCHAR(150),
Sector VARCHAR(30),
Cargo VARCHAR(30),
Salario FLOAT
)
STORED AS PARQUET
LOCATION '/data2/empleado'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO empleado
(codigoempleado,
apellido,
nombre,
sucursal,
sector,
cargo,
salario)
SELECT
ID_empleado,
Apellido,
Nombre,
Sucursal,
Sector,
Cargo,
REPLACE(Salario. ',', '.')
FROM integrador.empleado;
DROP TABLE IF EXISTS sucursal;
CREATE EXTERNAL TABLE IF NOT EXISTS sucursal (
IdSucursal INTEGER,
Sucursal VARCHAR(40),
Domicilio VARCHAR(150),
Localidad VARCHAR(80),
Provincia VARCHAR(50),
Latitud FLOAT,
Longitud FLOAT
)
STORED AS PARQUET
LOCATION '/data2/sucursal'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO sucursal
SELECT
IdSucursal,
Sucursal,
Domicilio,
Localidad,
Provincia,
REPLACE(Latitud, ',', '.'),
REPLACE(Longitud, ',', '.')
FROM integrador.sucursal;
DROP TABLE IF EXISTS calendario;
CREATE EXTERNAL TABLE calendario (
id INTEGER,
fecha DATE,
anio INTEGER,
mes INTEGER,
dia INTEGER,
trimestre INTEGER,
semana INTEGER,
dia_nombre VARCHAR(9),
mes_nombre VARCHAR(9)
)
STORED AS PARQUET
LOCATION '/data2/calendario'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO calendario
SELECT
id,
fecha,
anio,
mes,
trimestre,
semana,
dia_nombre,
mes_nombre
FROM integrador.calendario;
DROP TABLE IF EXISTS proveedor;
CREATE EXTERNAL TABLE IF NOT EXISTS proveedor (
IDProveedor INTEGER,
Nombre VARCHAR(40),
Address VARCHAR(150),
City VARCHAR(80),
State VARCHAR(50),
Country VARCHAR(20),
departamen VARCHAR(50)
)
STORED AS PARQUET
LOCATION '/data2/proveedor'
TBLPROPERTIES ('parquet.compression'='SNAPPY');
INSERT INTO proveedor
SELECT
IdProveedor ,
Nombre,
Direccion,
Ciudad,
Provincia,
Pais,
Departamento
FROM integrador.proveedor;
--particiones
DROP TABLE trips_part;
CREATE EXTERNAL TABLE trips_part(
bikeid INT,
checkout_time STRING,
duration_minutes INT,
end_station_id INT,
end_station_name STRING,
start_station_id INT,
start_station_name STRING,
start_time TIMESTAMP,
subscriber_type STRING,
trip_id BIGINT,
year INT
)
PARTITIONED BY(month INT)
LOCATION '/user/instructor/data/bikeshare/trips_part/';
-- Ejecutar de 1 a 12
INSERT INTO trips_part
PARTITION(month=12)
SELECT bikeid,
checkout_time,
duration_minutes,
end_station_id,
end_station_name,
start_station_id,
start_station_name,
start_time,
subscriber_type,
trip_id,
year_modif
FROM trips_ok
WHERE month_modif = 12;