Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггеры - ограничения и проблемы от них для DWH / 9 сообщений из 9, страница 1 из 1
03.11.2016, 14:52
    #39340865
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
Принято считать, что триггеры (FK, индексы, ...) для DWH - зло (замедляют работу).

Есть такая статья

Ask Tom - The Trouble with Triggers
http://www.oracle.com/technetwork/articles/o58asktom-101055.html

и такое обсуждение
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2575882200346616184

Вопросы, в них не поднятые:

1) почему триггеры - зло для DWH, и насколько количественно они - зло
знаете ссылки на авторитетные статьи?

2) какие ограничения накладывает добавление к таблице триггера.
например, здесь
https://docs.oracle.com/cd/B28359_01/server.111/b28313/usingpe.htm
указано:
Parallel DML operations cannot be done on tables with triggers

интересно, что в доке для 11.2 этого предложения нет...
...
Рейтинг: 0 / 0
03.11.2016, 16:28
    #39340972
Melkomyagkii_newbi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
Табличные триггеры вообще имхо зло. Почти все можно и без них сделать, про них легче забыть и сделать сложно обратимые изменения нечаянно(при импорте каком-нибудь например). Если архитектура на них сильно завязана, то усложняются ad hoc изменения данных, да и код менять в такой системе становится сложнее.

Про FK, индексы не понятно..
...
Рейтинг: 0 / 0
03.11.2016, 16:32
    #39340977
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
Alexus12,

Одно из оснований это то что в двх в основном батч загрузки, которые должны быть как можно быстрее. И собственно говоря кто будет вещать построчный триггер для какой нибудь обработки на стейджинг таблицу, который убьет весь перформанс, когда есть batch-ETL.
...
Рейтинг: 0 / 0
03.11.2016, 17:59
    #39341069
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
ora601,
вот в высших кругах появилась идея повесить проверку качества данных на такой триггер - и прямо при загрузке сигналить о кривых данных... триггером!

нужно авторитетное обоснование, почему так нельзя (и насколько это ухудшает перформанс)
...
Рейтинг: 0 / 0
03.11.2016, 18:25
    #39341091
Триггеры - ограничения и проблемы от них для DWH
А зачем нужны неверные данные? Даже быстро загруженные?
...
Рейтинг: 0 / 0
03.11.2016, 19:51
    #39341146
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
Alexus121) почему триггеры - зло для DWH, и насколько количественно они - зло
знаете ссылки на авторитетные статьи?Почему ты решил, что авторитетные люди будут тратить время, чтоб расжевывать тривиальные вещи?
Неужели так сложно загрузить пачку данных в таблицу, а потом повторить эксперимент уже с триггером и сравнить время?
Увидеть что отличается в n раз и успокоиться.
Alexus122) какие ограничения накладывает добавление к таблице триггера.
например, здесь
https://docs.oracle.com/cd/B28359_01/server.111/b28313/usingpe.htm
указано:
Parallel DML operations cannot be done on tables with triggers

интересно, что в доке для 11.2 этого предложения нет... Restrictions on Parallel Direct Path Loads 11.2
Alexus12и прямо при загрузке сигналить о кривых данных... триггером!Откройте для себя oracle error logging clause и верхам передайте.
...
Рейтинг: 0 / 0
07.11.2016, 10:51
    #39342419
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
постит труизмыА зачем нужны неверные данные? Даже быстро загруженные?
Верные, неверные, зависит от мнения валидатора, которое может меняться
Не стоит смешивать загрузку данных и проверку их качества, это разные процессы.
...
Рейтинг: 0 / 0
07.11.2016, 12:30
    #39342496
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
dbms_photoshop,

спасибо за наводку на DML error logging, но есть траблы в нашем случае с его применением:

1) есть Restrictions:

The DML error logging functionality is not invoked when:
•Deferred constraints are violated.
•Direct-path INSERT or MERGE operations raise unique constraint or index violations.
•UPDATE or MERGE operations raise a unique constraint or index violation.

In addition, the tracking of errors in LONG, LOB and object types is not supported, although a table containing these columns can be the target of error logging.

2) проверки, заказанные бизнесом, легко могут выходить за рамки (простых) ограничений, которые ставятся на таблицу (нарушения уникальности и т.п.),
причем постановка от разных заказчиков может быть разной (что один посчитает ошибкой - другому не ошибка)

3) запись в таблице все равно должна появляться, независимо от того, сбойная ли она (принцип "собрать все - затем проверять")
...
Рейтинг: 0 / 0
07.11.2016, 12:46
    #39342516
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры - ограничения и проблемы от них для DWH
Alexus12•Deferred constraints are violated.Было бы интересно узнать "разумные" случаи применения Deferred.
В подавляющем большинстве раз когда приходилось иметь с ними дело это были "костыли".
Alexus12•Direct-path INSERT or MERGE operations raise unique constraint or index violations.
•UPDATE or MERGE operations raise a unique constraint or index violation.Это важный момент. Тем не менее на 11.2 всё работает. Хотя были какие-то моменты.
Alexus12In addition, the tracking of errors in LONG, LOB and object types is not supported, although a table containing these columns can be the target of error logging.В вашем случае это проблема? Интересно. :))

Alexus122) проверки, заказанные бизнесом, легко могут выходить за рамки (простых) ограничений, которые ставятся на таблицу (нарушения уникальности и т.п.)Есть еще check constrains для проверки в рамках строки.
А если проверка выходит за рамки строки и это не что-то тривиальное типа уникальности, то лучше делать pre-/post-processing.
Но явно не триггеры.
Alexus12причем постановка от разных заказчиков может быть разной (что один посчитает ошибкой - другому не ошибка)При попытке техническими методами решать проблемы хренового анализа система со временем превращается в не сопровождаемый непонятный ад.
Alexus123) запись в таблице все равно должна появляться, независимо от того, сбойная ли она (принцип "собрать все - затем проверять")Во-первых, "кривые" строки все уходят в таблицу с ошибками, а не просто игнорируются.
Во-вторых, во многих организациях существует поэтапный подход.
Сначала абсолютно все грузится в так называемую стейджинговую схему. Затем чистые данные переливаются в схему для отчетности.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггеры - ограничения и проблемы от них для DWH / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]