Есть ли способ выяснить таблицы, к которым обращается запрос снежинки? - PullRequest
0 голосов
/ 26 мая 2020

Я просмотрел таблицу SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY, но предоставленная информация - это имя базы данных. Есть ли способ в Snowflake получить имена таблиц, к которым обращается запрос? Я не ищу решения, связанного с анализом строки запроса, поскольку это действительно сложно.

1 Ответ

0 голосов
/ 26 мая 2020

Чтобы увидеть, к каким таблицам обращался исторический запрос, вы можете go перейти на вкладку «История», щелкнуть идентификатор запроса, а затем щелкнуть профиль. Для запросов, которые вы собираетесь выполнить, вы можете увидеть, к каким таблицам он будет получать доступ, набрав «объяснить» перед запросом. Это приведет к созданию набора результатов метаданных со списком таблиц, из которых запрос будет читать в дополнение к другой информации.

Изменить: если объяснение дает очень длинный набор результатов, и вы хотите отфильтровать его только до затронутых таблиц, вы можете сделать что-то вроде этого:

-- Generate the explain metadata reult set
explain select * from MY_VIEW;

-- Filter to just affected tables
select distinct "objects" as TABLE_NAME
from table(result_scan(last_query_id())) 
where "operation" ilike '%table%' and "objects" is not null;
...