#snowflake-cloud-data-platform
Вопрос:
Пытаюсь написать процедуру для выполнения ежедневной проверки ограничений в таблице Snowflake.
В основном проверьте PK/Уникальную проверку, целостность ссылок и проверку допустимых значений.
Для ПК/Уникальный: Performing basic SELECT PK_COL FROM TABLE GROUP BY PK_COL HAVING COUNT(*)>1
Для FK/Ссылочных: SELECT FK_ID FROM TABLE_1 WHERE NOT EXISTS(SELECT 1 FROM TABLE_2 WHERE FK_ID=PK_ID)
Для Допустимых Значений: SELECT COLUMN_VALUE FROM TABLE GROUP BY 1 MINUS SELECT VALID_VALUE FROM DUAL
Мой вопрос заключается в том, чтобы понять, есть ли какой-либо другой лучший способ, который является экономически эффективным и использует меньше кредитов, поскольку этот процесс будет выполняться ежедневно.
Комментарии:
1. Эти запросы выглядят правильными, но для оптимизации нам нужно получить дополнительную информацию: сколько времени они занимают сейчас? Какова форма существующих данных? Как данные будут меняться ежедневно?
2. Мы имеем дело с DWH корпоративного класса с миллионами записей в таблице. Сейчас они не занимают так много времени, но у нас нет данных о непрерывном запуске.
3. Привет, Анкит, вы рассматривали возможность использования потоков поверх любой таблицы при выполнении проверок RI? Вы можете иметь столько потоков поверх таблиц, сколько захотите, без ограничений; таким образом, вы только сверяете новые строки с другой таблицей. Я использую этот подход при проверке соответствия таблиц-спутников моего хранилища данных родительскому концентратору или таблице ссылок