#metadata #snowflake-cloud-data-platform
Вопрос:
Источник #1 из 3 — https://docs.snowflake.com/en/user-guide/data-load-considerations-load.html#load-metadata говорит —
«Snowflake поддерживает подробные метаданные для каждой таблицы, в которую загружаются данные… Срок действия этих метаданных загрузки истекает через 64 дня …», за которым следует объяснение параметра копирования LOAD_UNCERTAIN_FILES. Этот параметр сообщает Snowflake, загружать или нет файлы, метаданные которых, которым более 64 дней, были удалены.
#2 из 3 — https://docs.snowflake.com/en/user-guide/data-load-local-file-system-copy.html#monitoring-files-staged-internally говорит —
«Snowflake сохраняет исторические данные для КОПИРОВАНИЯ в команды, выполненные в течение предыдущих 14 дней… Используйте представление схемы информации LOAD_HISTORY для получения истории данных, загруженных в таблицы, с помощью команды КОПИРОВАТЬ В «
#3 из 3 — https://docs.snowflake.com/en/sql-reference/account-usage/copy_history.html#copy-history-view говорит —
«Это представление использования учетной записи можно использовать для запроса истории загрузки данных Snowflake за последние 365 дней (1 год). В представлении отображается активность загрузки как для инструкций COPY INTO, так и для непрерывной загрузки данных с помощью Snowpipe. Представление позволяет избежать ограничения в 10 000 строк представления LOAD_HISTORY. «
Вопрос № 1 № 3, похоже, заменяет № 2, поскольку продолжительность составляет 365 дней, и он поддерживает метаданные не только для массовых загрузок, но и для непрерывной загрузки. Кроме того, по-видимому, для # 2 существует ограничение по строке. Представление в # 3 по умолчанию доступно только роли ACCOUNTADMIN. Но если у Snowflake есть информация за последние 365 дней, зачем принудительно использовать LOAD_UNCERTAIN_FILES всего через 64 дня?
Вопрос № 2 Не являются ли источники № 1 и 2 несовместимыми?
Ответ №1:
Наиболее важным числом для поведения копирования файлов в таблицы является 64 дня. Если вы запустите COPY INTO
команду со сцены, не ограничивая файлы списком или шаблоном, Snowflake не будет перезагружать файл, загруженный в течение предыдущих 64 дней.
Вы можете переопределить это, используя FORCE = TRUE в параметрах копирования, https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#copy-options-copyoptions . Это заставит его загружать файлы независимо от того, помечены они как загруженные или нет.
При выполнении следующих трех условий для целей команды КОПИРОВАТЬ В Snowflake не знает, был ли файл уже загружен или нет:
- Дата LAST_MODIFIED файла (т. Е. Дата, Когда Файл был создан) старше 64 дней.
- Первоначальный набор данных был загружен в таблицу более чем на 64 дня раньше.
- Если файл уже был успешно загружен в таблицу, это
событие произошло более чем на 64 дня раньше.
В этих условиях применяется параметр LOAD_UNCERTAIN_FILES .
Два других раза касаются отчетов, а не поведения команды COPY INTO . 14 дней для LIST
LS
возвращаемой информации команды or . 365 дней предназначены для передачи данных от Snowflake клиентам через базу данных «snowflake». Для отображения данных в этой базе данных может потребоваться от 15 минут до 3 часов, в зависимости от рассматриваемого представления. После этого он остается в течение 365 дней.
Комментарии:
1. Спасибо @Greg Pavlik, ваше разъяснение 3-часовой задержки в базе данных snowflake было полезным, и ваше повторное изложение цели, стоящей за 3 интерфейсами как таковыми.