Сохранение federated query как view
Сильной стороной Data Virtualization является возможность построения так называемых федеративных запросов (federated query
), то есть запросов, которые объединяют в себе различные источники данных (каталоги в терминах системы).
Такой запрос может быть весьма сложным и, наверное, может представлять ценность сам по себе. Например, для использования его как самостоятельной таблицы для дальнейшей работы.
В традиционных СУБД мы можем использовать для этих целей View
, но View
− это сущность в той или иной базе данных. Можно ли создать что-то похожее в Trino? Да, можно!
Сущность называется так же, то есть мы просто можем создать View
, но есть один нюанс: сделать это можно лишь в каталоге, который использует Hive MetaStore.
То есть, если ваш запрос объединяет в себе данные, например, из кластеров GreenPlum и ClickHouse вы всё равно можете создать View
, но лишь в перечисленных выше каталогах. Вот пример такого запроса:
create view hive.dv_wrk.demo_view as (select
from_utf8(bd_cat_name) as cat_name,
sum(request_cnt) AS cnt
from
hive.netscout_cdm.agg_host_d host_d
join
ch_demo.default.v_catalog_2gis_domains gis
on host_d.host_name=from_utf8(gis.domain)
AND host_d.business_dt=date('2023-03-01')
group by
bd_cat_name
order by cnt desc);
,где hive.dv_wrk
− база данных в Hive MetaStore, к которой у пользователя есть доступ.
Более подробно о SQL синтаксисе и нюансах доступа при создании View
в Trino вы можете прочитать здесь.