powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Опыт в рознице
25 сообщений из 150, страница 4 из 6
Опыт в рознице
    #32477849
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Юрий: гугль нашел цену на Teradata '98 - от $25K до $50K на четырехпроцессорный сервер;
также часто попадается отчет о "нелогичной ценовой политике" и упоминание ее секретности
;)
...
Рейтинг: 0 / 0
Опыт в рознице
    #32477936
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот что я в Яндексе нашел... :

"То, для чего пять лет назад требовалась система Teradata стоимостью 10 миллионов долларов, теперь можно осуществить на рабочих станциях Hewlett-Packard, Sun Solaris, Digital Alpha и Silicon Graphics", - отмечает Лав.
( http://www.olap.ru/basic/dm3.asp )
...
Рейтинг: 0 / 0
Опыт в рознице
    #32477954
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже, значит, линк старый.
то, для чего требовались Силиконы, сейчас делается на вычислительных фермах стандартных писюков под линухами, а станции на Wintel сильно подвинули остальные, а некоторые даже убили.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32477989
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот зачем искуственно ограничивать выборку только "местными" внедрениями OLAP?
ясно же, что у нас это делается совсем недавно, и масштаб бизнесов в среднем меньше. сетей уровня WalMart - просто нет.

давайте опишем здесь проект Т3 2000-го года, где в девять околотерабайтных MSAS-кубов залили 7млрд. записей со скоростью 200млн. записей в час на многопроцессорном железе Unisys, под лозунгом "сделаем больше, чем вообще может понадобиться, чтобы не возникало вопросов, сколько можно в принципе" и закроем вопрос в конце концов.
жаль, что для Cognos нет таких тестов.
я нашел только бенчмарк по количеству юзеров.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478041
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот зачем искуственно ограничивать выборку только "местными" внедрениями OLAP?

В России и СНГ другой масштаб проектов. Например если у нас благоприятная политика лицензирования и Cognos доступен даже для ПБОЮЛ, то на Западе считается что средний проект по Cognos - более 100 тыс. долларов.

давайте опишем здесь проект Т3 2000-го года, где в девять околотерабайтных MSAS-кубов залили 7млрд. записей со скоростью 200млн. записей в час на многопроцессорном железе Unisys

Думаю тут не все так однозначно - во-первых железо дорогое будет, во-вторых насколько я слышал - в том проекте были кубы с очень простой структурой. Мы ведь знаем слабые места MS AS, против которых никакой Unisys не поможет...

жаль, что для Cognos нет таких тестов.

Да, было бы интересно закачать в Cognos PowerPlay 7 миллиардов записей. Но только вот нет у меня под рукой ни подобной БД, ни соответствующего железа... Поэтому как тесты остается рассматривать реальные проекты, но там объемы поменьше.
Могу привести тест по Cognos который я делал несколько лет назад и упоминал на форуме www.olap.ru:
Исходные данные - текстовый файл размером порядка 600 мегабайт (детальные данные по 700 тысячам юр. лиц, итого 7 миллионов записей). При создании куба в PowerPlay я умудрился записать эти данные без потери детализации на стандартную дискету размером 1.4 мегабайта...
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478070
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Константин.
Не знаю разворачивали вы кластерные решения на Терадате, но я что-то сомневаюсь в эффективности автоматического хеширования данных кластерах sharing-nothing. Вы представляете гигабайты курсирующие между нодами согласно хешам? Эффективность ручной сегментации на порядок выше и как правило она уже сделана, нода в федеративных кластерах Microsoft это сервер филиала, значит там и данные филиала (остальное фильтруем).
Основной недостаток кластера Microsoft, что его нельзя "подложить" под работающую систему особенно класса ERP. Систему сразу нужно писать в кластерной архитектуре. Однако для DWH это не проблема, а даже скорее решение.

2Бикхоф. Кластер Oracle не поддерживает Sharing Nothing, т.к. дисковый массив все равно зависим и полного паралеллизма как в Терадате и MS не получить. Кластер sharing-nothing по определению не аварийно устойчивый, это цель - производительность. Но и вы года от него не 30% а 3000%.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478095
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Иванов
Основной упор в кластерах Oracle делается на высокую доступность, устойчивость от сбоев, а производительность достигается другими методами, в том числе и партишинингом.
В этом наверное и разница подходов.

2 Гликоген

T3 критиковали именно за сверхупрощенность модели. Так что этот проект практически ничего не доказал. :(
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478141
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Birkhoff. Просто у Oracle аварийно-усточивый кластер и кластер для создания многосерверного паралеллизма одно и тоже.
У MS и Терадата это не так. Отдельно кластер сверхпараллелизма и отдельно аварийно-усточивый кластер (failover cluster). Можно 2 кластера использовать отдельно, можно не использовать любой на выбор.
Кластер Oracle дает выйгрыш до 30% при переходе от 1й ноды к 3м. Кластер MS дает тут примерно 300%. Однако кластер Oracle можно подложить под SAP R3, а кластер MS нет. Правда по SAP Benchmark лидирует MS SQL и без кластеров.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478152
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир:

Автоматическое хэширование даёт несколько преимуществ:
1. Отсутствие перекосов в данных за счёт их равномерного распределения по узлам системы. Если распределение данных, например, производится по филиалам, то перекосы гарантированы, поскольку никогда не будет случая, когда во всех филиалах одинаковое количество данных (если, вы их, конечно, не агрегируете до одной строки). Соответственно, надо ждать результатов ровно столько, сколько обрабатывается самый большой набор данных = узкое место.

2. Алгоритм хэширования позволяет эффективно извлекать данные по первичному индексу (столбец или их набор, по которому производится хэширование) за одну операцию чтения с диска.
Например:

CREATE TABLE customer
(
cust_id,
cust_name
) PRIMARY INDEX (cust_id);

SELECT
*
FROM
customer
WHERE
cust_id=10023

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

При этом, преимущество перед случайным распределением в том, что результат размещения строки в партицию повторяемый и предсказуемый, то есть строка с одним и тем же значением первичного индекса всегда будет попадать в одно и то же место, если конфигурация системы остаётся постоянной.

3. Выборка данных по вторичному уникальному индексу происходит за два обращения к диску.
Здесь надо сказать, что вторичные индексы в Терадате не представляют собой B+-деревья, а являются такими же таблицами, что и базовые и так же хэшируются.

4. Руками ничего не надо делать, данные распределяются автоматически = лёгкость администрирования.

По поводу прогулок между узлами. Дело в том, что в массивно-параллельной конфигурации для соединения узлов между собой используется специальное устройство - коммутатор BYNET, который соединяет каждый узел с каждым. Общая пропускная способность получается гигантская. Поэтому перераспределение данных на другие узлы не являются проблемой.
Помимо этого существуют такие вещи, как хэш- и джойн-индексы, которые в некотором роде являются аналогами MV и позволяют материализовать джойны между таблицами.

Кластер sharing-nothing по определению не аварийно устойчивый, это цель - производительность

Не знаю, как в MS, а в Терадате очень даже устойчивый, поскольку:
1. Существует механизм FALLBACK-таблиц. Грубо говоря, альтернативное распределение таблиц по узлам. При выходе узла из строя ничего с такой таблицей не случится, поскольку есть такой же кусочек таблицы, хранящийся на другом узле.
2. Существует такое понятие, как "клика" (объединение узлов для автоматического восстановления после сбоя).
3. Для mission critical систем существует режим Dual Mode, когда две системы стоят рядом и полностью дублируют друг друга.

Но и вы года от него не 30% а 3000%.

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


полного паралеллизма как в Терадате и MS не получить

Я уже поднял вопрос о "полном" параллелизме в MS. Его там, скорее всего, нет. Зачем тогда нужны хинты (которых, кстати, в Терадате нет), как не объяснять не очень продвинутому оптимайзеру, что запрос надо выполнять не как он решит, а как ему скажут?

Давайте ответим на вопрос, какие этапы запросов распараллеливаются в MS, существует ли параллелизм внутри шагов запроса и между шагами, а также между запросами (когда разные запросы могут использовать результаты идентичных шагов, а не выполнять их многократно по числу запросов)? Существуют ли такие удобства, как синхронизированное сканирование таблиц (один пользователь начинает full scan таблицы, другой начинает через некоторое время, но физически он начинается с того места, где сейчас первый пользователь, дальше идут вместе до конца, первый получает результат, второй сканирует с начала таблицы и до того места, откуда он начал скан таблицы, в итоге вместо двух сканов таблицы получаем один с кусочком, больше пользователей сканируют одну таблицу - больше выигрыш от синхронного скана).

Про парралелизм в Терадате здесь .

У MS и Терадата это не так. Отдельно кластер сверхпараллелизма и отдельно аварийно-усточивый кластер (failover cluster).

Нет, не отдельно. Всё вместе. По крайней мере у Терадаты.
Я бы не ставил MS и Терадату рядом - разного класса продукты.
Может Юкон будет попродвинутее в плане поддержки хранилищ.


Удачи!

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478394
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автоматическое хэширование даёт несколько преимуществ:
1. Отсутствие перекосов в данных за счёт их равномерного распределения по узлам системы. Если распределение данных, например, производится по филиалам, то перекосы гарантированы, поскольку никогда не будет случая, когда во всех филиалах одинаковое количество данных (если, вы их, конечно, не агрегируете до одной строки). Соответственно, надо ждать результатов ровно столько, сколько обрабатывается самый большой набор данных = узкое место.


Вы меня не убедили. Разрезать на число нод до 10 лучше руками, в конце концов их не 100, ни какой хеш не сможет быть умнее человека.
Потом следует учесть, что в MS AS партиции ложаться слайсами, которые нужно для максимальной производительности задать вручную, соотвественно нужно знать как разрезаны данные по нодам. Можно конечно не задавать и надеяться на автомат, тогда потеряешь 10-15% скорости.

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

Судя по всему вы не запусками MicrosStrategy поверх кластера MS SQL, а зря -он силен. Там тоже будет одно чтение. При создании dview он запоминает в query plan как наложены check на ключах, поэтому полезет в одну ноду.

При этом, преимущество перед случайным распределением в том, что результат размещения строки в партицию повторяемый и предсказуемый, то есть строка с одним и тем же значением первичного индекса всегда будет попадать в одно и то же место, если конфигурация системы остаётся постоянной.

Вы меня не убеждаете. В SQL-серверах есть другой более важный фактор, это нахождение данных читаемых как правило одновременно рядом на диске. Это снижает seek и позволяет выиграть до 40% производительности (ноды). Чтобы этого достичь нужно по таким данным создать кластерный индекс, иными словами выполнить хеширование вручную.

4. Руками ничего не надо делать, данные распределяются автоматически = лёгкость администрирования.

А вот это действительно плюс. Во влияние на производительность, простите не верю. В кластере на 10 серверов всегда можно сделать лучше руками. Представте что такое кластер с сумарной мощностью 40 процессоров и 40 быстрых дисков, все юзется без повторов. Oracle может пойти погулять, там такая система будет в 5-6 раз дороже по металлу.

По поводу прогулок между узлами. Дело в том, что в массивно-параллельной конфигурации для соединения узлов между собой используется специальное устройство - коммутатор BYNET, который соединяет каждый узел с каждым. Общая пропускная способность получается гигантская. Поэтому перераспределение данных на другие узлы не являются проблемой.

Все это конечно здорово, но слегка забыли о транзакционной целостности. Для целостности распределенных транзакций нужен Distributed Trasaction Coordinator, т.е. совсем от центрального узла согласования транзакций не уйти или ... грязное чтений и no warranty. Неужели Терадата работает без координатора транзакций?

Кластер sharing-nothing по определению не аварийно устойчивый, это цель - производительность
Не знаю, как в MS, а в Терадате очень даже устойчивый, поскольку:
1. Существует механизм FALLBACK-таблиц. Грубо говоря, альтернативное распределение таблиц по узлам. При выходе узла из строя ничего с такой таблицей не случится, поскольку есть такой же кусочек таблицы, хранящийся на другом узле.


Согласитесь, тогда это не sharing-nothing, а sharing-"что-то" со всеми накладными расходами на поддержку дубляжа "чего-то". Возможно именно это "что-то" привело к тому, что Терадата полностью вылетела из рейтинга TPC.

2. Существует такое понятие, как "клика" (объединение узлов для автоматического восстановления после сбоя).

На это должен быть значительный накладняк.

3. Для mission critical систем существует режим Dual Mode, когда две системы стоят рядом и полностью дублируют друг друга.
В MS SQL это Failover-кластер, к слову он может быть не только дуальным, но и тетра-кластером.

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

Судя по тому, что вы пишите, для Терадаты это не так. Для поддержания аварийной устойчивости нужен серьезный накладняк. Чистого sharing-nothing в Терадате нет, как MS SQL. Но в MS SQL он тоже почти чистый, т.к. требуется работа только координатора DTC. MS SQL гарантирует не только производительность, но и высокий режим изоляции и надежности распределенных транзакций. Мне распределенный commit важненее, защиты от падения ноды.

Я уже поднял вопрос о "полном" параллелизме в MS. Его там, скорее всего, нет.

У меня сложилось обратное впечатление. Блеснув аварийной усточивостью, вы вскрыли серьезную арихитектурную проблему Терадаты. За все надо платить, в том числе производительностью.

Зачем тогда нужны хинты (которых, кстати, в Терадате нет), как не объяснять не очень продвинутому оптимайзеру, что запрос надо выполнять не как он решит, а как ему скажут?

Согласитесь наличие хинтов, лучше чем их отсутвия. Счастливо Терадате разобраться какой индекс взять на запросе связывающем 20 таблиц с сумарным числом индексов свыше 100 и по 3-4 всеьма схожих составных индекса на некоторых таблицах. В MS SQL я могу поправить оптимайзер, однако это делается весьма редко. Новички же в MS SQL вообще пишут не глядя на оптимизацию. MS SQL вытягивает в связанных запросах таблицы в 200 тыс записей вообще без индексов.

Давайте ответим на вопрос, какие этапы запросов распараллеливаются в MS, существует ли параллелизм внутри шагов запроса и между шагами, а также между запросами (когда разные запросы могут использовать результаты идентичных шагов, а не выполнять их многократно по числу запросов)?

Вы вероятно редко сажаете MicroStrategy на MS SQL (или это сделать нельзя? или никто не хочет?), иначе бы вы знали, что особенно MS SQL Ent очень сильно использует параллелизм и без кластера. В Query Plan такие "синие этажерки" появляются. Не заметить - невозможно.

Существуют ли такие удобства, как синхронизированное сканирование таблиц (один пользователь начинает full scan таблицы, другой начинает через некоторое время, но физически он начинается с того места, где сейчас первый пользователь, дальше идут вместе до конца, первый получает результат, второй сканирует с начала таблицы и до того места, откуда он начал скан таблицы, в итоге вместо двух сканов таблицы получаем один с кусочком, больше пользователей сканируют одну таблицу - больше выигрыш от синхронного скана).

Плохой пример, точнее легкий для MS SQL. Он просто откеширует это дело и все. Давайте я вам расскажу как правильно ругать MS SQL. Пользователь 1 читает данные, Пользователь 2 - пишет. Все - задница, если Пользователь 1 не использовал грязное чтение, он блокирует Пользователя 2. Насколько я понимаю в Oracle такой проблемы нет (snapshot). Интересно есть ли snapshot в Терадате?

Нет, не отдельно. Всё вместе. По крайней мере у Терадаты.

Как я отмечал, это совсем не достоинство Терадаты и снижает ее производительность. Вероятно потому и неконкурентна она более в TPC.
Я как админ могу выбирать разные стратегии надежности, например могу сделать ставку на RAID в нодах, могу делать failover-кластер. Это мой выбор, не надо его делать за меня.

Я бы не ставил MS и Терадату рядом - разного класса продукты.
Может Юкон будет попродвинутее в плане поддержки хранилищ.


На мой взгляд MS SQL 2K и так не плох для DWH даже в 100G (хотите сверьтесь с TPC-H). Однако MS SQL и Терадата продукты действительно разного уровня. MS SQL универсальный SQL-сервер на котором днем могут работать сотни готовых приложений от 1С до SAP R3, а ночью может идти обсчет сложнейшего DWH. Лучше наворачивать 1н мощный сервер под MS SQL и Oracle, чем дублировать вложения в Терадату. Потом если используется MOLAP, особо больших требований к MS SQL нет. Это MOLAP будет хранить 7 млрд. фактов как в тестах Unisys. К слову в Cognos грузили только 1 млрд., интересно сколько в MicroStrategy+Терадата?

Удачи! В прочем с интересом бы еще послушал про Терадату.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478523
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это MOLAP будет хранить 7 млрд. фактов как в тестах Unisys. К слову в Cognos грузили только 1 млрд., интересно сколько в MicroStrategy+Терадата?

Загрузить то можно много, главное чтобы сохранялось среднее время отклика на запрос пользователя не более 5 секунд...
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478556
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Загрузить то можно много, главное чтобы сохранялось среднее время отклика на запрос пользователя не более 5 секунд...

В этом конкретном случае с Т3, при работе 50 пользователей одновременно, результат был следующий:

The median query response time is only 0.02 seconds for warm cache and 0.08 seconds for cold cache queries.
(источник: http://www.microsoft.com/sql/evaluation/BI/terabytecube.asp )

или подробнее:

Query execution time with cold cache ranged from under a second to 33 seconds. The mean query response time was 1.2 seconds. The median response time was 0.08 seconds. In general, the queries with longer response times were doing substantial computations (e.g., computing a rolling average over many months of data).

(источник: независимый аудит сделанный Winter Corporation, http://www.microsoft.com/sql/evaluation/bi/AuditLetter.doc)

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478708
2 Владимир Иванов
Кластер sharing-nothing по определению не аварийно устойчивый, это цель - производительность

Вовсе нет. В мою бытность работы с Informix XPS приходилось тратить много времени на разбирательство с вопросами защиты от сбоев систем shared-nothing.

Нужно различать принципиальные возможности защиты, которые заложены в архитектуру и реализацию этих возможностей конкретным вендором. Изначально архитектура shared-nothing реализует все свои преимущества при использовании с DSS задачами. Поэтому вендоры СУБД для этой архитектуры традиционно относили реализацию фич high-availability на второй план по сравнению с задачами повышения производительности.

На самом деле, практически все, что реализуется в системах shared-disk (Oracle) для решения задач HA можно реализовать и в shared-nothing (DB2/XPS, Teradata). Не исключено, что в какой-то момент мы увидим гибрид в виде систем shared-nothing, каждый узел которых в свою очередь построен по архитектуре shared-disk.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478777
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир

К слову в Cognos грузили только 1 млрд., интересно сколько в MicroStrategy+Терадата?

Вот success stories для розницы Microstrategy+Teradata:

Lowes (16 ТБ) -
"More than 500 users actively use MicroStrategy Web™, an all-HTML, intuitive interface, to build their own ad-hoc queries or run predefined data reports against
a 16-terabyte data warehouse"

Ace Hardware Corporation - "Now, Ace’s Teradata Warehouse solution manages transactional data from 1,618 of its stores and supports 250 corporate plus 100 field-based end users." Далее о количестве клиентов компании - "Now we’re at 3.2 million members, with plenty of room to grow".

Applebee’s International тоже используют Microstrategy+Teradata - ресторанная сеть 300 своих + 1300 франшиз

Migros Turk T.A.S. - "мама" нашего Рамстора. Про объёмы не пишут, но по количеству магазинов и картхолдеров (более 3.8 миллионов) и то, что хранилище позволяет хранить и анализировать ежедневно закачиваемые туда транзакции (суть детали чеков) позволяет сделать оценки, что данных много.

Mitsukoshi, Ltd. - это уже не про Microstrategy, но 100 миллионов транзакций в год упоминаются (строк, я думаю, будет больше).

Office Depot - "Office Depot selected a Teradata analytical solution, acquiring a 5-terabyte, 4-node Teradata Warehouse. During the first year, Office Depot increased the data warehouse size to 12 nodes due to its active use throughout the organization."
Далее по тексту "Office Depot’s Teradata Warehouse has 1,200 active users, with 2,000 more employees receiving market basket analysis reports."


Надо заметить, что вышеприведённые примеры - это не тесты, а реально работающие системы.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478793
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Андрей Прохоров

Не исключено, что в какой-то момент мы увидим гибрид в виде систем shared-nothing, каждый узел которых в свою очередь построен по архитектуре shared-disk.

Далеко ходить не надо - в СУБД Терадата узлы представляют собой SMP-системы с разделяемыми ресурсами. Одноузловая ситсема - это система "shared disk" физически, хотя логически она является массивано-праллельной (единицы паралелизма и комутатор BYNET являются в этом случае виртуальными процессами).


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478842
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ребята, время feature-based рыночного позиционирования прошло, теперь позиционируются только брэнды :)

MS, конечно, с трудом, но поднимается и вытесняет конкурентов из high-end-ниш...
Им бы имело смысл производить High-end SQL Server 2000, переупакованный под другим брэндом и стоящий в 10 раз дороже - тогда бы и народ недоверчивый потянулся :))

Типа как Porche Chayenne и Volkswagen Touareg внутри одинаковые, но продаются в разных салонах и для разных людей. Машины абсолютно новые, без истории, выезжают только на брэнде.
Почему считается, что SQL Server не может быть хорошим и масштабируемым только потому, что его дедушка был для мелких предприятий? :)
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478863
Rex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийСуществуют ли такие удобства, как синхронизированное сканирование таблиц (один пользователь начинает full scan таблицы, другой начинает через некоторое время, но физически он начинается с того места, где сейчас первый пользователь, дальше идут вместе до конца, первый получает результат, второй сканирует с начала таблицы и до того места, откуда он начал скан таблицы, в итоге вместо двух сканов таблицы получаем один с кусочком, больше пользователей сканируют одну таблицу - больше выигрыш от синхронного скана).
Существуют в виде карусельного сканирования (merry-go-round scan).
Учебник по настройке ХД.

Владимир ИвановПлохой пример, точнее легкий для MS SQL. Он просто откеширует это дело и все.
Смотря какая редакция. Enterprise будет использовать карусельное сканирование.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478868
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир:

Вы меня не убедили. Разрезать на число нод до 10 лучше руками, в конце концов их не 100, ни какой хеш не сможет быть умнее человека.
Потом следует учесть, что в MS AS партиции ложаться слайсами, которые нужно для максимальной производительности задать вручную, соотвественно нужно знать как разрезаны данные по нодам. Можно конечно не задавать и надеяться на автомат, тогда потеряешь 10-15% скорости.


Конечно же Вы не почитали статью, которую я порекомендовал. А зря. Возможно, она сняла бы некоторую долю Вашего скептицизма.
Тогда расскажу ещё немного об архитектуре Терадата, тем более, Вам это, я вижу, интересно.

Итак, основными единицами параллелизма в Терадате являются два типа процессов: AMP и PE.
AMP - access module processr. Он отвечает за обработку данных (каждый AMP обрабатывает свой кусочек данных, как мы уже упоминали) - сканирование таблиц, индексов, агрегицию, соединение таблиц, блокировки и т.д.
PE - parsing engine. Отвечает за контроль пользовательских сессий, разбор и оптимизацию запросов, распределение между AMPами шагов по выполнению запросов. Возврат результатов пользователю или приложению.

И тех и других процессов много. Множественность PE также наруку поскольку позволяет повысить степень параллелизма, а также надёжность системы (один координатор был бы узким местом системы, а так в случае отказа, его работу начинает выполнять PE на другом узле).

Дальше. Количество AMPов обычно определяется при конфигурации системы. Существуют оптимальные параметры такой конфигурации. В любом случае, на один узел их будет несколько. В более-менее серьёзной системе их будет точно более 10.

Данные фактически режутся не по числу узлов, а почислу AMPов. Каждая таблица хэшируется по первичному индексу и размазывается равномерно на все AMPы, что позволяет каждому AMPу работать с одинаковым количеством записей. Хэш, действительно равномерно распределяет записи. Вручную их размазать равномерно очень трудно (исключение - алгоритм round robbin - следующая запись на следующий узел, однако он имеет существенный недостаток - невозможность повторения результата и отсутствие информации о том, куда реально пошла запись).
Теперь давайте разберёмся с ручным распределением данных по узлам. Что для этого нужно? Есть две стратегии - демографическое распределение (данные одного филиала хранятся на специально выделенном узле) и попытка равномерного распределения.
Демографическое рапределение порождаёт массу узких мест - в первую очередь разбалансировку системы - запросы к данным одного филиала будут выполняться только на одном узле. Соответственно, параллелизм запускается коту под хвост. Сравнение двух филиалов ждёт данные от того узла, который должен обработать больше данных. Готов послушать соображения на этот счёт. Может быть, я не прав.
Теперь про попытку ручного равномерного распределения. Вспомним про разлив водки на троих. Довольно ловкие люди разливают довольно ловко :) Однако, на десетярых уже может не получиться равномерно разлить - будт перекосы :)
Это шутка. А если серьёзно - по какому признаку можно равномерно распределить бизнес-данные? Филиал уже рассмотрели - перекосы на лицо.
Другой вариант - дата. Но и тут бывает сезонность, выходные, праздники.
Товар? Не каждый товар продаётся во всех магазинах. Опять перекос.
Готов послушать предложения об оптимальном ручном распределении данных и подискутировать на эту тему.

Есть ли сомнения в том, что равномерное распределение позволяет не иметь узких мест при параллельной обработке, или надо рассказать детальнее, почему перекосы в данных разбалансируют систему?

Надеюсь, что всё понятно.

Продолжение следует...

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478877
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир:

При создании dview он запоминает в query plan как наложены check на ключах, поэтому полезет в одну ноду.

Поясните, пожалуйста, я не понимаю механизма.
Что нужно, чтобы доступ был гарантированно за одно чтение с диска?

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32478983
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир:

Вы меня не убеждаете. В SQL-серверах есть другой более важный фактор, это нахождение данных читаемых как правило одновременно рядом на диске. Это снижает seek и позволяет выиграть до 40% производительности (ноды). Чтобы этого достичь нужно по таким данным создать кластерный индекс, иными словами выполнить хеширование вручную.

Владимир, меня удивляет, откуда у Вас такие точные цифры? Прямо как в рекламе - зубная паста такая-то защищает от кариеса на 40% эффективнее.
Эффективнее чего?

В Терадате отсутствуют кластерные индексы (видите, не каждой СУБД они нужны). Первичные индексы не занимают места вообще, поскольку положение строки (на каком она хранится AMPе) вычисляется через хэширование (отсюда, кстати, и доступ за одно чтение).
Далее. Если Вы точно знаете, что существуют данные, которые точно будут использоваться вместе (например, часто соединяемые таблицы), то Вы можете выбрать первичные индексы таким образом, что соединяемые строки будут на одном AMP. Соответственно, их соединение будет (параллельно) выполняться в пределах узлов. Речь пока даже не идёт о джойн- и хэш-индексах, которые предназначены специально для целей ускорения соединений.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32479214
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир:

А вот это действительно плюс. Во влияние на производительность, простите не верю. В кластере на 10 серверов всегда можно сделать лучше руками. Представте что такое кластер с сумарной мощностью 40 процессоров и 40 быстрых дисков, все юзется без повторов. Oracle может пойти погулять, там такая система будет в 5-6 раз дороже по металлу.

Про влияние на производительность я уже написал. Равномерное распределение данных гарантирует сбалансированный параллелизм.
По поводу сделать руками - как Вы думаете, зачем Oracle ввёл хэш-партишионинг? Не потому ли, что руками не так эффективно было?

Дальше. Допустим, сделали партишионинг руками. Теперь добавляется новый узел. Что делаем? Останавливаем базу. Выгружаем наши терабайты назад и заново делаем партишионинг руками и грузим данные?
В случае Терадаты запускаем одну команду и ждём пока она сама перераспределит данные с учётом нового узла (опять-таки автоматически и равномерно).


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32479355
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир:

Блеснув аварийной усточивостью, вы вскрыли серьезную арихитектурную проблему Терадаты.

Расскажите, пожалуйста, в чём состоит серьёзная архитектурная проблема.

Кстати, никто не заставляет создавать fallback-таблицы. Это опция. Если готовы положиться только на защиту уровня RAID.


Согласитесь наличие хинтов, лучше чем их отсутвия.
Не согласен. По двум причинам - хочу тратить время на разработку отчётов и бизнес-логики, а оптимизатор пусть сам разбирается. Второе - BI-тулзы, работающие напрямую с реляционными СУБД (Microstrategy, Business Objects, Cognos и др.) обычно не спсобны генерировать хинты. Соответственно, оптимизатор должен сам уметь разобраться.


Счастливо Терадате разобраться какой индекс взять на запросе связывающем 20 таблиц с сумарным числом индексов свыше 100 и по 3-4 всеьма схожих составных индекса на некоторых таблицах.

Было и большее количество соединений. Разбирается. Большое количество соединений вообще очень характерно для Терадаты, поскольку хранилища данных на Терадате проектируются в третьей нормальной форме для гибкости и возможности отвечать на сложные запросы. Денормальизация (схема звезда) используется очень редко.

К тому же, как правило, Терадата требует меньше индексов, чем другие СУБД. Более того, она не боится фулл-сканов, поскольку они выполняются паралельно (всегда и безусловно).



В MS SQL я могу поправить оптимайзер, однако это делается весьма редко. Новички же в MS SQL вообще пишут не глядя на оптимизацию. MS SQL вытягивает в связанных запросах таблицы в 200 тыс записей вообще без индексов.

200 тыс. записей - это небольшой объём.

Вы вероятно редко сажаете MicroStrategy на MS SQL (или это сделать нельзя? или никто не хочет?)

Сажал на DB2/400, Sybase ASE, Терадату, и на MS тоже.
Я слышал, что в Даноне связка Microstrategy на MS. Задайте вопрос, может расскажут как это у них.

Интересно есть ли snapshot в Терадате?
Нету. Используются блокировки. Самая детальная - на уровне ROW HASH.
Терадата не позиционируется как база для OLTP, хотя имеет необходимые механизмы, которые нужны для построения хранилищ данных, работающих в режиме онлайн (Active Data Warehousing, про который пишут здесь ).


Как я отмечал, это совсем не достоинство Терадаты и снижает ее производительность. Вероятно потому и неконкурентна она более в TPC.
Я как админ могу выбирать разные стратегии надежности, например могу сделать ставку на RAID в нодах, могу делать failover-кластер. Это мой выбор, не надо его делать за меня.


Снижает, конечно. За всё нужно платить. Однако, как я уже писал, механизм fallback-таблиц можно и не использовать.
В TPC конкурентна, просто тесты не публикует. Дело в том, что они достаточно искуственны и не совсем соответствют реальным приложениям. "Карта не есть территория" - правильно?


MS SQL универсальный SQL-сервер на котором днем могут работать сотни готовых приложений от 1С до SAP R3, а ночью может идти обсчет сложнейшего DWH.

Универсальность всегда стоит чего-то. Нагрузка на хранилище и нагрузка на OLTP - принципиально две разные вещи. Это при Ваших знаниях не должно вызывать сомнения.
Идея всё иметь на одной платформе (корпоративная баща данных) витает в воздухе уже несколько десятилетий, а хранилища как строили выделенные, так и строят. Ну, и потом, где Вы видели серьёзные системы, где хранилище и оперативная система работает на одной платформе? И что такое "обсчёт сложнейшего DWH?". По-моему, DWH - это периодическая или он-лайн загрузка плюс постоянный доступ со стороны пользователей и бизнес-приложений. Мне кажется, что совмещение хранилища и оперативной системы на одной платформе - не более, чем маркетинговый лозунг.

Удачи и больших хранилищ :)

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Опыт в рознице
    #32479756
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласитесь наличие хинтов, лучше чем их отсутвия.
Не согласен. По двум причинам - хочу тратить время на разработку отчётов и бизнес-логики, а оптимизатор пусть сам разбирается. Второе - BI-тулзы, работающие напрямую с реляционными СУБД (Microstrategy, Business Objects, Cognos и др.) обычно не спсобны генерировать хинты. Соответственно, оптимизатор должен сам уметь разобраться.


Я думаю еще и Юра не согласится с пользой хинтов. Для чистого OLAP'щика это раздражающий фактор. Никой Imputu не сделать DWH так как сделает спец в TSQL, даже с 3х летним опытом. Спец с 5 летним опытом сделает заточенный DWH c использованием хинтов и др. особенностей MS SQL так, что он будет работать в 1,5-2 раза быстрее.

Счастливо Терадате разобраться какой индекс взять на запросе связывающем 20 таблиц с сумарным числом индексов свыше 100 и по 3-4 всеьма схожих составных индекса на некоторых таблицах.
Было и большее количество соединений. Разбирается. Большое количество соединений вообще очень характерно для Терадаты, поскольку хранилища данных на Терадате проектируются в третьей нормальной форме для гибкости и возможности отвечать на сложные запросы. Денормальизация (схема звезда) используется очень редко.


Это по-моему вторая серия по Oracle на 200 млн. фактов. Приведите пример SQL-запроса. Чудес на свете не бывает.

К тому же, как правило, Терадата требует меньше индексов, чем другие СУБД. Более того, она не боится фулл-сканов, поскольку они выполняются паралельно (всегда и безусловно).

Это воспринимать как оправдание слабости индексирования Терадаты? Счастливо вам full-сканом найти элемент в измерении на 2 млн. абонентов.

Сажал на DB2/400, Sybase ASE, Терадату, и на MS тоже.
Я слышал, что в Даноне связка Microstrategy на MS. Задайте вопрос, может расскажут как это у них.


К слову любонытно, какие у вас впечатления от производительности этих серверов. Я заметил, что в списке нет Oracle. Любопытно, что у нас MS SQL и Oracle это сервера номер один, затем Sybase и Interbase, все отсальное крайне редко. Под DB2 делали только один раз пока работали на IBM, сервер надо сказать понравился. Но спецов по нему ноль в РФ, потому и не игрок.

Снижает, конечно. За всё нужно платить. Однако, как я уже писал, механизм fallback-таблиц можно и не использовать.
В TPC конкурентна, просто тесты не публикует. Дело в том, что они достаточно искуственны и не совсем соответствют реальным приложениям. "Карта не есть территория" - правильно?


В к слову зря о TPC как о неком формальном тесте. Тест TPC эмулирует не некий академический тест. TPC это модель работы очень крупной торговой компании (ордер, оплата и т.д.). Таким образом, это модель тех самых крупных розничных сетей, где раньше все укладывала Терадата+MicroStrategy. Падение Терадаты ниже пола показывает, причем имеено на задачах целевого сегмента рынка, что универсальные SQL-сервера победили. Терадата вероятно замечательная система, но это уже прошлое.

Идея всё иметь на одной платформе (корпоративная баща данных) витает в воздухе уже несколько десятилетий, а хранилища как строили выделенные, так и строят. Ну, и потом, где Вы видели серьёзные системы, где хранилище и оперативная система работает на одной платформе?

Довольно часто видел. Хорошо сделанное хранилище может обновится за 4-6 часов даже на десятках миллионов записей. Иными словами это можно сделать за ночь. Работа DWH на том же сервере, что и ERP не только дешевле, но и быстрее, т.к. не нужно таскать данные по сети.

И что такое "обсчёт сложнейшего DWH?". По-моему, DWH - это периодическая или он-лайн загрузка плюс постоянный доступ со стороны пользователей и бизнес-приложений. Мне кажется, что совмещение хранилища и оперативной системы на одной платформе - не более, чем маркетинговый лозунг.
Тем не менее универсальные SQL-сервера победили и господствуют во всех сегментах и нишах. Я понял в чем ваши сомнения. При использовании ROLAP как MicroStratery или Discoverer конечно DWH нельзя класть рядом с ERP. Нагрузка велика. Однако при использовани MOLAP как MS AS такого нет. Он подкачался ночью и работает себе, SQL-сервер не трогает. Плюс учтите MOLAP очень мало берет ресурсов при работе (много при ночном процессинге), поэтому даже на одном сервере даже сам MOLAP может жить и не сильно мешать SQL-серверу, просто памяти добавте.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32479766
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дальше. Допустим, сделали партишионинг руками. Теперь добавляется новый узел. Что делаем? Останавливаем базу. Выгружаем наши терабайты назад и заново делаем партишионинг руками и грузим данные?
В случае Терадаты запускаем одну команду и ждём пока она сама перераспределит данные с учётом нового узла (опять-таки автоматически и равномерно).


Констатин, я рекомендую вам сделать пилот на кластере MS SQL. Вы будете приятно удивлены многим, в том числе что обычно не нужно ни чего выгружать и перегружать при подключении новой ноды.
Типовое использование кластера MS SQL это привлечение серверов административных подразделений большой компании для работы как кластер под DWH. Замечу, новых серверов под кластер покупать не нужно. Наверное поэтому у нас получился опыт построения крупных географически распределенных кластеров MS SQL в 15-18 нод. Обычно каждый узел отвечает сам за себя, т.е. кладет свои данные в локальный DWH, а вот он уже подхвачен distributed view.
У этой схемы только один недостаток, все ноды действительно должны работать всегда. При использовании интранета через спутник или свою GSM-подсетку или радиосет встает серьезная проблема тайм-аутов между нодами.
В принципе решаемо, но весьма геморойно и далеко от веселой рекламы Microsoft.
...
Рейтинг: 0 / 0
Опыт в рознице
    #32479788
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю еще и Юра не согласится с пользой хинтов. Для чистого OLAP'щика это раздражающий фактор.

Я рассматриваю хинты как страховку, которую можно будет использовать в самом крайнем случае. Я предпочитаю создавать виртуальные вьюшки (SQL-запросы, виртуальные витрины данных) визуальными средствами в модуле Impromptu. Если же запрос созданный визуальными средствами неоптимален и работает небыстро, и если это критично - то можно войти в режим редактирования виртуальной вьюшки и вставить туда хинты. Однако бывают случаи, когда запрос сложный, выполняется небыстро, но это не напрягает поскольку инкрементальная подкачка в куб делается малыми порциями или в ночное время, а в кубе PowerPlay все работает быстро.

Что касается разработки ХД, то это дело хорошее, но я стараюсь если есть возможность избегать этого лишнего звена, поскольку при часто меняющихся бизнес-процессах и требованиях пользователей перепроектирование ХД - это большая головная боль (гораздо быстрее можно переделать виртуальную вьюшку визуальными средствами).
...
Рейтинг: 0 / 0
25 сообщений из 150, страница 4 из 6
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Опыт в рознице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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