1: Ваш вопрос утверждает, что после периода бездействия не указывается, что такое период бездействия.
"после периода бездействия, в следующий раз, когда я пытаюсь получить историю запросов - историю это было до того, как приостановка хранилища исчезла. "
Если прошло более 7 дней, данные можно найти в таблице account_usage. Ниже приведена ссылка на разницу между INFORMATION_SCHEMA и ACCOUNT_USAGE.
https://docs.snowflake.com/en/sql-reference/account-usage.html#differences между схемой использования-информации-счета-счета
2: Ваш запрос не соответствует укажите USER_NAME или WAHREHOUSE_NAME в своем запросе, чтобы, возможно, до того, как вывод ваших запросов до приостановки хранилища мог превысить 4-часовой период, как в вашем предикате. Если вы можете увеличить период времени и проверить, сохраняется ли поведение.
3: В общем случае не рекомендуется запрашивать INFORMATION_SCHEMA для получения истории запросов, если только приложению не требуются данные без каких-либо задержек. Если возможно, используйте таблицу ACCOUNT_USAGE для получения информации истории запросов.
Вот что я сделал.
1: Создан склад XS
2: Установите auto_suspend на 5 минут
3: Выполнено несколько запросов
4: Выполнен запрос (в котором не указано имя_пользователя или имя_хранилища), что означает, что вы ищете историю всех пользователей.
SELECT "QUERY_TEXT", "DATABASE_NAME", "SCHEMA_NAME", "QUERY_TYPE", "USER_NAME", "ROLE_NAME", "EXECUTION_STATUS", "ERROR_CODE", "START_TIME", "END_TIME", "TOTAL_ELAPSED_TIME", "BYTES_SCANNED", "ROWS_PRODUCED"
FROM table(MY_DATABASE.information_schema.query_history(end_time_range_start=>dateadd(HOUR, -4, current_timestamp()), current_timestamp()))
5: возвращен вывод нескольких 100 записей.
6: Использовал дополнительное условие where для проверки данных моего пользователя, который выполнил несколько запросов перед auto_suspend для Warehouse и возвратил несколько записей.
SELECT "QUERY_TEXT", "DATABASE_NAME", "SCHEMA_NAME", "QUERY_TYPE", "USER_NAME", "ROLE_NAME", "EXECUTION_STATUS", "ERROR_CODE", "START_TIME", "END_TIME", "TOTAL_ELAPSED_TIME", "BYTES_SCANNED", "ROWS_PRODUCED"
FROM table(MY_DATABASE.information_schema.query_history(end_time_range_start=>dateadd(HOUR, -4, current_timestamp()), current_timestamp())) WHERE USER_NAME = 'ADITYA'
7: Подождал 10 минут, чтобы мой склад был auto_suspended.
8: Повторите пункт 5 и пункт 6, и он снова вернул записи, как и ожидалось.