Необходимо повернуть матрицу, чтобы выполнить интерполяцию интервалов/интервалов TIMESERIES, и хотелось бы избежать беспорядочного подхода UNION ALL. Есть ли что-то вроде функции HATER LATERAL VIEW EXPLODE, доступной в Vertica?Vertica - Есть ли функция LATERAL VIEW?
EDIT: @marcothesane - спасибо за ваш интересный сценарий - мне нравится ваш подход к интерполяции. Я буду играть с ним больше и посмотреть, как это происходит. Выглядит многообещающе.
FYI - вот решение, с которым я столкнулся - мой сценарий заключается в том, что я пытаюсь просматривать использование памяти с течением времени по запросу (и пул пользователей/ресурсов и т. Д., В основном пытающийся получить показатель стоимости) , Мне нужно сделать интерполяцию, чтобы я мог видеть общее использование в любой момент времени. Итак, вот мой запрос, который делает временные ряды нарезкой на секунду, а затем агрегаты, чтобы дать метрику «Megabyte_Seconds» поминутно.
with qry_cte as
(
select
session_id
, request_id
, date_trunc('second',start_timestamp) as dat_str
, timestampadd('ss'
, ceiling(request_duration_ms/1000)::int
, date_trunc('second',start_timestamp)
) as dat_end
, ceiling(request_duration_ms/1000)::int as secs
, memory_acquired_mb
from query_requests
where request_type = 'QUERY'
and request_duration_ms > 0
and memory_acquired_mb > 0
)
select date_trunc('minute',slice_time) as dat_minute
, count(distinct session_id || request_id::varchar) as queries
, sum(memory_acquired_mb) as mb_seconds
from (
select session_id, request_id, slice_time, ts_first_value(memory_acquired_mb) as memory_acquired_mb
from (
select session_id, request_id, dat_str as dat, memory_acquired_mb from qry_cte
union all
select session_id, request_id, dat_end as dat, memory_acquired_mb from qry_cte
) x
timeseries slice_time as '1 second' over (partition by session_id, request_id order by dat)
) x
group by 1 order by 1 desc
;
Как вы можете легко проверить: есть нет таких "LATERAL VIEW взрываются" в Vertica SQL Reference Manual. Но ... если вы добавите образцы входных данных и желаемый результат, кто-то сможет найти решение. – mauro