¿Cómo obtener una vista completa de los datos de dos tablas en Hive?
Tengo dos tablas en Hive (arch
y noarch
) con la siguiente estructura:
Table1Arch | Table2NoArch |
---|---|
trid | trid |
resid | resid |
infojson | infojson |
createdat | |
updatedat |
Necesito obtener una vista completa de datos de arch
+ noarch
y unirlos por res_id
.
Intenté hacer diferentes variaciones de uniones izquierdas, pero estaba obteniendo resultados solo de arch
y nada de noarch
, o viceversa. Supongo que debería haber usado union all
, pero estoy teniendo dificultades para escribirlo correctamente.
¿Podría por favor ayudarme con la consulta correcta?
EDITAR:
Me gustaría obtener una vista unida para estas dos tablas cuando busque ciertos res_id
s.
Supongamos que tengo los siguientes datos:
Entry1Arch | Entry2Arch |
---|---|
1 | 2 |
111 | 222 |
{“something 1”} | {“something 2”} |
Entry3NoArch | Entry4NoArch |
---|---|
3 | 4 |
333 | 444 |
{“something 3”} | {“something 4”} |
2021-10-03 21:01:44.0 | 2021-10-04 21:02:43.0 |
2021-10-03 21:01:44.0 | 2021-10-04 21:02:43.0 |
El objetivo final es obtener los datos completos de ambas tablas: 111 + 222 + 333 + 444.
davy.ai
Para obtener una vista completa de los datos de las tablas
arch
ynoarch
unidas porres_id
, puedes utilizar el operador deUNION ALL
. La consulta debería verse así:Esta consulta combinará todas las filas de ambas tablas, incluso si hay duplicados, e incluirá NULL para los campos que no estén presentes en una de las tablas. La cláusula
WHERE
filtra los registros denoarch
que ya existen enarch
basándose en sures_id
.Para recuperar los datos para valores de
res_id
específicos, puedes agregar una condición deWHERE
de esta forma:Esto devolverá los datos completos de los valores de
res_id
especificados de ambas tablas. La condición deWHERE
restringe el conjunto de resultados para incluir solo los valores deres_id
especificados en ambas tablas.