Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Логи чего? логи сайта? Биллинг? CDR? Бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 12:58 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Мне наверное повезло. я работал с несколькими телекомовскими компаниями и везде было по-честному. Хранилище было на Oracle и данные оттуда читали запросами все кому не лень. (Собственно это и было обычно предпосылкой создания OLAP системы - разгрузить хранилище) Distinct Count делали. Тогда еще 2 миллионов абонентов не было, но и техника была послабее. не то что сейчас. Довольно шустро работало, со своими правда особенностями. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 12:59 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2Глюкоген. "Маленькая питерская конторка" это вероятно Сатурн. 20% оптового рынка стройматериалов россии, номеклатура 300 тыс. позиций (правда большая чать часть набилась от "шурупной" проблемы), обычный филиал имеет склад в виде 2х самолетных ангаров (это не преувеличение, читать дословно). Я к слову не идеализирую это внедрение, там своих проблем хватает. Но не стоит судить об известности компаний по обывательским брендам. Обычному обывателю в голову не придет, что 70% таких супермаркетов как Лента, Максидом, OK, IKEA наполняется 3-4 крупнейшии оптовыми поставщиками-логистами такими как Сатурн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 13:02 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
и как они при эдакой монструозности живут на 1С, из которой, собственно, и качаются данные в MSAS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 13:37 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Все-таки, по-моему, розница сильно отличается от телекома в области анализа в сторону большей сложности (правда, при меньшем количестве записей) :) Три московских Ашана генерируют в сумме до миллиона фактов в день. И в процессе работы таких предприятий явно будут появляться новые кубы, которые надо будет строить по сотням миллионов записей, а не просто инкрементировать. Честно говоря, я скептически отношусь к заявлению, что Oracle не может выступать как ХД на таких объемах... Что же тогда может? P.S. Я представляю не Ашан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 13:50 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2Гликоген. Прежде всего мои извинения, я случайно обозвал вас Глюкогеном. В Сатурне только некоторые филиалы скупленные сравнительно недавно у разорившихся конкурентов работают под 1С. В основном они работают на нашей системе Ultra Project. Это комплекс сходный по архитектуре с Ultima-S, но в нем другое CASE-ядро. Сейчас новая версия комплекса проходит обкатку в корп. внедрениях. Однако если не гнуть пальцы, то потенциал 1С+OLAP тоже весьма велик. Русклимат далеко не маленькая компания, но ей удается решать свои проблемы на 1С 7.7/8.0 + комплексный OLAP. Правда тут много тонкостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 13:57 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2akoo. Может как раз инкременталка в связке с MOLAP. Требования к хранилищу тут минимальные. Запросто можно из текстовых файлов качать. Причем наращение 1 млн. фактов на 50 млн. занимает на MS AS примерно 15-30 минут (реальный сервер). Архив вести конечно можно, только репроцессинг его может занять месяцок-другой. Вот почему важно в таких хранилищах сразу делать правильную архитектуру. Переделка весьма и весьма кровопролитна. У нас один клиент был вынужден развернуть систему-дублера за $20K для перепроведения всех архивов. В чем была проблема? Небольшие ошибки в проектировании, которые привели к нерабочей системе, мы их быстро нашли и исправли. Осталось только кубики перепроцессировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 14:04 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
akoo У меня вопрос, а нельзя обойтись Oracl'овым ROLAP'ом? Или есть какие-то серьезные требования, по которым ROLAP не проходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 14:12 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
ROLAP, он и в Африке ROLAP. Надо понимать, что агрегаты тут таблицы или виртуальные таблицы типа материлизованных (Oracle) или индексированных (MS SQL) представлений. Соотвественно и ограничения как обычное приложение под SQL-сервер. Если размер таблиц агрегатов сравнительно не велик (сотни тысяч позиций) и пользователи практически не открывают детализацию требующую обращения к фактам, то ROLAP себя ведет не так плохо. Это все и называется ГРУБОЙ агрегацией. Если же пользователь начинает скользить к мелким листьям товарного дерева, использовать сочетание многих измерений, то ROLAP генерить такие SQL-запросы, что система быстро уходит в даун. Разработчики ROLAP обычно решают это просто - не дают использовать большие детализации. Нагрузка на CPU сервера при работе ROLAP и MOLAP отличается примерно в 7 раз. 2Birkhoff. Если уж и говорить о разгрузке SQL-сервера, то тут как раз MOLAP нужен, он вообще SQL-сервер при работе не трогает. У ROLAP и HOLAP есть только один плюс - более компактные по размеру хранилища. MOLAP у MS AS самый маленький по размеру, т.к. жмется на лету, но все равно объем MOLAP хранилища может быть существенно больше исходных данных. Если на вашем RAID мало места, можно попробовать только не ROLAP, а HOLAP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 14:43 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Дык и было внедрение MOLAP (Express) для разгрузки хранилища. А насчет того что MV не помогают, в Oracle 10g есть теперь интересная фича. Я тут ее упомянул чуть выше. Называется QUERY EQUIVALENCE. Это расширение Query Rewrite. QR работает как? Мы создаем сколько-то MV на наши таблицы. Можно создать на одну таблицу несколько MV с разной степенью детализации. И когда пишем select к исходным таблицам, оптимизатор SQL может решить что данные лучше взять не из таблиц исходных, а из одного или нескольких MV. Запрос автоматом переписывается. То есть участие программиста тут не требуется. QE - это более хитрая штука. DBA может прописать, что существует MOLAP куб, который содержит данные такие же, как и дает запрос по некоторым реляционным таблицам. И вот в момент селекта по реляционным таблицам оптимизатор может переписать запрос так, что обращение произойдет к MOLAP кубу, а не к таблице. Естественно MOLAP часто отрабатывает запрос гораздо быстрее, чем group by. Надо экпериментировать, я много раз видел как таблицы с десятком миллионов записей при помощи набора MV очень шустро опрашиваются. Это вопрос настройки. Так что не стоит списывать ROLAP со счетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 15:18 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
akoo, а, например, как вы относитесь к решению, состоящему из нескольких продуктов? например, в качестве построителя хранилищ - DecisionStream или WarehouseBuilder, хранилище - в Oracle, если он у вас уже есть, кубы Microsoft, пакетная отчетность - в ReportNet? То есть не противопоставлять продукты, а брать у каждого вендора лучшее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 15:31 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2Birkhoff. Судя по тому, что вы пишите видно, что MV в Oracle как серьезно отставали от IV в MS SQL так и отстают. Я имел удовольствие разворачивать Discoverer с использованием оптимизации под MV. Проблем хватило, в том числе обновление MV по расписанию, в MS SQL обновление IV всегда real-time. А QE вообще-то не производит вид божественного откровения. Оптимайзер MS SQL без всяких действий со стороны админа цепляет подходящий IV, если он может помочь в расчетах и цепляет весьма разумно (см. Query Plan). Я этот прием даже иногда использую в Real-time OLAP и ROLAP отказываясь от кривоватых автоматических IV и создавая свои руками. Оптимайзер их подбирает сам. Все это (MV и IV) совсем не панацея. Помолчим о тормозах в OLTP которые появляются из-за работы таких систем. Поскольку MV и IV все такие же плоские как таблицы при многомерных запросах по многим мемберам они быстро выпадают из актуальности и эффект от них нивелируется. Для Real-time OLAP и ROLAP все это помогает где-то до 10-15 млн. фактов, дальше даун. Я старый реляционщик, но как ни грустно признавать ROLAP'ам крышка, да это и видно по рынку. На 80% сейчас продаются MOLAP'ы. PS. Обратите внимание, что в Юконе будет большое количество расширений реляционной части для хранилищ данных, в том числе партиционные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 00:13 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Константин, Юрий, посмотрите, пожалуйста, с чего начался разговор. Человек явно написал про сотни миллионов записей. Вероятно, он представляет крупную розничную сеть. Это понятно :) Я просто хотел подчеркнуть, что розница - это далеко не всегда большие объемы данных, и чтобы г-н Guess поверил в чудодейственную силу MOLAP для розницы. Что касается вопроса, хватит ли сервера стоимостью 1000$ или нет: действительно, я говорил только про такой дешевый MOLAP-сервер, и не упоминал про сервер РСУБД. Возможно ХД на РСУБД потребует более дорогого железа, но прочувствуйте разницу между 2 подходами: 1) используем ROLAP, например ту же Microstrategy - это означает, что на реляционный сервер ХД будут постоянно идти аналитические запросы, это при большом объеме строк чеков - огромная нагрузка, и тут я согласен с Guess, что железо будет очень дорогое; 2) Используем MOLAP, например Cognos PowerPlay купив для него сервак за 1000$. При этом нагрузка на сервер ХД будет минимальна, аналитических запросов туда поступать не будет - только выборка новых данных по индексам для инкрементальной подкачки в куб PowerPlay (и то, в моих крупных розничных проектах это делается только ночью). Я считаю, что сервер ХД при таком подходе может быть и слабым компьютером, может не за 1000$, но не более чем за 5000$. Константин, интересно было бы нарисовать график (как для ROLAP, так и для MOLAP) стоимости железа (стоимость реряционного сервера + OLAP-сервера) в зависимости от количества записей в таблице фактов - думаю для ROLAP это будет экспоненциальный рост, а для MOLAP - либо слабый линейный рост, либо вообще горизонтальная линия... Да и вообще то дискуссия затянулась и немного отошла от темы. Поделитесь, пожалуйста, информацией по поводу опыта крупных проектов по OLAP в российской рознице. В первую очередь по MOLAP (Cognos, Hyperion, Oracle). Поэтому я бы предложил провести тесты на реальной базе данных автора этой дискуссии. Я могу предоставить для этого свой опыт в области Cognos PowerPlay (в течение одного дня могу создать серьезный кубик :) Думаю компании Ланит и Oracle тоже примут в этом участие со своими продуктами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 10:45 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Судя по тому, что вы пишите видно, что MV в Oracle как серьезно отставали от IV в MS SQL так и отстают. Судя по тому, что вы пишите, я плохо объяснил идею. Я имел удовольствие разворачивать Discoverer с использованием оптимизации под MV. Проблем хватило, в том числе обновление MV по расписанию, в MS SQL обновление IV всегда real-time. В Discoverer обновление materialized views (MV) по расписанию - это дефолтный вариант, который меньше всего грузит сервер, особеннно в случае большой транзакционной загрузки. К тому же, обычно подразумевается что хранилища обновляются по расписанию. Но и в Discoverer в частности и в MV вообще существуют разные режимы обновления и работы. Можно сделать чтобы MV обновлялось в real-time, можно по времени, можно по команде. Использоваться они могут тоже в нескольких режимах. Например, оптимизатор может брать данные из MV только если они соответствуют тому, что в таблице. Или может брать данные всегда. Это в том случае, когда несколько новых записей в таблице не сказываются на трендах. Что будет делать IV если у нас нагрузка 1000 транзакций в минуту? будет пытаться обновлять IV 1000 раз в минуту? Тогда понятно почему на 10 миллионах записей все это уходит в даун. А если бы можно было сделать отложенное обновление IV - это резко бы разгрузило систему. Оптимайзер MS SQL без всяких действий со стороны админа цепляет подходящий IV, если он может помочь в расчетах и цепляет весьма разумно (см. Query Plan). Я этот прием даже иногда использую в Real-time OLAP и ROLAP отказываясь от кривоватых автоматических IV и создавая свои руками. Оптимайзер их подбирает сам. Ну так и в случае MV оптимизатор без всяких действий админа цепляет нужный MV (или несколько). Насчет весьма разумного оптимизатора - не знаю как в MS, но если поищите в форуме Oracle по ключевым словам "CBO" или "оптимизатор" найдете, что в сложных случаях оптимизаторы могут ошибаться. И админы с этим пытаются бороться. Думаю что в MS тоже самое, просто вы не сталкивались с такими сложными случами. А QE вообще-то не производит вид божественного откровения. Поскольку MV и IV все такие же плоские как таблицы при многомерных запросах по многим мемберам они быстро выпадают из актуальности и эффект от них нивелируется. Вот тут видимо вы и не поняли идею Query Equivalence (QE). Может ли оптимизатор в MS при например select shop,sum(amount) from sales group by shop автоматом переписать этот запрос в MDX и отправить его в MS AS? Думаю не может. А вот QE именно это и делает. Мы пишем селект к реляционным таблицам, а оптимизатор решает взять ли данные из таблицы, из MV или переписать его и отправить в многомерную базу, где не может быть ситуации когда при многомерных запросах по многим мемберам они быстро выпадают из актуальности и эффект от них нивелируется . Так как обращение идет к самому что ни на есть многомерному OLAP. В этом подходе уже не ясно где кончается ROLAP (да и начинается ли?) и где он переходит в MOLAP. HOLAPом это тоже назвать сложно. А Real-time OLAP действительно ли он кому то нужен? Или это просто погоня за идеальной системой? Все это (MV и IV) совсем не панацея. Помолчим о тормозах в OLTP которые появляются из-за работы таких систем. Панацеи не существует нигде, а тормозов в MV можно избежать разумной политикой их обновления. P.S. Обратите внимание, что в Юконе будет большое количество расширений реляционной части для хранилищ данных, в том числе партиционные таблицы. В Oracle партиционированные талицы уже давно существуют, что так же помогает не умирать системе на 15 миллионах записях. Кстати не дадите линку какую нибудь summary по новым фичам Юкона для хранилищ? Кстати еще одной фишкой в 10g является возможность взять данные из таблице не те, которые лежат сейчас там, а те, которые в ней были на момент времени в прошлом. То есть можно сравнивать что изменилось за определенное время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 13:01 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2Birkhoff 1) На MS SQL нет проблем сделать отложенное обновление IV. Просто сделайте их поверх DWH, а не таблиц OLTP. При создании DWH они обновяться как MV. Проблема в том, что и на MS SQL и на Oracle часто удобно использовать для оперативных кубов сами таблицы OLTP (см. п.3). Тут обновление MV по расписанию довольно неудобно. 2) Оптимайзеру MS SQL можно при манипулировании IV помочь хинтами, однако на практике OLAPов это редкость. Довольно прозрачно как надо цеплять IV. MDX и QE сравнивать некорректно. Для работы MDX под MOLAP обычно не нужно обращаться ни куда SQL-запросами. MDX запросы в MOLAP всегда быстрее в 2-3-7 раз аналогичных SQL-запросов. 3) Real Time не нужен для топ-менеджеров смотрящих отчеты, это главные потребители такой информациии и ваша реакция тут сраведлива. Но мы делаем решения не только для кучки аналитиков, а и для всей компании в целом. Менеджерам среднего звена нужны отчеты с низкой латетностью. Не весело пропустить последний платеж клиента и принять на этом решение. 4) Давайте не будем про неумерающий Oracle на 15 млн. фактов? Ok? Сделайте запрос-снежинку в 10 млн. и он подохнет. Аналог партиционных таблиц можно сделать в MS SQL 2000 через создание отдельных табличек типа Sales2000, Sales2001 и объединения их через UNION ALL view. Если использовать distributed view через несколько серверов производительность MS SQL будет примерно в 2 раза выше Oracle на таком оборудовании. По-сути это и есть тот самый кластерный тест TPC на котором Microsoft забодал Oracle. Однако даже эта более производительное чем у Oracle решение не спасает на 20 млн. фактов и BI-решении с требованиям к высокой детализации в кубах. Новые вичи Юкона можно найти в статье в MSDN Business Intelligence and Data Warehousing in SQL Server Yukon ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 15:20 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов 1) На MS SQL нет проблем сделать отложенное обновление IV. Просто сделайте их поверх DWH, а не таблиц OLTP. При создании DWH они обновяться как MV. А если DWH нет, если работаем над OLTP таблицами? Тогда MV можно обновлять по расписанию. Почему вы говорите, что это неудобно? В чем неудобство? Оптимайзеру MS SQL можно при манипулировании IV помочь хинтами, однако на практике OLAPов это редкость. Довольно прозрачно как надо цеплять IV. В простых запросах конечно, а если например запрос объединяет 20 таблиц, которые при этом не лежат в звезде? Тогда оптимизатор может ошибаться. MDX и QE сравнивать некорректно. Для работы MDX под MOLAP обычно не нужно обращаться ни куда SQL-запросами. MDX запросы в MOLAP всегда быстрее в 2-3-7 раз аналогичных SQL-запросов. Похоже опять вы меня не поняли. Есть реляционный сервер. Есть многомерный. Мы делаем селект к реляционному серверу - запрос отрабатывается. Можем сделать MDX запрос к многомерному серверу - запрос отрабатывается гораздо быстрее. Но что нельзя сделать, так это то, чтобы когда писался селект к реляционной базе - оптимизатор знал что послав вместо реляционки MDX запрос к многомерной он получит ответ гораздо быстрее. Именно это делает QE. Пользователь не знает что его реляционный запрос перенаправлен на многомерный сервер - он просто получает ответ гораздо быстрее. Может вы просто не знаете, что в Oracle OLAP тоже есть свой язык многомерных запросов - OLAP DML? Вот QE как раз переписывает SQL в DML когда это удобно. В чем некорректность сравнения? Давайте не будем про неумерающий Oracle на 15 млн. фактов? Ok? Давайте. Если бы я не работал с хранилищем в котором было 200 миллионов фактов и не делал бы по этому хранилищу запросы с объединением 20 таблиц то я бы с вами может и согласился. При этом сервак работал медленно, да, этот запрос мог отрабатываться десятки минут, но сервер не умирал. Причем там не было ни партишинига ни MV. Ну и давайте вспомним пример, что я раньше приводил о 32 терабайтном хранилище в France Telecom. Хотите сказать, что у них там нет табличек на 20 миллионов записей? Аналог партишининга через UNION ALL это как раз то что и применялось до изобретения партишининга. Партиции и сейчас представляют собой отдельные таблицы, просто теперь оптимизатор знает в какой таблице что лежит. А что это за тест TPC где MS делает Oracle- специально заглянул туда - вроде Oracle делает MS с большим отрывом. Или я что то неуглядел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 18:15 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Коллега, давайте не будем спорить так горячо как представители разных религий. В к слову сказали очень интересную вещь. Если бы я не работал с хранилищем в котором было 200 миллионов фактов и не делал бы по этому хранилищу запросы с объединением 20 таблиц то я бы с вами может и согласился. При этом сервак работал медленно, да, этот запрос мог отрабатываться десятки минут, но сервер не умирал. Причем там не было ни партишинига ни MV. Ну и давайте вспомним пример, что я раньше приводил о 32 терабайтном хранилище в France Telecom. Хотите сказать, что у них там нет табличек на 20 миллионов записей? Можно пример запроса, который вы делали? Берусь утверждать, что это максимум звезда и "20 таблиц" все же преувеличение. MS SQL может оперировать 100 млн. только на "вручную" партицированных таблицах, по технологии как я указывал. Однако моя практика прикручивания MS AS к Oracle показывает, что он ведет себе не лучше MS SQL. Для нормальной работы также нужно делать Оптимизацию Схемы, так что не смотря даже на 40 табличек в связях все это приводит к плоскому запросу без join'ов. Фактически это уже нужно делать при 5-7 млн. фактов. База в Лаверне под Discoverer не живет без MV уже на 20 млн. фактов (и то время отклика 80 секунд). А вы говорите 200 млн… Или шаман знает заклятие? :) Куплю сервер за $2млн и все OK? Хотя мне кажется все просто. Факты просто порезаны на несколько таблиц и баз, а возможно и серверов. France Telecom думаю сделал также. Хранить в 1й таблице даже 10 млн. фактов часто маразм. Разные таблицы позволяют применить разное индексирование. Плюс есть история развития. В следующих периодах таблицы фактов обычно меняют наращивая аналитику. Аналог партишининга через UNION ALL это как раз то что и применялось до изобретения партишининга. Партиции и сейчас представляют собой отдельные таблицы, просто теперь оптимизатор знает в какой таблице что лежит. А что это за тест TPC где MS делает Oracle- специально заглянул туда - вроде Oracle делает MS с большим отрывом. Или я что то неуглядел? Коллега вы уже пропустили все шоу. При выходе MS SQL 2K ребята из MS развернули федеративный кластер и тогда побили Oracle в 2 раза. Лари бегал по форумам и всем кричал, что такая технология не применима в реальных приложениях (у Oracle насколько мне известно нет технологии федеративных кластеров которые масштабируются линейно). Это во многом действительно так. Есть 2 исключения: построение мощных Web-порталов и создание хранилищ данных. Если вы следите за TPC вы должны были отметить, что MS не принимает там активного участия в последние 1,5 года. Так вялый тест 64-битной версии и все. Кого нужно убеждать, что сервер которому уже пошел 4й год все еще на высоте? Рынок ждет Юкона. Хотя я думаю, MS бы потратив $20-30 млн. могбы снова всех повалить в TPC федеративным кластером. Просто надо покупать Пролиантов пачками и ставить рядом. Дисковое хранилище-то федеративное. Я думаю с выходом Юкона Microsoft победит Oracle в тестах TPC как по кластерному тесту, так и без кластера. Готов поспорить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2004, 23:31 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Это не религия, это что-то другое. :) Вот уж не думал что придется доказывать вам, что 20 миллионов записей - обычный объем. Я поищу в понедельник на работе пример запроса, если найду - пришлю. Нет там никакого преувеличения, так как нет и звезды, зато есть несколько outer join-ов. Хранилище представляло собой копию OLTP базы на определенный момент времени. Так что звезды там не были предусмотрены. Select count (*) по таблице фактов проходил за 40 минут :) Насчет того, что Discoverer умирает с 20 миллионами записей - нужно смотреть конкретный пример. Можно наверное придумать как и на 1 миллионе убить, при желании. :) Вот вы говорите 20 миллионов ситуация нетипичная. Странно. Вы же работаете с розницой. Там 20 миллионов фактов должны встречаться сплошь и рядом. Да и в первом посте этого топика спрашивали о том как работать с 200-300 миллионами записей... Посудите сами, что такое 20 миллионов записей? Возьмем какого-нибудь среднего регионального сотового оператора с объемом абонентской базы 100 тысяч человек. Он вам миллион записей нагенерит дня за 3 максимум. Если держать в хранилище звонки за полгода - год, то будет 50-100 миллионов записей. А если взять крупных операторов, то 10 миллионов записей у них падает в базу за день. Думаю московсоке метро вбивает в базу 10 миллионов записей о проходах через турникеты в день, а то и больше. Различные типы партишининга позволяют держать и работать с огромными объемами. Я проверю в понедельник, по-моему у меня на компьютере даже есть одна тестовая базулька на 12 миллионов записей. Другой пример. Я его как то уже приводил - мне нужно было загрузить и проанализировать большой справочник номенклатуры, около 40 миллионов наименований. Загрузил его в MS SQL, потом построил кубик с Distinct Count мерами в MS AS. И все это тоже на обычной персоналке с гигом памяти. Никаких тормозов ни при SQL запросах, ни при запросах к MS AS. Заметьте не Oracle даже :) Я спорю не о технологии даже, а о том что в наше время 20 миллионов записей это совершенно обычная вещь. Если бы лучшие серверы умирали на таких объемах как бы мы вообще жили? К слову в тестах tpc-с число, насколько я помню, показывает количество транзакций отработанных в секнуду. Вот на текущий момент Oracle лидирует с числом 1,184,893. В секунду. За сколько набьется 20 миллионов? За 17 секунд. Теперь по кластерам. Я не особый специалист в них. Попытался найти, что такое федеративный кластер - яндекс выдал мне две ссылки - одну на старый Микрософтовский прессрелиз, а вторую на ваш сайт :) Как это в оригинале называется? Я так понял, это когда персоналки объединяются вместе, база делится по их дискам, а результаты запроса собираютя по кусочку со всех? И как это работает? Какая технология? Не уверен, что у Oracle есть технология именно такая. Да и зачем плодить кучу персоналок, когда можно взять большой дисковый массив? И каким нибудь хэш партишинингом раскидать по этому массиву огромное количество записей с огромной же скоростью... Подождем Юкона, что делать :) Теперь-то MS SQL можно пускать на супердомах. Красота :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 02:29 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Это не религия, это что-то другое. :) Вот уж не думал что придется доказывать вам, что 20 миллионов записей - обычный объем. Я поищу в понедельник на работе пример запроса, если найду - пришлю. Нет там никакого преувеличения, так как нет и звезды, зато есть несколько outer join-ов. Хранилище представляло собой копию OLTP базы на определенный момент времени. Так что звезды там не были предусмотрены. Select count (*) по таблице фактов проходил за 40 минут :) Насчет того, что Discoverer умирает с 20 миллионами записей - нужно смотреть конкретный пример. Можно наверное придумать как и на 1 миллионе убить, при желании. :) Вот вы говорите 20 миллионов ситуация нетипичная. Странно. Вы же работаете с розницой. Там 20 миллионов фактов должны встречаться сплошь и рядом. Да и в первом посте этого топика спрашивали о том как работать с 200-300 миллионами записей... Посудите сами, что такое 20 миллионов записей? Возьмем какого-нибудь среднего регионального сотового оператора с объемом абонентской базы 100 тысяч человек. Он вам миллион записей нагенерит дня за 3 максимум. Если держать в хранилище звонки за полгода - год, то будет 50-100 миллионов записей. А если взять крупных операторов, то 10 миллионов записей у них падает в базу за день. Думаю московсоке метро вбивает в базу 10 миллионов записей о проходах через турникеты в день, а то и больше. Различные типы партишининга позволяют держать и работать с огромными объемами. Я проверю в понедельник, по-моему у меня на компьютере даже есть одна тестовая базулька на 12 миллионов записей. Другой пример. Я его как то уже приводил - мне нужно было загрузить и проанализировать большой справочник номенклатуры, около 40 миллионов наименований. Загрузил его в MS SQL, потом построил кубик с Distinct Count мерами в MS AS. И все это тоже на обычной персоналке с гигом памяти. Никаких тормозов ни при SQL запросах, ни при запросах к MS AS. Заметьте не Oracle даже :) Я спорю не о технологии даже, а о том что в наше время 20 миллионов записей это совершенно обычная вещь. Если бы лучшие серверы умирали на таких объемах как бы мы вообще жили? К слову в тестах tpc-с число, насколько я помню, показывает количество транзакций отработанных в секнуду. Вот на текущий момент Oracle лидирует с числом 1,184,893. В секунду. За сколько набьется 20 миллионов? За 17 секунд. Теперь по кластерам. Я не особый специалист в них. Попытался найти, что такое федеративный кластер - яндекс выдал мне две ссылки - одну на старый Микрософтовский прессрелиз, а вторую на ваш сайт :) Как это в оригинале называется? Я так понял, это когда персоналки объединяются вместе, база делится по их дискам, а результаты запроса собираютя по кусочку со всех? И как это работает? Какая технология? Не уверен, что у Oracle есть технология именно такая. Да и зачем плодить кучу персоналок, когда можно взять большой дисковый массив? И каким нибудь хэш партишинингом раскидать по этому массиву огромное количество записей с огромной же скоростью... Подождем Юкона, что делать :) Теперь-то MS SQL можно пускать на супердомах. Красота :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 02:31 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Поправка. TPC считает число транзакций в минуту, а не в секунду. Ну в общем, это мало что меняет. 20 миллионов за 17 секунд или за 17 минут, в данном случае не важно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 02:41 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Это не религия, это что-то другое. :) Вот уж не думал что придется доказывать вам, что 20 миллионов записей - обычный объем. Это совсем необычный объем. Есть только несколько видов приложений где фактов сразу много (больше 20 млн): розница, телеком, производственная телеметрия, веб-логи. Вот пожалуй и все. О московском метро давайте не будем, я как раз с этим пересекался. Если сейчас начну рассказывать так все со смеху попадают. Просто Макбет шоу, там до OLAP'ов как до Луны. Результаты работы крупной производственной группы масштаба Лукой-Коми это всего 20 млн. фактов год. Правда если взять производственную телеметрию нефтянки там быстро набегает 100 млн. за месяц. Однако там как раз удобна грубая агрегация. Потом объем фактов совсем не главный показатель, OLAP-системы более чувствительны к количеству и качеству измерений. Например, Distinct Count анализ на 20 млн. фактов сложнее по оптимизации чем тупой отчет на 100 млн. Единственное что нужно знать, так это то что методика оптимизации MS AS меняется если фактов больше 20 млн. или если измерений в кубах стало больше 20. Теперь по кластерам. Я не особый специалист в них. Попытался найти, что такое федеративный кластер - яндекс выдал мне две ссылки - одну на старый Микрософтовский прессрелиз, а вторую на ваш сайт :) Как это в оригинале называется? Еще это называют distributed view. Еще просто говорят "кластер MS SQL", но чтобы не путать его с аварийно-устойчивым кластером MS SQL я говорю как MS - "федеративный кластер". Федеративный - это значит, что все ноды кластера независимы. Для сравнения у Oracle хралище данных может быть только на одном сервере в кластере. Интересно, что федеративный кластер MS SQL можно делать географически распределенным (ноды это сервера в разных географических точках). Такой кластер сделан в Сатурне для объединения локальных DWH в филиалах в кластерное предеставление. Не только быстро, но и удобно. Группа серверов смотрится как один. PS. И вообще выходные, пить пиво надо. А мы тут кластеры, кластеры.... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 12:55 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
2 Владимир Иванов Федеративный - это значит, что все ноды кластера независимы. Как я понимаю, в этом случае, когда вырубается один из узлов кластера - система остается без части данных? То есть кластер предназначен для ускорения доступа, но для обеспечения высокой доступности - нет? Oracle хралище данных может быть только на одном сервере в кластере Это не совсем так. У Oracle кластер - это несколько серверов с единым дисковым массивом. Сказать на каком из узлов находится хранилище нельзя, да и не имеет смысла. В этой архитектуре в случае сбоя одного из узлов, нагрузка перераспределится на оставшиеся, все данные будут по-прежнему доступны. А вообще по Oracle кластерам у нас на форуме есть как минимум один специалист - DimaR, может он что-то добавит. Пойду пить пиво :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 13:13 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
В СУБД Teradata, то, о чём вы говорите (кластерная, а точнее массивно-параллельная архитектура "shared nothing") существует с самого начала (1983 год) и по сей день. И хэш-партишионинг тоже. Удивительно, что Оракл только совсем недавно до этого дошёл. В MS, насколько я знаю (поправьте меня, если это не так), хэш-пиртишионинг отсутствует, что делает практически невозможным равномерное распределение данных между узлами кластера, а соответственно, и эффективное распараллеливание запросов. И вообще там под вопросом находится параллелизм внутри запросов. Умеет ли MS параллельно выполнять JOIN, сортировку, агрегирование, чтение индексов, вставку, обновление, удаление, создание индексов, архивирование, восстановление, full-scan таблиц, наконец? Все эти возможности необходимы для создания и эксплуатации больших хранилищ данных. Вторая СУБД - IBM DB2. Про неё тоже, почему-то, здесь никто не говорит. Хотя она тоже очень хорошие результаты показывает в массивно-параллельной конфигурации. Желаю удачно попить пива :) С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 14:35 |
|
||
|
Опыт в рознице
|
|||
|---|---|---|---|
|
#18+
Кто знает, каков уровень цен на СУБД Teradata и на сопутствующее железо для серьезных объемов данных от 100 миллионов записей? Какова минимальная конфигурация/стоимость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2004, 15:54 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32476402&tid=1871945]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 276ms |
| total: | 484ms |

| 0 / 0 |
