hiveのwith使い方
7131 ワード
hiveはwithクエリーでクエリーのパフォーマンスを向上させることができます.with構文でデータをメモリにクエリーし、その後、他のクエリーで直接使用できるためです.
with
q1
as
(
select
key
from
src
where
key
=
'5'
)
select
*
from
q1;
-- from style
with
q1
as
(
select
*
from
src
where
key
=
'5'
)
from
q1
select
*;
-- chaining CTEs
with
q1
as
(
select
key
from
q2
where
key
=
'5'
),
q2
as
(
select
key
from
src
where
key
=
'5'
)
select
*
from
(
select
key
from
q1) a;
-- union example
with
q1
as
(
select
*
from
src
where
key
=
'5'
),
q2
as
(
select
*
from
src s2
where
key
=
'4'
)
select
*
from
q1
union
all
select
*
from
q2;
-- insert example
create
table
s1
like
src;
with
q1
as
(
select
key
, value
from
src
where
key
=
'5'
)
from
q1
insert
overwrite
table
s1
select
*;
-- ctas example
create
table
s2
as
with
q1
as
(
select
key
from
src
where
key
=
'4'
)
select
*
from
q1;
-- view example
create
view
v1
as
with
q1
as
(
select
key
from
src
where
key
=
'5'
)
select
*
from
q1;
select
*
from
v1;
-- view example, name collision
create
view
v1
as
with
q1
as
(
select
key
from
src
where
key
=
'5'
)
select
*
from
q1;
with
q1
as
(
select
key
from
src
where
key
=
'4'
)
select
*
from
v1;