powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Vertica, ETL, Stored Procedures
6 сообщений из 6, страница 1 из 1
Vertica, ETL, Stored Procedures
    #39243562
Guests
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю хранилище на Vertica:
Sources -> (1) Stage -> (2) Detail Data -> (3) Data Marts.

На этапе 3 выполняются достаточно сложные расчёты для производных показателей. Например, агрегаты из множества таблиц с детальными данными за длительный период. В BI посчитать не вариант, 1-2-мя сложными селектами не всегда получается ограничиться. В Oracle для этих целей использовал stored proc с подключением их в цепочку ETL, а в Vertica sp нет.

Подскажите, как такое правильно делать в Vertica.
...
Рейтинг: 0 / 0
Vertica, ETL, Stored Procedures
    #39243588
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делайте расчеты в ETL/ELT инструментах. Думаю понимаете, что никаких курсоров, все считать масс запросами. Для сложных вычислений можно использовать локальные временные таблицы для хранения промежуточных результатов, но помните, что они висят в памяти и кушают с ресурсного пула. Если промежуточные результаты сжирают гигабайты памяти, то лучше их класть в постоянные таблицы, которые перед использованием можно транкейтить.

Правильная схема в Вертике жизни до расчетов:
загрузка первички

фиксация в мониторинге загруженных данных

определение по мониторингу, что уже можно посчитать

расчет витрин и показателей

использование в BI

Однако, есть неприятные моменты, когда считать надо по требованию. Не комментируя, правильно ли это или нет, могу подсказать несколько решений:
1. В мониторе делается флаг требования расчета. Джоб ETL сканирует монитор и увидев выставленный флаг проводит нужные расчеты.
2. Через ESB подключается сервис от ETL, который запускает расчет.
3. На Си/Java делается UDLib, в которой можно дернуть функцию, которая сделает нужный расчет.
Первый способ самый культурный и надежный, с защитой от дурака и прочего. Второй позволяет делать цепочку вызовов разных расчетов. Третий рисковый, но позволяет любому BI через SELECT дернуть напрямую перед работой нужную логику расчетов :)
...
Рейтинг: 0 / 0
Vertica, ETL, Stored Procedures
    #39243908
Guests
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS, Спасибо за подробный ответ!
Уточню пару моментов:
1) "фиксация в мониторинге...", "В мониторе делается флаг требования расчета..."
Про какой монитор речь?

2) "Правильная схема в Вертике жизни до расчетов:"
На примере 1-й ноды получается, загрузили первичку в Вертику через ETL/ELT - ок,
потом снова тянем данные на сервер ETL/ELT, обрабатываем и возвращаем на сервер Вертики?
Или через ETL/ELT вызывать запросы insert from select?

3) Есть ли у Вертики открытый роадмэп? Планируются ли процедуры/функции?
...
Рейтинг: 0 / 0
Vertica, ETL, Stored Procedures
    #39243990
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestsASCRUS, Спасибо за подробный ответ!
Уточню пару моментов:
1) "фиксация в мониторинге...", "В мониторе делается флаг требования расчета..."
Про какой монитор речь?

Про Ваш :) Который стоит сделать в виде слоя метаданных в таблицах той же Вертики и фиксировать в нем процессы над ХД.

Guests2) "Правильная схема в Вертике жизни до расчетов:"
На примере 1-й ноды получается, загрузили первичку в Вертику через ETL/ELT - ок,
потом снова тянем данные на сервер ETL/ELT, обрабатываем и возвращаем на сервер Вертики?
Или через ETL/ELT вызывать запросы insert from select?

Через ETL/ELT вызывать запросы insert from select.

Guests3) Есть ли у Вертики открытый роадмэп? Планируются ли процедуры/функции?
Процедуры не планируются. Это же ХД, должен быть какой то централизованный инструмент, управляющий циклом загрузки, преобразованием и хранением данных в хранилище. По многолетнему опыту работы с OLTP могу сказать, что сначала отсутствие ХП напрягает, далее уже привыкаешь к парадигме, что данные отдельно, управляющие процессы отдельно и все выравнивается. Ну а функции есть, элементарно пишутся на Си или Java как библиотеки и подключаются для использования в запросах в Вертике. Мы например писали функции маскирования данных по бизнес сущностям - используем их в COPY для маскирования на момент загрузки столбцов, которые содержат конфиденциальную информацию и не должны в явном виде попадать в ХД.
...
Рейтинг: 0 / 0
Vertica, ETL, Stored Procedures
    #39244031
Guests
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS...напрягает, далее уже привыкаешь к парадигме....

Точно сказано и справедливо не только для перехода на Вертику :)

Знаю, что у вас свой elt tool есть. А видели успешное внедрение Вертики с Informatica/ODI/Kettle/Talend?
...
Рейтинг: 0 / 0
Vertica, ETL, Stored Procedures
    #39244127
Фотография Vovaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestsЗнаю, что у вас свой elt tool есть. А видели успешное внедрение Вертики с Informatica/ODI/Kettle/Talend?

Да, есть вполне работающие примеры с Informatica/ODI/Talend. Свой инструмент развивался параллельно Таленду, т.к. не все там получалось реализовать как хотелось бы...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Vertica, ETL, Stored Procedures
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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