Slide 78
Slide 78 text
©2018 Wantedly, Inc.
DB splitting ӨڹՕॴΛݟಀ͞ͳ͍
select
caller_line,
collect_set(table) as base_tables,
collect_set(t) as joined_tables_or_queries,
collect_set(class) as classes,
collect_set(request) as requests,
collect_set(caller) as callers
from (
select
*,
substring_index(caller, ':', 2) as caller_line,
concat(request_controller, '#', request_action) as request
from
join_queries
lateral view
explode(joins) tmp as t
where
td_time_range(time, '2017-11-08 00:00:00', '2017-11-15 00:00:00')
and (
(
table not in ('profiles', ..., 'working_histories', ...)
and (
t = 'profile'
or instr(t, 'profiles') != 0
-- ...
or t = 'working_history'
or instr(t, 'working_histories') != 0
-- ...
)
)
or
-- ...
)
order by time desc
) queries
group by caller_line
‣ ͬ͟ͱूܭ͢Δ
DBMMFSͰHSPVQCZ
+0*/ઌͱݩͷͲͪΒ͔͚ͩʹׂର͕ೖ͍ͬͯΔΫΤϦ
‣ ଟগࡶͰ0,
ޡݕग़࠷ѱͳ͍ʢࣗͷνΣοΫର͕૿͑Δ͚ͩʣ
࿙Ε͕ແ͍Α͏ʹؾΛ͚ͭͯ42-ॻ͘