Сохранение 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 вы можете прочитать здесь.