powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Что за зверь такой Teradata
153 сообщений из 153, показаны все 7 страниц
Что за зверь такой Teradata
    #32899919
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
У нас в Киеве начал активно продвигать себя такой бренд как Терадата. Совместно с местным Софтлайном. Хотелось бы узнать что это за продукт. Я слышал, что изначально он разрабатывался как специальная СУБД для БИ. Какие у него возможности, какой формат хранения данных (РОЛАП, МОЛАП), есть ли возможность работы со сторонними Клиентами (например Ехсел, или что-то рукописное), есть ли свои готовые клиенты (а-ля Дискаверер), есть ли специалисты на рынке? А то кроме маркетинговых "всё круто и быстро" в сети я не нашёл :(
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32900293
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel13Добрый день.
У нас в Киеве начал активно продвигать себя такой бренд как Терадата. Совместно с местным Софтлайном. Хотелось бы узнать что это за продукт. Я слышал, что изначально он разрабатывался как специальная СУБД для БИ. Какие у него возможности, какой формат хранения данных (РОЛАП, МОЛАП), есть ли возможность работы со сторонними Клиентами (например Ехсел, или что-то рукописное), есть ли свои готовые клиенты (а-ля Дискаверер), есть ли специалисты на рынке? А то кроме маркетинговых "всё круто и быстро" в сети я не нашёл :(

Сравнение с Excel, конечно, прикольно.
Если я не ошибаюсь,
Только один момент - teradata одна из самый "старых по рождению" баз данных. Это была иерархическая база данных, сейчас она почему то RDBMS
Вообщем, она даже старше, чем DB2..
И непонятно, что за "маркетинговую инфу" ты нашел..
Вообще говоря, инфы очень много, можно начать с http://www.teradata.com
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32901588
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TorinТолько один момент - teradata одна из самый "старых по рождению" баз данных

Это правда. Терадата - одна из старейших реляционных баз данных.

TorinЭто была иерархическая база данных, сейчас она почему то RDBMS

Она всегда была реляционной.

Angel13Я слышал, что изначально он разрабатывался как специальная СУБД для БИ

Это так. Терадата изначально разрабатывалась для создания систем поддержки принятия решений (хранилищ данных, хотя в то время такого термина ещё не было).
Когда она создавалась (конец 70-х, начало 80-х), кроме мейнфреймов ничего не было. Была маленькая компания под названием Intel. Инженеры Teradata сделали ставки на микропроцессоры Intel. Идея была такая - объединить большое количество микропроцессоров для параллельной обработки данных. Таким образом появилась архитектура MPP - массивно-параллельная обработка.
Сегодня это самая мощная реляционная СУБД для хранилищ данных. Крупнейшие в мире хранилища данных работают на СУБД Терадата.
Она отлично масштабируется, имеет высокую производительность и очень легка в обслуживании. Поддерживает стандарт ANSI SQL, доступна для любых клиентских приложений (через интерфейсы ODBC, JDBC, CLI).

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

TorinВообще говоря, инфы очень много, можно начать с http://www.teradata.com

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


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

Спасибо за разъяснения и в этом и в другом топике.
А не практикуется у NCR раздача пробных версий?
Посмотреть-покрутить?
И если да, то где можно скачать?

Будут еще вопросы :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32902067
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не за что. Задавайте вопросы. Отвечу.
Демо-версии практикуются. Можно заказать по ссылке ниже.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 Teradata Warehouse 7.0 Demo CD  includes the following:
- Teradata Database V2R5.0 
- Teradata Tools and Utilities 7.0 including Teradata Warehouse Builder, Teradata Priority Scheduler, Teradata Analyst Pak and much more. 
- Teradata Warehouse Miner 3.2 
- Applications to demonstrate the following: 
   - Complex queries using Partitioned Primary Index, OLAP functions,
   - Stored Procedures and Triggers. 
   - Continuous loading and real-time analytics with Teradata Warehouse Builder,
   - Teradata Warehouse Miner and models executed via Stored Procedure 
- Teradata User Documentation


Скачать не практикуется. Но, если будут проблемы с заказом, то обращайтесь. Посодействую в получении.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32906698
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за информацию. Диск заказал. Бум ждать :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32914613
олапист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ткните плиз ссылкой на прайслисты
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32914756
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она по прайслистам не продаётся.
Задавайте лучше технические вопросы.
Тут не интернет-магазин, а технический форум :)

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32914828
олапист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прежде чем к тех вопросам переходить хочется хотя бы порядок цен прикинуть, типа стоит ли овчинка выделки
разве это оффтопик?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915173
Guest_321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прежде чем к тех вопросам переходить хочется хотя бы порядок цен прикинуть, типа стоит ли овчинка выделки
разве это оффтопик?


Вот вот, и меня тоже этот вопрос интересует. Например, сколько стоит продвинутая конфигурация СУБД Терадата (enterprise) для минимально возможного количества пользователей, если ее хочется развернуть и использовать как хранилище данных для сторонней ОЛАП-системы на 8-процессорном сервере? У Оракла цены кусаются - более 200 тысяч долларов...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915231
олапист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Guest_321

Простите, а вы случайно не Jurii?
http://sql.ru/forum/actualthread.aspx?tid=159961
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915238
guest-aaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так прокол .
громко сам с собою ....
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915239
GUEST_1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даааааа

Плохой из Вас Юрий конспиратор :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915305
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, пора вводить обязательную регистрацию с подтверждением по email как это делается в серьёзных форумах.

Юрий, не забывайте, пожалуйста, выполнять

Правила форумаЗаполнить свой профиль и по возможности указать свое полное имя

Не надо стыдиться себя самого.

2ALL: Скорее всего, цен на Терадату вы здесь не увидите.
Ещё раз призываю обсуждать технические вопросы.

Если хотите цены - обращайтесь, пожалуйста, в компанию, которая эту самую Терадату продаёт.

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

Если хотите цены - обращайтесь, пожалуйста, в компанию, которая эту самую Терадату продаёт.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

А можно узнать название компании, которая продаёт Терадату?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915713
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно.

Компания называется NCR.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915926
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой респект NCR. Демо диск доставили меньше чем за неделю.
Процесс установки сильно смахивает на установку MsSQL - всё просто и понятно. Единственное непонятное мне явления - так это отсутсвие Warehouse Builder'a про который говорилось на обложке.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915974
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то Warehouse Builder должен устанавливаться в рамках Teradata Client.
У Вас должна быть группа Teradata Client, поищите там Teradata Warehouse Builder Visual Interface.
Может, просто не установили клиента?
Что у Вас установилось, можете перечислить?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32915997
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 олапист & guest-aaaa & GUEST_1234 & Константин Лисянский:

Я являюсь специалистом по Cognos, и не хочется усложнять жизнь читателям моих постингов - поэтому сообщение в форум Работа, и постинг про терадату я писал от имени Guest_321.

Если хотите цены - обращайтесь, пожалуйста, в компанию, которая эту самую Терадату продаёт.
Компания называется NCR.


Константин, есть ли у Вас знакомые из компании NCR? Хотелось бы с ними пообщаться, пивка попить, все-таки они - партнеры Cognos :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32916040
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriiЯ являюсь специалистом по Cognos, и не хочется усложнять жизнь читателям моих постингов - поэтому сообщение в форум Работа, и постинг про терадату я писал от имени Guest_321.

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

Знакомых в NCR у меня много поскольку я сам работаю в этой компании.

Как и у любой большой компании у NCR много партнёров - BusinessObjects, Cognos, Hyperion, Microsoft, Microstrategy, SAS и другие (перечислены не в порядке важности, а по алфавиту).

Какие вопросы хотите обсуждать за пивом?


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

Какие вопросы хотите обсуждать за пивом?

Во-первых, стоит выпить за партнерство между Cognos и NCR :)

Что касается серьезных дел, то хотелось бы обсудить вопросы масштабирования хранилищ данных на Терадате, и как она работает на мультипроцессорных серверах, вопросы соотношения цена/качество.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32917254
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коль пошел разговор о хранилище данных, то есть хоть что то чем Oracle 9I уступает Teradata??
Oracle тоже промышленная СУБД и масстабируеться хорошо и иммеет много других возможностей опримизации и расширенный диалек включая аналитические функции по работе с данными. А Oracle 10 имеет очень интересный язык похожий на MDX ну если уж очен брать. Мне интересно что же это за монстр Teradata??
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32917378
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriiВо-первых, стоит выпить за партнерство между Cognos и NCR :)

Ну, если честно, то у меня много других поводов выпить. Хотя и за это готов тоже. Славься Когнос

JuriiЧто касается серьезных дел, то хотелось бы обсудить вопросы масштабирования хранилищ данных на Терадате, и как она работает на мультипроцессорных серверах, вопросы соотношения цена/качество.

Теоретически масштабируются до 2048 процессоров (1024 узла в массивно-параллельной конфигурации).

Практически пока самая большая система - около 300 узлов. Объёмы данных исчисляются десятками и сотнями терабайт.

Так что, масштабируется

Чтобы понять, как Терадата работает на мультипроцессорных системах (а на других системах большого смысла в ней нет) достаточно почитать Introduction to Teradata Warehouse . Там это объясняется.

Соотношение цена/качество замечательное. Очень качественный продукт

OLAPMASTERКоль пошел разговор о хранилище данных, то есть хоть что то чем Oracle 9I уступает Teradata??

Терадата является специализированной СУБД для корпоративных хранилищ данных. Oracle в основном позиционируется для OLTP. Терадата на рынке OLTP не присутствует, зато доминирует на рынке больших корпоративных хранилищ данных.

Терадата является масштабируемой, высокопроизводительной, лёгкой в сопровождении СУБД.

В силу того, что Терадата работает на массивно-параллельных машинах в архитектуре shared nothing, её масштабируемость линейная. То есть, простым добавлением железа мы можем пропорционально нарастить мощность системы.
Оракл работает на SMP-системах в архитектуер shared disk, производительность которых растёт хуже, чем линейно при наращивании системы (имеется эффект насыщения).

Оптимизатор Терадаты изначально был cost-based (то есть, развивался около 20 лет). В Оракл оптимизатор только недавно стал cost-based. Выводы делайте сами.


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

На самом деле, все различия кроются в архитектуре.
Терадата использует несколько базовых принципов:
1. Массивно-параллельная архитектура с высокой степенью распараллеливания всех запросов. Соответственно, возможность собрать систему с заданным уровнем производительности.
2. Хэш-партишионинг как средство для равномерного распределения данных между единицами параллелизма для обеспечения высокой степени параллельной обработки.
3. Продвинутый оптимизатор, с эффективными алгоритмами параллельной обработки данных.
4. Высокая степень избыточности (по необходимости) для обеспечения высокой готовности. Например, помимо поддержки RAID и дублирования узлов в Терадате есть дублирование таблиц на уровне СУБД. Называется FALLBACK - фактически полное дублирование избранных таблиц в двойном экземпляре для того, чтобы суметь пережить падение узлов системы.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32918399
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский OLAPMASTERКоль пошел разговор о хранилище данных, то есть хоть что то чем Oracle 9I уступает Teradata??Терадата является специализированной СУБД для корпоративных хранилищ данных. Oracle в основном позиционируется для OLTP. Терадата на рынке OLTP не присутствует, зато доминирует на рынке больших корпоративных хранилищ данных.
Терадата является масштабируемой, высокопроизводительной, лёгкой в сопровождении СУБД.
Ну это не совсем верно, Oracle давно не делает упора только на OLTP.
В СУБД Oracle очень много фич, обычно присутствующих только в специализированных базах.
С масштабируемостью тоже ничего. Вот нашел наконец линку http://www.wintercorp.com/VLDB/2003_TopTen_Survey/All%20Winners.pdf
Видно, что Oracle неплохо себя чувствует в DSS, даже по сравнению с Терадатой.

Кстати, а почему Терадаты нет в TPC-H тестах?

Константин ЛисянскийВ силу того, что Терадата работает на массивно-параллельных машинах в архитектуре shared nothing, её масштабируемость линейная. То есть куски базы данных распределяются между серверами?

Константин ЛисянскийОптимизатор Терадаты изначально был cost-based (то есть, развивался около 20 лет). В Оракл оптимизатор только недавно стал cost-based. Выводы делайте сами.Ну "недавно" это уже лет около 10. Да и потом в этом деле совершенно не обязательно алгоритм разрабатывать 20 лет. Можно и за месяц придумать что-то эффективное :)

Константин ЛисянскийНа самом деле, все различия кроются в архитектуре.
Терадата использует несколько базовых принципов:
1. Массивно-параллельная архитектура с высокой степенью распараллеливания всех запросов. Соответственно, возможность собрать систему с заданным уровнем производительности.
В Oracle тоже запросы параллелятся, но допускаю что в Терадате это может быть делается лучше.

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

Константин Лисянский3. Продвинутый оптимизатор, с эффективными алгоритмами параллельной обработки данных.Ну про это я уже написал. "Продвинутость" оптимизаторов сравнивать сложно.

Константин Лисянский4. Высокая степень избыточности (по необходимости) для обеспечения высокой готовности. Например, помимо поддержки RAID и дублирования узлов в Терадате есть дублирование таблиц на уровне СУБД. Называется FALLBACK - фактически полное дублирование избранных таблиц в двойном экземпляре для того, чтобы суметь пережить падение узлов системы.
В Oracle для переживания падения узлов есть Real Application Clusters.
А дублирование и страйпинг на уровне СУБД делается, например с помощью ASM (Automatic Storage Management)

P.S. Вообще, неблагодарное это занятие - рассказывать чем твой продукт лучше, чем продукт конкурента, а тем более чем конкурент хуже :)
Конкуренты обычно знают свой продукт лучше и могут найти ответ.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32918553
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffНу это не совсем верно, Oracle давно не делает упора только на OLTP.

Сравнительно недавно по сравнению с Терадатой :)

BirkhoffВ СУБД Oracle очень много фич, обычно присутствующих только в специализированных базах.

Абсолютно согласен. В Оракл, на мой взгляд, фич больше, чем в любой другой СУБД.

BirkhoffС масштабируемостью тоже ничего. Вот нашел наконец линку http://www.wintercorp.com/VLDB/2003_TopTen_Survey/All%20Winners.pdf

Исследование Винтера потихоньку начинает дискредитировать себя.
Например, в нём не участвуют крупнейшие клиенты IBM и Терадаты Подумайте, у них ведь нет никакого стимула участвовать в нём.
Ну, и потом, Винтер не оценивает сложность запросов - простое деление OLTP/DSS ещё ни о чём не говорит. Нет ничего похожего на full disclosure report как в тестах TPC (опять-таки, зачем клиентам это нужно?).
Так что, надо осторожно относиться к таким исследованиям (имея ещё в виду, что маленькая компания не может быть неангажированной каким-нибудь производителем :).

BirkhoffВидно, что Oracle неплохо себя чувствует в DSS, даже по сравнению с Терадатой.

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


BirkhoffКстати, а почему Терадаты нет в TPC-H тестах?
Терадата долгое время участвовала в тестах, начиная с TPC-D и всегда занимала первые места.
Но эти тесты очень ограничены и удалены от реальной жизни. Те запросы, которые выполняются клиентами Терадаты гораздо сложнее тестов TPC.
В одно время производители поняли, что TPC - это здорово, и стали встраивать в свои СУБД фичи, специально предназначенные для победы в тестах. Согласитесь, это не очень продуктивное занятие, если эти новые фичи не помогают в реальной жизни.
Ну, и потом, эти тесты стоят довольно дорого. NCR - не такая богатая компания, как, скажем, Оракл или IBM. Поэтому эти деньги идут на R&D, что, на мой взгляд более полезно.
Ну, и наконец, надо заметить, что в тот момент, когда Терадата ушла с тестов TPC она очень сильно опережала ближайших соперников (которые, по-моему, только через год смогли продемонстрировать аналогичный результат). То есть, это был уход сильного игрока, а не слабого.

BirkhoffТо есть куски базы данных распределяются между серверами?

Абсолютно верно. С одним уточнением - куски КАЖДОЙ таблицы (каждого индекса тоже), включая даже таблицы системного каталога.

BirkhoffНу "недавно" это уже лет около 10. Да и потом в этом деле совершенно не обязательно алгоритм разрабатывать 20 лет. Можно и за месяц придумать что-то эффективное :)

В какой версии CBO от Оракл перестал иметь необходимость принимать от разработчика хинты для нормальной работы? :)
За месяц - ГЫ :)

BirkhoffВ Oracle тоже запросы параллелятся, но допускаю что в Терадате это может быть делается лучше.

Это правильное допущение :)


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

Да, но отличие в том, что в Терадате файловая система построена на хэшировании, то есть хэширование не только используется для того, чтобы раскидать данные, но и для того, чтобы потом получить к этим данным доступ. То есть, зная хэш-код записи мы всегда знаем куда надо идти, чтобы получить к ней доступ. Ни одна СУБД, использующая хэширование не использует хэширование для доступа к данным, только Терадата.
Любой другой вид партишионинга не даёт такого равномерного распределения данных для обеспечения эффективной параллельной обработки данных. Поэтому в Терадате другие виды распределения данных не применяются. Есть так называемый RANGE и CASE партишионинг, но они играют вторичную роль. Данные всегда сначала хешируются.

Birkhoff"Продвинутость" оптимизаторов сравнивать сложно.

В принципе, да, довольно сложно. Надо достаточно хорошо знать этот предмет.

BirkhoffВ Oracle для переживания падения узлов есть Real Application Clusters.

Всё здорово, но где Вы видели систему на Оракл, состоящую хотя бы из десятка узлов (не говоря о сотнях)?

BirkhoffА дублирование и страйпинг на уровне СУБД делается, например с помощью ASM (Automatic Storage Management)

Не знаю, что это такое. Можно ли, например, в Оракл средствами СУБД продублировать только одну критически важную таблицу?

BirkhoffP.S. Вообще, неблагодарное это занятие - рассказывать чем твой продукт лучше, чем продукт конкурента, а тем более чем конкурент хуже :)
Конкуренты обычно знают свой продукт лучше и могут найти ответ.

Согласен на все сто. На то она и конкуренция. Я не старался сказать, что Оракл хуже. Я просто хотел показать, какие свойства есть у Терадаты и как они обеспечивают ей конкурентные преимущества. Несмотря на провокационность Ваших вопросов :)


Удачи!

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32918879
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийДа, но есть факт - за последние три года более сотни крупных компаний заменили Оракл на Терадату в качестве корпоративного хранилища данных.
ЗА прошлый год не было ни одной замены в обратную сторону (в предыдущие годы только несколько, которые также можно поставить под вопрос).
Конкретно у меня нет такой статистики. Ни в ту ни в другую сторону, так что примем это на веру.

Константин Лисянский BirkhoffТо есть куски базы данных распределяются между серверами?Абсолютно верно. С одним уточнением - куски КАЖДОЙ таблицы (каждого индекса тоже), включая даже таблицы системного каталога.
Вот это кстати очень интересно. А как происходит процесс добавления нового сервера в кластер? Делается ли распределение данных автоматически или это делает администратор?

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

И как происходит апдейт данных и распределение проапдейченных данных по узлам?

И как обеспечивается отказоустойивость кластера в котором 300 серверов. Ведь вероятность выхода из строя какого то из узлов резко возрастает?
Потом как можно распараллелить в такой схеме операцию типа Distinct count?

Константин ЛисянскийВ какой версии CBO от Оракл перестал иметь необходимость принимать от разработчика хинты для нормальной работы? :)
Начиная с 10й Oracle предупреждает, что использовать хинты - мешать работе сервера. Rule based optimizer не суппортится и в будущем может вообще исчезнуть.

Константин ЛисянскийНи одна СУБД, использующая хэширование не использует хэширование для доступа к данным, только Терадата.
Если данные в Оракле распартиционированы хешем, неужели он потом не используется для извлечения? :)

Константин Лисянский BirkhoffВ Oracle для переживания падения узлов есть Real Application Clusters.Всё здорово, но где Вы видели систему на Оракл, состоящую хотя бы из десятка узлов (не говоря о сотнях)?Ну вы же сами говорите, что у Терадаты модель shared nothing. У Oracle это не так. Поэтому масштабирование достигается не кластеризацией на 300 серверов, а железом и дисковыми массивами.

Константин Лисянский BirkhoffА дублирование и страйпинг на уровне СУБД делается, например с помощью ASM (Automatic Storage Management)Не знаю, что это такое. Можно ли, например, в Оракл средствами СУБД продублировать только одну критически важную таблицу?В силу опять же другой модели дублируются все таблицы, хотя допускаю, что можно придумать схему, при которой будет дублироваться только одна, но не уверен что это нужно.

Константин Лисянский BirkhoffP.S. Вообще, неблагодарное это занятие - рассказывать чем твой продукт лучше, чем продукт конкурента, а тем более чем конкурент хуже :)
Конкуренты обычно знают свой продукт лучше и могут найти ответ.Согласен на все сто. На то она и конкуренция. Я не старался сказать, что Оракл хуже. Я просто хотел показать, какие свойства есть у Терадаты и как они обеспечивают ей конкурентные преимущества. Несмотря на провокационность Ваших вопросов :)
Да я в общем-то не провоцирую, а пытаюсь получить ответы на вопросы, которые меня интересуют :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32918936
BirkhoffНу вы же сами говорите, что у Терадаты модель shared nothing. У Oracle это не так. Поэтому масштабирование достигается не кластеризацией на 300 серверов, а железом и дисковыми массивами.
Странно, а в доке по 10g пишут, что при помощи RAC платформы shared nothing поддерживаются, и даже некие рекомендации есть как partitioning в этом случае лучше организовать.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919079
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров BirkhoffНу вы же сами говорите, что у Терадаты модель shared nothing. У Oracle это не так. Поэтому масштабирование достигается не кластеризацией на 300 серверов, а железом и дисковыми массивами.
Странно, а в доке по 10g пишут, что при помощи RAC платформы shared nothing поддерживаются, и даже некие рекомендации есть как partitioning в этом случае лучше организовать.
Честно говоря первый раз об этом слышу. (из чего, конечно, не следует, что этого нет :) )
А можете показать, где в документации об этом написано?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919132
BirkhoffЧестно говоря первый раз об этом слышу. (из чего, конечно, не следует, что этого нет :) )
А можете показать, где в документации об этом написано?

Data Warehousing Guide 10g Release 1 (10.1)
Page 5-28

"... In Oracle Real Application Clusters environments on shared-nothing platforms
(MPPs), each hash partition of sales should preferably have affinity to only
one node in order to avoid remote I/Os ..."


Вероятно, пример Teradata и DB2 постепенно и Oracle начинает склонять к shared nothing.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919203
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffВот это кстати очень интересно. А как происходит процесс добавления нового сервера в кластер? Делается ли распределение данных автоматически или это делает администратор?

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

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

Такого выделенного сервера нет.
Существуют виртуальные прецессы (называются Parsing Engine - PE), которые управляют в том числе и пользовательскими сессиями. Каждый процесс обслуживает до 120 соединений. Такие процессы конфигурируются так, что они работают на нескольких узлах системы.
Процессы, работающие на разныз узлах общаются посредством коммуникационного слоя, состоящего из железки (коммутатор BYNET) и соответствующего софта (если сообщаются процессы внутри одного узла, трафик остаётся локальным через драйвер BYNET).

BirkhoffИ как происходит апдейт данных и распределение проапдейченных данных по узлам?
Похоже, я этот вопрос не до конца понял. Если имеется в виду добавление нового узла, часть данных мигрирует, это я уже упомянул.
Если имеется в виду операция UPDATE, то если она касается так называемого PRIMARY INDEX (набора столбцов, по которым производится распределение данных), то при его изменении с большой вероятностью запись отправляется на другой узел.

BirkhoffИ как обеспечивается отказоустойивость кластера в котором 300 серверов. Ведь вероятность выхода из строя какого то из узлов резко возрастает?

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

BirkhoffПотом как можно распараллелить в такой схеме операцию типа Distinct count?

Могу пока только привести пан запроса.

Запрос:

Код: plaintext
select count(distinct DayDT) from w_SALES_HISTORY

План:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Explanation
   1 ) First, we lock a distinct RPDM30."pseudo table" for read on a
     RowHash to prevent global deadlock for RPDM30.w_SALES_HISTORY. 
   2 ) Next, we lock RPDM30.w_SALES_HISTORY for read. 
   3 ) We do an all-AMPs SUM step to aggregate from
     RPDM30.w_SALES_HISTORY by way of an all-rows scan with no residual
     conditions, and the grouping identifier in field  1025 .  Aggregate
     Intermediate Results are computed globally, then placed in Spool  4 . 
     The input table will not be cached in memory, but it is eligible
     for synchronized scanning.  The size of Spool  4  is estimated with
     high confidence to be  1  row.  The estimated time for this step is
      9 . 49  seconds. 
   4 ) We do an all-AMPs SUM step to aggregate from Spool  4  (Last Use) by
     way of an all-rows scan.  Aggregate Intermediate Results are
     computed globally, then placed in Spool  6 .  The size of Spool  6  is
     estimated with high confidence to be  1  row.  The estimated time
     for this step is  0 . 05  seconds. 
   5 ) We do an all-AMPs RETRIEVE step from Spool  6  (Last Use) by way of
     an all-rows scan into Spool  1  (group_amps), which is built locally
     on the AMPs.  The size of Spool  1  is estimated with high
     confidence to be  1  row.  The estimated time for this step is  0 . 03 
     seconds. 
   6 ) Finally, we send out an END TRANSACTION step to all AMPs involved
     in processing the request.
  -> The contents of Spool  1  are sent back to the user as the result of
     statement  1 . 

Видно, что непараллельных шагов здесь нет. Очевидно, распараллеливается.
Тонкостей реализации именно DISTINCT COUNT не знаю. Сорри.



BirkhoffНачиная с 10й Oracle предупреждает, что использовать хинты - мешать работе сервера. Rule based optimizer не суппортится и в будущем может вообще исчезнуть.

Вот это я и имел в виду. То есть в 9ке хинты всё ещё нужны. В Терадате они отсутствуют напрочь.

BirkhoffЕсли данные в Оракле распартиционированы хешем, неужели он потом не используется для извлечения? :)

ОК. Требуются пояснения.
Дело в том, что в Терадате при создании таблицы вы должны указать набор столбцов, который будет использоваться для хэширования (PRIMARY INDEX).
Хэш-функция в Терадате всегда выдаёт один и тот же результат для одного и того же входного значения (т.е это не round robbin и не генератор случайных чисел).
Файловая система Терадаты в пределах одной и той же конфигурации (количество единиц параллелизма) ВСЕГДА отправляет запись с одним и тем же значением PRIMARY INDEX на одну и ту же единицуу параллелизма (в Терадате она называется Access Module Processor - AMP).
Соответвенно, если нам требуется извлечь эту запись (т.е выполнить запрос вида SELECT ... FROM t1 WHERE PI = ...), то мы всегда знаем какой AMP хранит эту запись.

В Оракл значение столбца (столбцов), по которым производится хеширование не даст возможности напрямую извлечь запись. Нужен дополнительный индекс.
В Терадате же Primary Index - это не индекс, а функция.

BirkhoffНу вы же сами говорите, что у Терадаты модель shared nothing. У Oracle это не так. Поэтому масштабирование достигается не кластеризацией на 300 серверов, а железом и дисковыми массивами.

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

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

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

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

Опять-таки, разница между "можно придумать" и "активно используется" довольно велика. Представьте себе ситуацию, когда громадная (миллиарды записей) таблица хранится в одной копии на дисовом массиве, который внезапно выходит из строя. Что делаем? Ставим новый массив и заливаем данные из бэкапа или грузим повторно из источников. Как долго? Долго.
Если есть FALLBACK-таблица, то система просто продолжает работать и журналировать все изменения, пока мы не поднимем упавший массив. После этого система автоматом синхронизирует таблицы.

BirkhoffДа я в общем-то не провоцирую, а пытаюсь получить ответы на вопросы, которые меня интересуют :)

Как говорится в известной рекламе - Вэлком !!!

С радостью буду отвечать и на другие вопросы.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919273
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров BirkhoffЧестно говоря первый раз об этом слышу. (из чего, конечно, не следует, что этого нет :) )
А можете показать, где в документации об этом написано?

Data Warehousing Guide 10g Release 1 (10.1)
Page 5-28

"... In Oracle Real Application Clusters environments on shared-nothing platforms
(MPPs), each hash partition of sales should preferably have affinity to only
one node in order to avoid remote I/Os ..."


Вероятно, пример Teradata и DB2 постепенно и Oracle начинает склонять к shared nothing.
Какая-то странная эта цитата. Больше нигде в документации про shared nothing нет, даже в руководстве по администрированию кластера. Нужно покопать этот вопрос. Мне кажется, если это и есть, то это какая-то экзотика, которая никем не используется.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919318
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский BirkhoffИ как происходит апдейт данных и распределение проапдейченных данных по узлам?
Похоже, я этот вопрос не до конца понял. Если имеется в виду добавление нового узла, часть данных мигрирует, это я уже упомянул.
Если имеется в виду операция UPDATE, то если она касается так называемого PRIMARY INDEX (набора столбцов, по которым производится распределение данных), то при его изменении с большой вероятностью запись отправляется на другой узел.
Собственно я имел в виду, что происходит при обновлении хранилища (вставке новых записей, или апдейте) Блокируется ли доступ пользователям, пока записи расползаются по серверам или какой то другой механизм работает?

Константин Лисянский
BirkhoffПотом как можно распараллелить в такой схеме операцию типа Distinct count?Могу пока только привести пан запроса.

Видно, что непараллельных шагов здесь нет.
[....]
Очевидно, распараллеливается.
Тонкостей реализации именно DISTINCT COUNT не знаю. Сорри.
Судя по этому плану (насколько я его понял), параллельно данные считываются из разных партиций таблиц в SPOOL 4, а по спулу уже идет агрегация. Хотя там и написано all-AMP, но если spool один, то как по нему можно устроить параллельную обработку?

Константин Лисянский
BirkhoffЕсли данные в Оракле распартиционированы хешем, неужели он потом не используется для извлечения? :)ОК. Требуются пояснения.
Дело в том, что в Терадате при создании таблицы вы должны указать набор столбцов, который будет использоваться для хэширования (PRIMARY INDEX).
Хэш-функция в Терадате всегда выдаёт один и тот же результат для одного и того же входного значения (т.е это не round robbin и не генератор случайных чисел).
Файловая система Терадаты в пределах одной и той же конфигурации (количество единиц параллелизма) ВСЕГДА отправляет запись с одним и тем же значением PRIMARY INDEX на одну и ту же единицуу параллелизма (в Терадате она называется Access Module Processor - AMP).
Соответвенно, если нам требуется извлечь эту запись (т.е выполнить запрос вида SELECT ... FROM t1 WHERE PI = ...), то мы всегда знаем какой AMP хранит эту запись.

В Оракл значение столбца (столбцов), по которым производится хеширование не даст возможности напрямую извлечь запись. Нужен дополнительный индекс.
В Терадате же Primary Index - это не индекс, а функция.Не согласен (или не понял).
Например, вот как создается секционированная таблица с типом партишининга hash.
Код: plaintext
1.
2.
3.
4.
CREATE TABLE dept (deptno NUMBER, deptname VARCHAR( 32 ))
     STORAGE (INITIAL 10K)
     PARTITION BY HASH(deptno)
       (PARTITION p1 TABLESPACE ts1, PARTITION p2 TABLESPACE ts2,
        PARTITION p3 TABLESPACE ts1, PARTITION p4 TABLESPACE ts3);
Таблспейсы могут быть физически разнесены по дискам и когда мы делаем select - Oracle будет вычислять хэш-функцию для каждого deptno и по ней поймет в каком таблспейсе лежит конкретная запись.

Константин ЛисянскийПобочный эффект - в случае Терадаты нужно меньше процессоров для получения системы аналогичной производительности.
Ок. Возможно.

Константин Лисянский BirkhoffВ силу опять же другой модели дублируются все таблицы, хотя допускаю, что можно придумать схему, при которой будет дублироваться только одна, но не уверен что это нужно.Опять-таки, разница между "можно придумать" и "активно используется" довольно велика. Представьте себе ситуацию, когда громадная (миллиарды записей) таблица хранится в одной копии на дисовом массиве, который внезапно выходит из строя. Что делаем? Ставим новый массив и заливаем данные из бэкапа или грузим повторно из источников. Как долго? Долго.
Если есть FALLBACK-таблица, то система просто продолжает работать и журналировать все изменения, пока мы не поднимем упавший массив. После этого система автоматом синхронизирует таблицы.Вот этот момент я не понял. RAID массив сам дублирует данные в таблицах на случай выхода из строя дисков в массиве. В этом смысле от нас не требуется никаких дополнительных действий по распределению данных по дискам. Это делает сам RAID (ну или ASM если мы его используем)
Поэтому если диск выходит из строя - заменяем диск и данные сами переходят на новый диск. Никакой остановки системы тут даже не требуется.
Вот с случае shared nothing без использования клик, о которых вы сказали, такое принудительное дублирование, наверное, имеет смысл. Но не в случае Оракла.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919369
Birkhoff Не согласен (или не понял).
Например, вот как создается секционированная таблица с типом партишининга hash
Код: plaintext
1.
2.
3.
4.
CREATE TABLE dept (deptno NUMBER, deptname VARCHAR( 32 ))
     STORAGE (INITIAL 10K)
     PARTITION BY HASH(deptno)
       (PARTITION p1 TABLESPACE ts1, PARTITION p2 TABLESPACE ts2,
        PARTITION p3 TABLESPACE ts1, PARTITION p4 TABLESPACE ts3);

Принципиальное отличие partitioning в Teradata от partitioning в Informix, DB2, Oracle, MS SQL заключается, что по значению deptno запись можно быстро найти внутри партишона, а не просто определить в каком разделе она лежит. При этом для поиска используется хэш индекс достаточно хитрой структуры. Этот индекс гораздо компактнее и менее трудоемок при модификации чем B+дерево.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919433
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПрохоровПринципиальное отличие partitioning в Teradata от partitioning в Informix, DB2, Oracle, MS SQL заключается, что по значению deptno запись можно быстро найти внутри партишона, а не просто определить в каком разделе она лежит. При этом для поиска используется хэш индекс достаточно хитрой структуры. Этот индекс гораздо компактнее и менее трудоемок при модификации чем B+дерево.Ок, теперь понятнее. Да, красиво.
Хотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.
Хотя для DWH hash партиции редко (если вообще) используются, обычно какие то другие, призванные сузить спектр поиска до партиции или нескольких.
Тогда при оптимизации запроса, будет вычисляться не партиция для каждой записи, а из каких партиций вообще имеет смысл данные доставать, а какие не трогать. Техника называется partition pruning.
В случае хэш партиций, думаю селект пойдет по всем патрициям без разбора.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919493
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffСобственно я имел в виду, что происходит при обновлении хранилища (вставке новых записей, или апдейте) Блокируется ли доступ пользователям, пока записи расползаются по серверам или какой то другой механизм работает?

Это смотря как вставлять. Если по одной записи - то блокировка на уровне ROW HASH со всеми вытекающими последствиями.
А если исползуются утилиты быстрой загрузки данных FASTLOAD и MULTILOAD, то таблица на время загрузки переводится в недоступное для выполнения запросов состояние.
В общем, Терадата - типичный блокировочник, если Вы именно это хотели узнать.

BirkhoffСудя по этому плану (насколько я его понял), параллельно данные считываются из разных партиций таблиц в SPOOL 4, а по спулу уже идет агрегация. Хотя там и написано all-AMP, но если spool один, то как по нему можно устроить параллельную обработку?

Спул то один, но он тоже распределяется по узлам. Как я уже говорил, в терадате все таблицы распределяются.
К тому же, можно видеть, что в спул 4 ожидается одна запись. Вероятно, на этом этапе уже все считается.

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

По параллельной обработке - остаюсь на своём. С тонкостями реализации не знаком.

BirkhoffТаблспейсы могут быть физически разнесены по дискам и когда мы делаем select - Oracle будет вычислять хэш-функцию для каждого deptno и по ней поймет в каком таблспейсе лежит конкретная запись.

А план запроса с указанием метода доступа не приведёте?
А как он поймёт, в каком тейблспейсе искать? В терадате, например для этого хэш-карты используются. Правда, тейблспейсов там нету. Вообще, там файловая система проще - меньше объектов.
Никаких тейблспейсов создавать не надо. Только CREATE TABLE с указанием PRIMARY INDEX. Дальше всё автоматически.

То есть:

CREATE TABLE dept (deptno INTEGER, deptname VARCHAR(32)) UNIQUE PRIMARY INDEX (deptno);

Интересно, каков будет размер оператора создания таблицы, приведённого Вами, если количество хэш-партишинов будет 65535 (как в Терадате)?
И как эти партишионы разнести по тейблспейсам и дискам эффективно?
И что происходит при добавлении новых дисков, тейблспейсов, партишионов?
Как вообще этим всем управлять можно?


BirkhoffВот этот момент я не понял. RAID массив сам дублирует данные в таблицах на случай выхода из строя дисков в массиве. В этом смысле от нас не требуется никаких дополнительных действий по распределению данных по дискам. Это делает сам RAID (ну или ASM если мы его используем)
Поэтому если диск выходит из строя - заменяем диск и данные сами переходят на новый диск. Никакой остановки системы тут даже не требуется.
Вот с случае shared nothing без использования клик, о которых вы сказали, такое принудительное дублирование, наверное, имеет смысл. Но не в случае Оракла.

Всё что происходит на уровне RAID - то же самое и в Терадате.
А, вот, что произойдёт, если дисковый массив выйдет из строя, например, горят два диска в линейке или из-за сбоя по питанию вылетает вся коробка?
В Терадате существует второй дисковый массив (в другой клике), на котором хранится вторая копия таблицы, с которой можно продолжать работать.

Кстати, есть ещё один механизм повышения надёжности - называется DUAL ACTIVE - это когда в режиме активный-активный работают две системы (то есть, полное дублирование систем, но при этом обе работают в активном резиме, выполняя запросы). На данный момент несколько клиентов успешно эксплуатируют такие системы (как правило, их разносят географически для обеспечения защиты от неприятностей типа стихийных бедствий).

BirkhoffХотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.

Да, но это дополнительный индекс, как я уже говорил. Место занимает, обслуживания требует, опять-таки.

BirkhoffХотя для DWH hash партиции редко (если вообще) используются, обычно какие то другие, призванные сузить спектр поиска до партиции или нескольких.

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

BirkhoffТогда при оптимизации запроса, будет вычисляться не партиция для каждой записи, а из каких партиций вообще имеет смысл данные доставать, а какие не трогать. Техника называется partition pruning.

В Терадате такая же фича имеется. Называется PARTITIONED PRIMARY INDEX. Оно уже для сужения поиска и используется.
А partition pruning в Терадате называется partition elimination.

А ещё отдельные партиции бэкапить можно. Ну, это, наверное, и Оракл может тоже.

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

Всё Терадата делает автоматически.

Ещё одна вещь, которую следует упомянуть - Терадата не боится фулл-сканов и умеет их очень эффективно выполнять, поскольку эта операция очень хорошо параллелится (в случае равномерного распределения данных, что, как правило имеет место).

Если Вы делаете в Оракл партишионинг не по хэш, а какими-то другими способами, то равномерного распределения данных между единицами параллелизма достичь невозможно.
Соответственно, фулл-сканы будут не такими эффективными, как в Терадате. Соответственно, запросы типа ad hoc (характерные для хранилищ данных) не будут выполняться также эффективно, соответственно, нужно строить индексы, обслуживать их и со страхом ждать запросов, под которые не построены индексы :)



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919582
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийА если исползуются утилиты быстрой загрузки данных FASTLOAD и MULTILOAD, то таблица на время загрузки переводится в недоступное для выполнения запросов состояние.Отсюда вопрос - насколько быстро это происходит в случае распределенной системы. Например, есть у нас 300 узлов, и пошел апдейт. Не станет ли тут узким местом как раз распределенность?
И кто подает сигнал, что все таблицы обновились, можно снимать блокировку?
И куда коннектятся пользователи? На любой узел или на какой то конкретный?

Константин ЛисянскийПо параллельной обработке - остаюсь на своём. С тонкостями реализации не знаком.Собственно вопрос был даже не по Терадате, а вообще, как в даже в теории распараллелить distinct count. Ну ОК, допустим Терадата это как-то все-таки делает. :)

Константин Лисянский BirkhoffТаблспейсы могут быть физически разнесены по дискам и когда мы делаем select - Oracle будет вычислять хэш-функцию для каждого deptno и по ней поймет в каком таблспейсе лежит конкретная запись.А план запроса с указанием метода доступа не приведёте?
А как он поймёт, в каком тейблспейсе искать?
Ну когда таблица создается ведь указывается какой тип партишининга и по какому полю. Соответственно каждая партиция фактически представляет из себя отдельную таблицу (к которой даже можно принудительно обратиться), а оптимизатор просто вычисляет в каких их этих таблиц лежат наши данные.
Если партиция LIST - то смотрит какие значения полей куда попали.
Естественно если таблица партиционированна по одному типу, а из запроса не ясно куда лезть, то будет или фулскан или использование индексов.
Индексы могут быть как локальными (внутри партиции) так и глобальными (по всей большой таблице)

Константин ЛисянскийИнтересно, каков будет размер оператора создания таблицы, приведённого Вами, если количество хэш-партишинов будет 65535 (как в Терадате)?Да можно просто написать что партиций будет 100 - и он их сам насоздает. Оператор будет даже короче. Я, честно говоря, не помню навскидку какое максимальное количество партиций может быть. Но так как идеология отлична от Терадаты, то это важно больше для Терадаты, чем для Оракла.

Константин ЛисянскийИ как эти партишионы разнести по тейблспейсам и дискам эффективно?
И что происходит при добавлении новых дисков, тейблспейсов, партишионов?
Как вообще этим всем управлять можно?Этим всем в основном администратор управляет. Автоматом мало что делается. Но честно говоря не вижу тут большой проблемы.

Константин ЛисянскийВсё что происходит на уровне RAID - то же самое и в Терадате.
А, вот, что произойдёт, если дисковый массив выйдет из строя, например, горят два диска в линейке или из-за сбоя по питанию вылетает вся коробка?
В Терадате существует второй дисковый массив (в другой клике), на котором хранится вторая копия таблицы, с которой можно продолжать работать.
Имхо, какая-то надуманная проблема. Нужно или дисковый массив покупать или UPS ставить :) Но если бобма в здание попала с сервером, то и тут есть разные технологии типа Data Guard, которые позволяют практически в реальном времени создавать дубль базы на дургом сервере и в случае полного уничтожения основного сервера - поднять резервный. Видимо что то похожее на Dual Active.
Хотя я понял вашу мысль, для Терадаты такой способ вполне годится.

Константин Лисянский BirkhoffХотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.Да, но это дополнительный индекс, как я уже говорил. Место занимает, обслуживания требует, опять-таки.Не думаю, что это основной bottleneck :)

Константин ЛисянскийЕсли Вы делаете в Оракл партишионинг не по хэш, а какими-то другими способами, то равномерного распределения данных между единицами параллелизма достичь невозможно.А нужно ли? Чтобы здесь было полное счастье нужно не только чтобы данные были распределены равномерно, но и чтобы запросы, которые запускают пользователи выбирали равномерные порции данных из партиций. Если первого еще благодаря хешированию можно добиться, то второго уж врядли. :)

Константин ЛисянскийСоответственно, фулл-сканы будут не такими эффективными, как в Терадате. Соответственно, запросы типа ad hoc (характерные для хранилищ данных) не будут выполняться также эффективно, соответственно, нужно строить индексы, обслуживать их и со страхом ждать запросов, под которые не построены индексы :)
Ну, это уже маркетинг пошел :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919665
BirkhoffХотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.
В этом случае слишком дорого будет обходится загрузка данных. Teradata используя свойство хэш индекса может гораздо быстрее перемещать данные между узлами, чем обычная СУБД с индексом по партишону.
BirkhoffХотя для DWH hash партиции редко (если вообще) используются, обычно какие то другие, призванные сузить спектр поиска до партиции или нескольких.
Тогда при оптимизации запроса, будет вычисляться не партиция для каждой записи, а из каких партиций вообще имеет смысл данные доставать, а какие не трогать. Техника называется partition pruning.
В случае хэш партиций, думаю селект пойдет по всем патрициям без разбора.
Поиск по всем партициям (AMP-ам) будет вестись только если нет ограничений на поле deptno. Однако в этом случае можно использовать так называемый Partitioned Primary Index, когда происходит секционирование данных по заданному полю уже внутри AMP-а. В этом случае поиск будет вестись параллельно, но не по всему AMP-а, а по его части, что у Teradata называется Partition Elimination.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919676
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров BirkhoffХотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.
В этом случае слишком дорого будет обходится загрузка данных. Teradata используя свойство хэш индекса может гораздо быстрее перемещать данные между узлами, чем обычная СУБД с индексом по партишону.
Спорно. Можно показать только экспериментом на одной и той же структуре и тех же данных. К тому же в DWH обычно отводится некий промежуток времени в течение которого данные перегружаются-индексы перестраиваются и т.д. Не уверен, что расползание данных по кластеру в Терадате работает быстрее, чем перестроение локального индекса в обновленной партиции. (Если вообще требуется его перестроение)
Или это время реально критично.

Насчет partitioning elimination я понял. В принципе, технология похожа.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919699
BirkhoffСпорно. Можно показать только экспериментом на одной и той же структуре и тех же данных.
Утверждаю на основании экспериментов, хотя полноценным бенчмарком их назвать не могу.
BirkhoffНе уверен, что расползание данных по кластеру в Терадате работает быстрее, чем перестроение локального индекса в обновленной партиции. (Если вообще требуется его перестроение)
Вероятно Вы что-то не поняли, т.к. получается бессмысленное сравнение.
К тому же вставка записи в таблицу с индексом без изменения индекса - это что-то новое в практике СУБД.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919725
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров BirkhoffСпорно. Можно показать только экспериментом на одной и той же структуре и тех же данных.
Утверждаю на основании экспериментов, хотя полноценным бенчмарком их назвать не могу.Ну ок,могу это допустить.

Андрей Прохоров BirkhoffНе уверен, что расползание данных по кластеру в Терадате работает быстрее, чем перестроение локального индекса в обновленной партиции. (Если вообще требуется его перестроение)
Вероятно Вы что-то не поняли, т.к. получается бессмысленное сравнение.
К тому же вставка записи в таблицу с индексом без изменения индекса - это что-то новое в практике СУБД.Под перестроением имел в виду его уничтожение и затем воссоздание. Если происходит только апдейт индекса - это другой вопрос.
Насчет того, что я не понял. Я думаю, что расползание данных по кластеру занимает время. Перестроение (или апдейт) индекса тоже. Вопрос, - что дольше?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919746
BirkhoffНу ок,могу это допустить.
Можно посмотреть отчет того же Winter, посвященный Teradata.

BirkhoffПод перестроением имел в виду его уничтожение и затем воссоздание. Если происходит только апдейт индекса - это другой вопрос.
Под перестройкой я подразумевал модификацию индексного дерева, т.к. при вставке количества строк примерно равного количеству страниц в листьях индекса происходит практически полное обновление стуктуры индекса.
BirkhoffНасчет того, что я не понял. Я думаю, что расползание данных по кластеру занимает время. Перестроение (или апдейт) индекса тоже. Вопрос, - что дольше?
Узлы связаны через свитч, а для коммуникации используется специализированный сетевой протокол. В результате пропускная способность межузловых соединений по порядку величины соответствует пропускной способности дисковой подсистемы узла. Так что при выполнении redistribution (расползание) узлу не приходится скучать в ожидании очередной порции данных.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919749
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Birkhoff Отсюда вопрос - насколько быстро это происходит в случае распределенной системы. Например, есть у нас 300 узлов, и пошел апдейт. Не станет ли тут узким местом как раз распределенность?

Смотря какой UPDATE. Если пошёл UPDATE по PRIMARY INDEX (столбцам, по которым выполняется распределение данных), то, действительно, будет трафик между узлами. Однако, первичные индексы в большинстве случаев (хотя, не всегда) совпадают с первичными ключами, а кому надо апдейтить первичные ключи? В случае апдейта столбцов, не входящих в первичный индекс, все апдейты происходят локальло в пределах одного AMP без пересылки записей между узлами.
Но, на самом деле, межузловой трафик - это тоже не страшно. Он есть постоянно, поскольку джойны очень часто требуют перераспределения данных между узлами. На это существует коммутатор с очень приличной пропускной способностью.

BirkhoffИ кто подает сигнал, что все таблицы обновились, можно снимать блокировку?

Lock Manager

BirkhoffИ куда коннектятся пользователи? На любой узел или на какой то конкретный?

На конкретный. На котором имеется PARSING ENGINE. Как я уже писал, один PE может обрабатывать до 120 сессий. Система конфигурируется так, чтобы распределить PE между узлами.

В принципе, все узлы равноправны, то есть, по большоу счёту, не важно к каму узлу коннектиться пользователь.

BirkhoffСобственно вопрос был даже не по Терадате, а вообще, как в даже в теории распараллелить distinct count. Ну ОК, допустим Терадата это как-то все-таки делает. :)

Я это понял. В противном случае не спросили бы :)

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

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

BirkhoffЭтим всем в основном администратор управляет. Автоматом мало что делается. Но честно говоря не вижу тут большой проблемы.
Ну, если речь идёт о сотняз или тысячах объектов, за каждым из которых нужно следить, то желательно поменьше действий в расчёте на один объект выполнять. В противном случае администрирование в кошмар превращается.

И если речь идёт о терабайтных системах, то лишний раз данные перезагружать - тысячу раз подумаешь.


BirkhoffИмхо, какая-то надуманная проблема

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

BirkhoffНо если бобма в здание попала с сервером, то и тут есть разные технологии типа Data Guard, которые позволяют практически в реальном времени создавать дубль базы на дургом сервере и в случае полного уничтожения основного сервера - поднять резервный. Видимо что то похожее на Dual Active.

Ну, не совсем. Если в случае Data Guard нужно резервный сервер поднимать, то в случае Dual Active он постоянно работает и приносит пользу.

BirkhoffДа, но это дополнительный индекс, как я уже говорил. Место занимает, обслуживания требует, опять-таки.

Не думаю, что это основной bottleneck :)

Конечно, нет, но индексов нужно больше. А это - больше дискового пространства, больше администрирования.
В целом работает правило, что Терадата требует меньше дискового простанства чем любая другая СУБД (кроме, пожалуй, Sybase IQ, который в этом плане делает всех :)

BirkhoffА нужно ли? Чтобы здесь было полное счастье нужно не только чтобы данные были распределены равномерно, но и чтобы запросы, которые запускают пользователи выбирали равномерные порции данных из партиций. Если первого еще благодаря хешированию можно добиться, то второго уж врядли. :)

В смысле одинаковое количество строк с каждого диска (единицы параллелизма)? В принципе, да, это непростая задача.
Но, давайте рассмотрим простейший случай - отсутствие каких-либо индексов.
Имеем таблицу в миллион записей, систему из 100 устройств параллелизма (10-узловая машина с Терадатой). Соответственно, на каждом узле будет храниться по 10 тысяч записей (примерно, при условии, что первичный индекс выбран правильно). Запросы с выборкой по первичному индексу нас мало интересуют - они выполняются очень быстро, правктически всегда за одно чтение с диска. Других индексов нет.
Есть запрос на выборку по полю, не являющемуся первичным индексом (по полу, например). В этом случае все 100 устройств параллелизма будут сканировать свою часть таблицы, сотоящую из 10 тыс. записей. Это вполне предсказуемая нагрузка. Ясно, что, поскольку наши записи перемешаны в случайном порядке, количество записей с мужским или женским полом будет примерно одинаковым на каждом устройстве параллелизма.

Имеет это какой-то смысл или я слишком увлёкся?


BirkhoffНу, это уже маркетинг пошел :)

Сорри, не хотел :)


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919773
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу COUNT DISTINCT.
Допустим, есть таблица заказов:
order_id, order_date, customer_id, product_id, amount

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

SELECT count(DISTINCT customer_id) FROM orders;

Как посчитать параллельно?
Первое соображение - в силу хэширования потенциально на каждом диске имеются записи содержащие все значения customer_id.

Давайте первым шагом перераспределим данные между узлами по столбцу customer_id.

Это параллельная операция, её длительность в общем случае пропорциональна количеству записей в таблице.

В результате получим, что все записи с Васей Пупкиным лежат на одном узле, с Петей Таракановым - на другом и т.д.

Теперь осталось для того, чтобы найти DISCTINCT записи отсортировать каждый кусочек таблицы локально на каждом устройстве параллелизма.
Опять-таки это параллельная операция. Длительность пропрциональна N*logN/nAMPS (где nAMPS - количество единиц параллелизма).

Вот и всё.

Можно и по-другому - сначала сортируем данные локально по столбцу customer_id (N*logN) и убираем дубликаты.

Потом перераспределяем данные по столбцу customer_id (их уже будет меньше, поскольку мы убрали дубликаты локально).

Потом повторно выполняем сортировку и устранение дубликатов.

Не знаю, какой из способов эффективнее. Скорее всего, при разной демографии данных по-разному.
На это и существует оптимизатор, чтобы выбрать между ними.

Но видно то, что операцию DISTINCT COUNT можно выполнять параллельно.

Я думаю, что этими двумя вариантами дело не ограничивается, наверняка есть ещё алгоритмы. Но дальше думать ломает - спать уже пора.

Кстати, мне почему-то кажется, что это не самая сложная в распараллеливании задача.
На ум приходят нарастающие и скользящие итоги и прочие OLAP-операции, которые тоже выполняются в Терадате параллельно.


Спокойной ночи :)


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

Поковырялся тут в интернете (славься Гугл, великий и могучий :). Нашёл интересную статейку .

Как в воду глядел. Два алгоритма, которые я описал в предыдущем посте упоминаются как базовые. Я ещё не рассказал о третьем базовом алгоритме, поскольку счёл его неэффктивным (это когда локально отсортированные записи отправляются на координационный узел, где производится глобальная сортировка). Оказывается, этот алгоритм эффективен на небольшом количестве DISTINCT групп.

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

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

Ну, теперь уж, точно спокойной ночи :)


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32919792
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжает неспаться :))
Тема-то оказалась очень интересной. Это всё про паралелизм.
Вот, нашёл ещё одну презентацию по Терадате , в которой есть небольшой пассаж про параллельные алгоритмы (см. стр. 39):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Aggregation without sort
• Read locally
  Feed local aggregate cache which accumulates by group key
  When EOF, purge local aggregate cache to global aggregator
• Global aggregator is fully scalable/distributed
  Hash group key, send by hash to global
  Received into global aggregate cache, accumulate per group key
• Fill/spill
  When local cache fills, spill lowest hit items to global
  If global fills, spill to disk - final merge over spill blocks
  Ordered Analytics
• Rank
  Estimate value partitions
  Redistribute to value partitions - all amps
  Sort locally
  Cascade counts
  Assign rank
• Fully scalable
  Others bring to one UoP to sort and rank

Опять-таки без подробностей, но кое-какие выводы сделать можно.
Скорее всего, применяются адаптивные алгоритмы (в терминах статьи, ссылку на которую я привёл постом выше) - When local cache fills, spill lowest hit items to global

Удачи!


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920067
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,

Может быть я покажусь занудным, но мне кажется этот топик, несмотря на интересную PR дискуссию, не соответствует теме форума.
Вероятно, для него более подходит форум "Другие СУБД".
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920152
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JimmyКоллеги,

Может быть я покажусь занудным, но мне кажется этот топик, несмотря на интересную PR дискуссию, не соответствует теме форума.
Вероятно, для него более подходит форум "Другие СУБД".

Ну это как посмотреть, ведь обсуждаются особенности Оракла и Терадаты с точки зрения их использования в DWH. А это как раз тема нашего форума.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920205
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более, что Оракл, вроде бы здесь не относят к "Другим СУБД".
Вероятно, имелось в виду "Сравнение СУБД". Однако, там, как правило, не обсуждаются вопросы DWH.
Так что, присоединяюсь к backfire. НАверное, всё-таки, по теме.
К тому же, разве не интересно было узнать, как работают параллельные алггоритмы агрегирования?

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


С уважением,
Константин Лисянский
http://lissianski.narod.ru

P.S. Если читаете этот топик, наверняка, интересно :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920674
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не в тему топика, но коль зашла речь о вопросах обсуждаемых в форуме, мне думается, что вопросы ETL тоже welcome в наш форум, а то они рассыпаны по всему сайту, или выйти с предложение к Gross-модератору, чтоб завел такой форум.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920695
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, не надо в отдельный форум.
Эта тема пока не получила большого распространения чтобы выделять её в отдельную. ИМХО, конечно.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920763
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был потрясен обилием ответов :)

Константин ЛисянскийНо, на самом деле, межузловой трафик - это тоже не страшно. Он есть постоянно, поскольку джойны очень часто требуют перераспределения данных между узлами. На это существует коммутатор с очень приличной пропускной способностью.Отсюда вопрос. А какое железо нужно Терадате? Могу ли я построить эту систему из кучи старых писюков с Pentium 1 на борту и ОС Windows? (утрирую) Либо нужно обязательно покупать сервера специальной архитектуры и специальные коммутаторы?

Константин Лисянский BirkhoffИ кто подает сигнал, что все таблицы обновились, можно снимать блокировку?Lock Manager А где он находится? На сервере с PE? Или еще где то?

Константин Лисянский BirkhoffНу когда таблица создается ведь указывается какой тип партишининга и по какому полю. Соответственно каждая партиция фактически представляет из себя отдельную таблицу (к которой даже можно принудительно обратиться), а оптимизатор просто вычисляет в каких их этих таблиц лежат наши данные.Интересно, а если часть таблиц с партициями, а часть - без. Как при этом джойны выполняются?
А если у разных таблиц разный партишионинг? А какая разница? Партишионинг просто задает количество таблиц и распределение данных по ним. Оптимизатор переписывает запрос таким образом, что обеспечивает доступ ко всем нужным партициям. Тип партиций и вообще их наличие и в каких таблицах роли не играет. Это влияет только на структуру перписанного запроса.

Константин Лисянский BirkhoffЭтим всем в основном администратор управляет. Автоматом мало что делается. Но честно говоря не вижу тут большой проблемы.Ну, если речь идёт о сотняз или тысячах объектов, за каждым из которых нужно следить, то желательно поменьше действий в расчёте на один объект выполнять. В противном случае администрирование в кошмар превращается.

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

Константин Лисянский BirkhoffИмхо, какая-то надуманная проблемаДа. нет. Выход из строя RAID-массива вполне вероятная вещь. Хорошо, не бомба. Дрогнула рука техника - вместо вышедшего из строя диска выдернул соседний из этой же линейки. Да, мало ли что ещё может произойти...Ну ладно, хорошо что такая фича в Терадате есть. Лишние возможности для повышения надежности никому не мешают. Но все-таки она все равно имеет смысл в архитектуре Терадаты и особого смысла не имеет в Оракле. К тому же действительно большие системы на Оракле обычно не полагаются только на средства самого Оракла. Чаще всего туда встраиваются системы для бекапирования и аварийного восстановления как на уровне железа, так и, например, от других производителей ПО типа Veritas. Но в этой области я уже не шибко разбираюсь, поэтому не буду глубоко зарываться. Если есть спецы среди тех, кто это читает, надеюсь меня поправят, если что не так :)

Константин Лисянский BirkhoffНо если бобма в здание попала с сервером, то и тут есть разные технологии типа Data Guard, которые позволяют практически в реальном времени создавать дубль базы на дургом сервере и в случае полного уничтожения основного сервера - поднять резервный. Видимо что то похожее на Dual Active.Ну, не совсем. Если в случае Data Guard нужно резервный сервер поднимать, то в случае Dual Active он постоянно работает и приносит пользу.Опять же это имеет смысл в архитектуре Терадаты. Ну и потом, все зависит от того, сколько времени нужно на подъем резервной базы. Если несколько минут терпит (что в DWH обычно так), то за несколько минут сервер можно поставить в боевой режим.

Константин ЛисянскийКонечно, нет, но индексов нужно больше. А это - больше дискового пространства, больше администрирования.
В целом работает правило, что Терадата требует меньше дискового простанства чем любая другая СУБД (кроме, пожалуй, Sybase IQ, который в этом плане делает всех :)В наше-то время, когда у некоторых дома на компе терабайт диского пространства, экономить на месте на диске для индексов? :)

Константин ЛисянскийЕсть запрос на выборку по полю, не являющемуся первичным индексом (по полу, например). В этом случае все 100 устройств параллелизма будут сканировать свою часть таблицы, сотоящую из 10 тыс. записей. Это вполне предсказуемая нагрузка. Ясно, что, поскольку наши записи перемешаны в случайном порядке, количество записей с мужским или женским полом будет примерно одинаковым на каждом устройстве параллелизма.

Имеет это какой-то смысл или я слишком увлёкся?
Ну я могу допустить, что М и Ж распределены примерно равномерно, но другие данные, например типы проданной продукции по регионам могут довольно сильно различаться от партиции к партиции.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32920796
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийПо поводу COUNT DISTINCT.
Допустим, есть таблица заказов:
order_id, order_date, customer_id, product_id, amount

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

SELECT count(DISTINCT customer_id) FROM orders;

Как посчитать параллельно?
Первое соображение - в силу хэширования потенциально на каждом диске имеются записи содержащие все значения customer_id.

Давайте первым шагом перераспределим данные между узлами по столбцу customer_id.Вот этот шаг я не понял - а все остальные понятны :)
У нас же данные отхешированы по order_id? Я понимаю, если бы мы Distinct count считали по order_id - это было бы элементарно, так как на других узлах значения не повторяется и весь запрос сводится к обычному count.
А что значит "перераспределим данные между узлами по столбцу customer_id"?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32921822
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Незнаю Константин Вы так все интресно рассказываете, но Oracle поверьте мне уж очень хорошо напичкан вопросами хранения данных, и таблицные пространства на разных дисках и партиции и путь теже хинты(писать запросы надо готовой а не мышкой!!!) делают его более гибким чем слона Терраду.

P.S.
Кстате в Oracle тоже локализуеться запрос на партицию. Так что это не только для хранения но и для доступа к данным.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32921858
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только что тестировал функцию, кому интересно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Это своя аггрегатная функция складывающая числа в строку через запятую

select r.code_shop,str_agg(distinct r.quantity_problem) from cons_wares_rr r
group by r.code_shop

INST_ID	MODULE	PROGRAM	INST_ID	SADDR	SID	SERIAL#	AUDSID
 1 	PL/SQL Developer	ORACLE.EXE (P000)	 1 	95701B84	 83 	 29995 	 1764802 
 1 	PL/SQL Developer	ORACLE.EXE (P001)	 1 	9571C434	 128 	 34902 	 1764802 
 2 	PL/SQL Developer	ORACLE.EXE (P000)	 2 	 95751594 	 218 	 22463 	 1764802 
 2 	PL/SQL Developer	ORACLE.EXE (P001)	 2 	956FEC54	 78 	 49681 	 1764802 

 
----------------------------------------------------------------------------------------------------------------------------
| Id  | Operation               |  Name          | Rows  | Bytes | Cost (%CPU)| Pstart| Pstop |  TQ    |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------
|    0  | SELECT STATEMENT        |                |     10  |    170  |  14798   ( 14 )|       |       |        |      |            |
|    1  |  PARTITION LIST ALL     |                |       |       |            |      1  |      9  |  31 , 02   | PCWP |            |
|    2  |   SORT GROUP BY         |                |     10  |    170  |  14798   ( 14 )|       |       |  31 , 02   | P->S | QC (RAND)  |
|    3  |    SORT GROUP BY        |                |     10  |    170  |  14798   ( 14 )|       |       |  31 , 01   | P->P | HASH       |
|    4  |     SORT GROUP BY       |                |     10  |    170  |  14798   ( 14 )|       |       |  31 , 00   | P->P | HASH       |
|    5  |      PARTITION RANGE ALL|                |       |       |            |      1  |      4  |  31 , 00   | PCWP |            |
|    6  |       TABLE ACCESS FULL | CONS_WARES_RR  |    39M|   642M|  13148    ( 4 )|      1  |     36  |  31 , 00   | PCWP |            |
----------------------------------------------------------------------------------------------------------------------------
 
PX Slave SQL Information (identified by operation id):
------------------------------------------------------
 
    2  - SELECT /*+ CIV_GB */ A1.C0,"LIA"."STR_AGG"(DISTINCT SYS_OP_CSR(A1.C1, 0 )) FROM :Q19931001 A1 GROUP BY A1.C0
 
    3  - SELECT /*+ TIV_GB */ A1.C0 C0,SYS_OP_MSR("LIA"."STR_AGG"(DISTINCT SYS_OP_CSR(A1.C1, 0 ))) C1 FROM :Q19931000 A1 GROUP 
              BY A1.C0
 
    4  - SELECT /*+ PIV_GB */ A1.C0 C0,SYS_OP_MSR("LIA"."STR_AGG"(DISTINCT TO_CHAR(A1.C1))) C1 FROM (SELECT /*+ NO_EXPAND 
              ROWID(A2) */ A2."CODE_SHOP" C0,A2."QUANTITY_PROBLEM" C1 FROM "LIA"."CONS_WARES_RR" PX_GRANULE( 0 , BLOCK_RANGE, DYNAMIC)  A2) 
              A1 GROUP BY A1.C0

INST_ID это нода кластера Oracle
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32921923
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Константин

Я вообще понял предлагаемый алгоритм обсчета Distinct Count (на каждой ноде собирается список уникальных значений, потом все списки с каждой ноды объединяются, сортируются и там опять производится выборка уникальных), но мне кажется при большом количестве различных значений он должен вызвать огромный трафик, тем более если у нас 300 узлов.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922053
OLAPMASTER... делают его более гибким чем слона Терраду
Может быть не стоит ярлыками бросаться? Технический форум все-таки.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922059
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffЯ вообще понял предлагаемый алгоритм обсчета Distinct Count (на каждой ноде собирается список уникальных значений, потом все списки с каждой ноды объединяются, сортируются и там опять производится выборка уникальных), но мне кажется при большом количестве различных значений он должен вызвать огромный трафик, тем более если у нас 300 узлов.

Да, но это лишь один из вариантов. Чтобы разобраться получше рекомендую прочитать статью, ссылку на которую я привёл выше.
Просто возмоны ещё алгоритмы - например, если количество уникальных групп мало, то выгодно после локальной шруппировки на каждом узле передать всё на один узел, а не перераспределять между узлами.
Другой вариант - сначала перераспределить данные по группируемому (групиируемым, если их много) столбцу, а вторым этапом сделать все параллельно.
Адаптивные алгоритмы, которые предлагают ребята в статье могут начать с любого из двух или трёх вариантов, а потом передумать и переключиться на альтернативный алгоритм.
Напрмер, начинаем с локальной агрегации, потом видим, что уникальных групп очень много, тогда перераспределяем агрегаты, которые уже посчитали и начинаем перераспределять неагрегированные записи. В результате получим на каждом узле частично агрегированные и неагрегированные записи. Следующим этапом производим финальное агрегирование.
Или наоборот, начинаем с перераспределения, потом видим, что можно агрегировать и начинаем агрегировать и т.д.

В общем, теперь уже хорошо видно, что DISTINCT COUNT распараллеливается эффективно.

Что касается трафика - это, как я уже говорил, не проблема. Дело в том, что Терадата использует коммутатор с пропускной способностью, пропорциональной количеству узлов в системе. Это значит, что при добавлении нового узла пропускная способность возрастает на определённую величину. Соответственно, система из 300 узлов обладает громадной общей пропускной способностью.
Сообщения через коммутатор можно посылать трёх видов - точка-точка, broadcast и multicast.
Соответственно, при перераспределении данных данные с узла на ужел шлются по коммутируемому каналу, другие каналы при этом не мешают. То есть это просходит параллельно.
Ну, а пропускная способность коммутатора такова, что узким местом скорее являются диски, нежели коммутатор.

Ну, и, опять-таки, повторюсь - межузловой трафик в Терадате присутствует постоянно, поскольку перераспределение данных, как правило, предшествует операции джойна таблиц.

Ещё одно соображение - время выполнения перераспределения данных между узлами пропорционально количеству записей в таблице. То есть, это операция линейная.

Сортировка же пропорциональна NlogN, где N - количество записей. То есть это нелинейная операция. С ростом количества записей она выполняется всё медленней (в смысле, на единицу записи).

Соответственно, параллелизм окупается, поскольку время выполнения операции становится пропорционально N+ NlogN/nAMPS, где nAMS - количество единиц параллелизма в то время как при непараллельном выполнении операции это время пропорционально NlogN. Очевидно, это справедливо на больших N.

Уф :)

Кстати, я не математик - поравьте, если выкладки некорректно сделал.

Удачи!



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922061
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Birkhoff Отсюда вопрос. А какое железо нужно Терадате? Могу ли я построить эту систему из кучи старых писюков с Pentium 1 на борту и ОС Windows? (утрирую) Либо нужно обязательно покупать сервера специальной архитектуры и специальные коммутаторы?

Есть два варианта.
1. Любой SMP-сервер на платформе Intel (у меня на ноутбуке, например, крутится). Естественно, это будет решение начального уровня.
2. Массивно-параллельная система производства NCR (узлы на основе двухпроцессорных серверов на платформе Intel плюс коммутатор BYNET).

Собрать самостоятельно вряд ли получится :)

По поводу операционки - работает под W2K или под UNIX (MP-RAS).




С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922068
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffА где он находится? На сервере с PE? Или еще где то?

Боюсь соврать. Но, кажется он является частью PE. Сами блокировки осуществляют AMPы (единицы параллелизма).


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

The Teradata BYNET interconnect differs from other communication technology on the market (Ethernet, for example) by moving data from one location to another on the network. The network bandwidth is a function only of the equipment purchased.

A gigabyte Ethernet can move 1 GB regardless of how many computers are attached to it: More computers mean more contention and slower performance for all on the network. The BYNET works like a phone switch, quite different from the typical network. Its switched "folded banyan" architecture delivers additional network bandwidth for each node added to the configuration. Each connection to a node delivers 120 MB/sec. A 2-node system has a 240 MB/sec. interconnect; 4 nodes, 480 MB/sec.; 8 nodes, 960 MB/sec.; 100 nodes, 12 GB/sec. The current BYNET implementation can support up to 512 nodes (1 to 4 PB,) but the design is capable of 4,096 nodes (8 to 32 PB) if a customer is ready to solve a problem of that magnitude.

In addition to delivering fully scalable point-to-point bandwidth, the BYNET implements specialized functions not offered by other networking solutions. It can broadcast-deliver a single message-to some or all of the nodes in the MPP configuration. There are many database functions that need to be performed on all nodes at once. With broadcast, the database has to send and manage only one message and one response, lowering the cost and increasing the performance. The BYNET guarantees delivery of every message and ensures that broadcasts get to every target node. So the database isn't plagued by communication errors or network failures and does not have to pay the price of acknowledgements or other error-detection protocols.

The BYNET implements global semaphores so the database can coordinate operations that span some or all nodes. "First done, last done" and counting semaphores implemented at a very low protocol level make these coordination functions efficient and simple. When it is time to return results to a user or application, the BYNET supplies the merge function. Unlike other parallel databases that pull the result set together in one node to deliver the appropriately sorted result, Teradata leaves each portion of the result set on the node where it was created, sorted locally. The merge function collates just enough of the result to fill the user's buffer with result records, then waits for the user to request more rows. Merge makes returning results a scalable operation regardless of their size.
The BYNET performs all of these functions using low-level communication protocols. It is a circuit-switched network, so the large messages that the database sends get through quickly. Higher-level connections are not required; each message simply has a destination address identifying the one or more nodes to which it will be delivered. This messaging architecture eliminates the cost and time required to create, manage and destroy connections in a protocol such as TCP/IP, a cost that escalates exponentially (non-scalable) as nodes are added to the system.

Источник здесь .

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922117
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийДругой вариант - сначала перераспределить данные по группируемому (групиируемым, если их много) столбцу, а вторым этапом сделать все параллельно.Вот я так и не понимаю, чтоже кроется за словом "перераспределение"?
Что значит данные перераспределяются? Раньше писалось, что они как-бы даже перераспределяются между узлами?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922119
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийК вопросу о трафике и о коммутаторе BYNET.
Эта информация уже немного устарела в части цифр, но основные моменты сохранились:

The Teradata BYNET interconnect differs from other communication technology on the market (Ethernet, for example) by moving data from one location to another on the network. The network bandwidth is a function only of the equipment purchased.

A gigabyte Ethernet can move 1 GB regardless of how many computers are attached to it: More computers mean more contention and slower performance for all on the network. The BYNET works like a phone switch, quite different from the typical network. Its switched "folded banyan" architecture delivers additional network bandwidth for each node added to the configuration. Each connection to a node delivers 120 MB/sec. A 2-node system has a 240 MB/sec. interconnect; 4 nodes, 480 MB/sec.; 8 nodes, 960 MB/sec.; 100 nodes, 12 GB/sec. The current BYNET implementation can support up to 512 nodes (1 to 4 PB,) but the design is capable of 4,096 nodes (8 to 32 PB) if a customer is ready to solve a problem of that magnitude.Чудеса какие-то :)
Из этой статьи правда совершенно не ясно, как этот "баньян" обеспечивает такую гигантскую пропускную споосбность? Или здесь просто суммируются 120 MB/sec каждых двух взаимных соединений? Если так, тогда это ничего не гарантирует....
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922384
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Есть два варианта.
1. Любой SMP-сервер на платформе Intel (у меня на ноутбуке, например, крутится). Естественно, это будет решение начального уровня.
2. Массивно-параллельная система производства NCR (узлы на основе двухпроцессорных серверов на платформе Intel плюс коммутатор BYNET).

Собрать самостоятельно вряд ли получится :)

По поводу операционки - работает под W2K или под UNIX (MP-RAS).


Ведь шфред сторедж не нужен, как в оракле,
неужели 3 ноды с гигабитными сетевыми картами, (такие щас на продвинутых PC),
на "коленке" не собрать?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32922790
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2DIMAR

Самый большой недостаток(может быть это и преимущество) терадаты
это то что MPP конфигурации могут быть собраны только на NCR железе.

В отличии от например от DB2 и Informix XPS.

Константин поправит если я не прав.

P.S. помоему еще HP-UX поддерживается для не МPP архиектур.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923134
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovСамый большой недостаток(может быть это и преимущество) терадаты
это то что MPP конфигурации могут быть собраны только на NCR железе.

Николай, мы, вроде бы, даже это обсуждали уже.
С одной стороны - недостаток. С другой стороны - преимущество. Оптимизатор Терадаты использует для оценки стоимости запроса конкретные физические параметры системы, на которой работает Терадата, и принимает решения об эффективности планов запросов.

nkulikovВ отличии от например от DB2 и Informix XPS.

Если я не ошибаюсь, DB2 в массивно-параллельной конфигурации работает только на платформе IBM. Возможно, я не прав.


nkulikovпомоему еще HP-UX поддерживается для не МPP архиектур

Да, поддерживается. Честно говоря, не знаю, сколько существует таких инсталляций. Скорее всего, не очень много.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923200
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffВот я так и не понимаю, чтоже кроется за словом "перераспределение"?
Что значит данные перераспределяются? Раньше писалось, что они как-бы даже перераспределяются между узлами?

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

Попробую нарисовать.

Допустим, у нас два узла и целые числа распределяются путём хэширования по узлам следующим образом:

Узел1 - 1, 2, 3
Узел2 - 4, 5, 6


До перераспределения (trans_id, customer_id):

Узел 1 (1, 1) (2, 5) (3, 3)
Узел 2 (4, 1) (5, 4) (6, 6)

После перераспределения (trans_id, customer_id):

Узел 1 (1, 1) (4, 1) (3, 3)
Узел 2 (5, 4) (6, 6) (2, 5)

Так понятно?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923272
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Узел1 - 1, 2, 3
Узел2 - 4, 5, 6


До перераспределения (trans_id, customer_id):

Узел 1 (1, 1) (2, 5) (3, 3)
Узел 2 (4, 1) (5, 4) (6, 6)

После перераспределения (trans_id, customer_id):

Узел 1 (1, 1) (4, 1) (3, 3)
Узел 2 (5, 4) (6, 6) (2, 5)

Так понятно?


Это серьезно?

И как же
"Соответственно, запросы типа ad hoc (характерные для хранилищ данных)"

Будут выполняться эффективно?

Я наверное, всетаки чегото недопонимаю...,
если можно, еще чего нибуть об этом расскажите.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923294
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если одновременно пользователи запросили,
один по
customer_id
а другой например по другому полю
order_id

Как это все будет колбаситься?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923310
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединяюсь.
Непонятно, если терабайты данных с разных узлов сначала будут перекачиваться с узла на узел а потом обрабатываться, почему это будет быстро? Дело не только в пропускной способности коммутаторов, с которыми все также не совсем ясно, но и в памяти на узлах. Терабайтные куски должны будут писаться на диски, а диск - штука медленная...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923357
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если одновременно пользователи запросили,
один по
customer_id
а другой например по другому полю
order_id

Как это все будет колбаситься?

Для каждого запроса создастся по отдельному спул-файлу, которые будут перераспределены каждый по своему полю.
Дальше каждый запрос будет параллельно обрабатываться.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923431
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
???
Все больше непонимания

На русском есть чего нибуть про терадату (не маркетинг),
для беглого ознакомления.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923433
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffПрисоединяюсь.
Непонятно, если терабайты данных с разных узлов сначала будут перекачиваться с узла на узел а потом обрабатываться, почему это будет быстро? Дело не только в пропускной способности коммутаторов, с которыми все также не совсем ясно, но и в памяти на узлах. Терабайтные куски должны будут писаться на диски, а диск - штука медленная...

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

Теперь рассмотрим опять наш случай.
В системе с 300 узлами будет 3000 зеркальных пары. Посчитать общую пропускную способность оставляю за вами. Думаю, цифра получится впечатляющая.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923446
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Kонстантин,

Отнюдь DB2 MPP конфигурации поддерживает на всех платформах
Win, Linux (x86,AMD,Power, Itanium), Sun, AIX, HP-UX

Я не понимаю почему конкретные параметры железа нельзя учитывать на других платформах

DB2 учитывает и СPU speed, и храктеристики сети, и характеристики дисков, объем памяти

Какая еще информация о железе нужна, для оценки плана запроса.
Мне кажется это давление железячного подразделения на софтовое
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923458
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все больше непонимания

На русском есть чего нибуть про терадату (не маркетинг),
для беглого ознакомления.

К сожалению, на русском нету. Могу подкинуть ссылку на английском.
На русском могу при личной встрече рассказать, если такой сильный интерес проснулся.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923469
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Константин поправит.

В Teradata тоже наверное есть понятие как сolocated join

Это когда подбирется ключ для хэширования одинаковый для нескольких таблиц.

Например
Table Customer
(customer_id, customer_columns...)
Table transactions
(trans_id, customer_id, trans_columns...)

Partitionig key выбирается для обеих таблиц сustomer_id

Тогда join этих таблиц идет в пределах одного узла без передачи данных на другие узлы.


Пример примитивный не учитывает что может быть data skew (когда на одном узле данных больше чем на другом)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923487
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НиколайОтнюдь DB2 MPP конфигурации поддерживает на всех платформах
Win, Linux (x86,AMD,Power, Itanium), Sun, AIX, HP-UX

ОК.

Я не понимаю почему конкретные параметры железа нельзя учитывать на других платформах

Можно, только для этого код надо будет оптимизировать для каждого сочетания железяка/операционная система.

Всяко легче и более эффективнее писать под что-то одно.


Народ сейчас, похоже, заинтересовала другая тема - "Как вообще массивно-параллельные системы могут быстро работать"?
Видите, какое удивление в студии?



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923558
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийНарод сейчас, похоже, заинтересовала другая тема - "Как вообще массивно-параллельные системы могут быстро работать"?
Видите, какое удивление в студии?То, что они могут работать быстро - не странно. Странно что они могут работать быстро обрабатывая данные так, как вы рассказываеете. :)

Я вот по прежнему не могу понять почему для того чтобы обсчитать какой нибудь агрегат нельзя на каждом узле обсчитать его на основе тах данных, что есть на этом узле. А потом где то сложить промежуточные результаты и окончательно их досчитать.
Вместо этого предлагается сначала выбрать данные по определенному условию, затем взаимно перекачать между узлами, записать там на диски и потом только обсчитать агрегат уже по перегруппированным кускам данных. Вот в этом месте картинка как-то не складывается :)
Почему такая глобальная перекачака данных быстрее, чем выборка на каждому узле и пересылка результатов?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923578
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому-что диски гораздо медленнее чем сеть. Как это дико не звучит.

Для того что-бы забить гигабитный ethernet читая файл огромных размеров. Вам потребуется примерно 14 дисков. Кэш данных контроллера в таких задачах играет скорее отрицательную роль чем положительную.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923666
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovПотому-что диски гораздо медленнее чем сеть. Как это дико не звучит.

Для того что-бы забить гигабитный ethernet читая файл огромных размеров. Вам потребуется примерно 14 дисков. Кэш данных контроллера в таких задачах играет скорее отрицательную роль чем положительную.Как будто кто то спорит с тем, что диски медленнее, чем сеть? ПО моему пару постов назад я и сказал что диски штука медленная.
Не в этом вопрос. Просто весь механизм можно разбить на несколько частей:
1. Чтение с дисков (медленно)
2. Пересылка по сети на другие узлы (очень быстро)
3. Запись на диск на другом узле (очень медленно)
4. Окончательно чтение на другом узле (медленно)

Причем тут сеть? Да будь она хоть в миллион раз быстрее чем диск, чтение-запись с диска на диск никто не отменял.
Поэтому и непонимание здесь в том, зачем делать две медленных и одну очень медленную операцию, вместо того, чтобы обойтись одной медленной?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923678
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Терабайты на диски будут писаться в любом случае, поскольку промежуточные файлы понадобятся вне зависимости от того, какая архитектура у системы. На терабайты никайкой памяти и никакого кэша не напасёшься. Надеюсь, с этим спорить не нужно?


Ну аочему же, не нужно, а форум на что? :)

select r.code_source, count(distinct r.quantity_problem)
from lia.cons_wares_rr r
group by r.code_source

по этим полям таблица не партиционированая по этим полям



physical reads 48877
physical reads direct 48877

Всего прочитано блоков, без учета кеша
48877*8192/1024/1024=

381 MB

session pga memory max 589824
Использовано памяти для сортировок

sorts (disk) 0
sorts (memory) 15
(только память)

sorts (rows) 5345247
строк отсортировано

table scan blocks gotten 48878
блоков получено (см. выше)

PX remote messages recv'd 56
PX remote messages sent 56
параметр parallel_execution_message_size = 2148 , 56*2148
=120288 байт обмен между нодами


так что никаких спулов не видно
с памятью я не уверен,
но думаю если проанализировать параллельные сервера при выполнении,
то затраты памяти там будут небольшие.
(ораклоиды поправте меня, или подскажите чего еще посмотреть)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923745
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
381 mb - очень хорошо помещается в OЗУ моего ноутбука :)

В приципе на TPC-C первое место занимает конфигурация с 2 ТБ OЗУ.

Но если мы говорим о ХД размером от терабайта то буфферные пулы там не большие помощники ибо если работает, не один запрос а хотя бы с 10-ок.
И каждый сканирует пол БД то все эти данные ты в кэш не запихнешь.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32923790
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорю, что память не расходуется,
на эту операцию, и трафика между нодами нету.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32924436
BirkhoffПричем тут сеть? Да будь она хоть в миллион раз быстрее чем диск, чтение-запись с диска на диск никто не отменял.
Поэтому и непонимание здесь в том, зачем делать две медленных и одну очень медленную операцию, вместо того, чтобы обойтись одной медленной?
При массовых операциях на одном узле работает не один диск, а около 10, причем параллельно. Использование собственного железа позволяет сбалансировать проиводительность дисковой подсистемы, пропускную способность комутатора и процессорную мощность узлов. Поэтому здесь нельзя утверждать, что какая-то операция заведомо быстрее, а какая-то медленнее.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925339
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров
При массовых операциях на одном узле работает не один диск, а около 10, причем параллельно.

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

Вопросы стоят о том как параллелятся задачи в террадате, особенно между большим количеством узлов.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925451
DimaRНу что за аргументы, элементарным страйпингом добивается параллельная работа многих дисков, и что?
Расскажите, пожалуйста, как данные, считанные с одного логического устройства (партишона) со страйпингом могут быть параллельно обработаны? Желательно со сслыками на документацию.
DimaRВопросы стоят о том как параллелятся задачи в террадате, особенно между большим количеством узлов.
Минимальная единица паралелизма - это AMP, который управляет одним или двумя зазеркаленныи дисками. Распределение данных между AMP-ами обуспечивается при помощи hash-алгоритма. Типичная конфигурация 8-12 AMP-ов на узле.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925478
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"При массовых операциях на одном узле работает не один диск, а около 10, причем параллельно."


to Андрей Прохоров
Извиняюсь, неправильно понял


"Минимальная единица паралелизма - это AMP, который управляет одним или двумя зазеркаленныи дисками. Распределение данных между AMP-ами обуспечивается при помощи hash-алгоритма. Типичная конфигурация 8-12 AMP-ов на узле."

А можно поразвернутей, интересно.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925489
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При массовых операциях на одном узле работает не один диск, а около 10, причем параллельно.

Типичная конфигурация 8-12 AMP-ов на узле."


Сколько процессоров в такой типичной конфигурации на 1 узле?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925797
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В современных узлах по 2 интеловских процессора. Раньше было больше.
Например, система 5100 имела узлы по 16 процессоров (Pentium Pro 200).

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32925873
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffТо, что они могут работать быстро - не странно. Странно что они могут работать быстро обрабатывая данные так, как вы рассказываеете. :)

Я вот по прежнему не могу понять почему для того чтобы обсчитать какой нибудь агрегат нельзя на каждом узле обсчитать его на основе тах данных, что есть на этом узле. А потом где то сложить промежуточные результаты и окончательно их досчитать.
Вместо этого предлагается сначала выбрать данные по определенному условию, затем взаимно перекачать между узлами, записать там на диски и потом только обсчитать агрегат уже по перегруппированным кускам данных. Вот в этом месте картинка как-то не складывается :)
Почему такая глобальная перекачака данных быстрее, чем выборка на каждому узле и пересылка результатов?

Я по-моему, уже приводил математические выкладки относительно распараллеливания.

Всё основывается на том, что операция сортировки выполняется за время, пропорциональное N*logN, где N- количество записей в таблице.
Операция же перераспределения данных абсолютно линейна, то есть пропорциональна количеству записей в таблице.

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



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

По моему до меня дошло :) По крайней мере, я понял принцип.
Все равно странно, что он работает, но это может быть в сиду непривычности идеи. :)
А вот когда происходят перераспределения данных между узлами - на каждый узел попадает копия данных, которая после отработки запроса удаляется? Или она там сохраняется?
Что произойдет если следующий пользователь захочет выполнить примерно такой же запрос?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32926112
авторА можно поразвернутей, интересно.
Постараюсь в общих чертах. За подробностями, лучше смотреть по ссылке Константина.

При создании каждой таблицы у нее определяется Primary Index (PI). Это может быть первичный ключ, а может быть и др. колонка, имеющая значительное количество отличных значений. Для каждого значения этой колонки вычисляет значение хэш функции. Первые 16 бит используются для определения AMP-а, где будет храниться запись. Для этого используется таблица, где для каждого из 64k значений хранится номер AMP-а, куда попадут записи с таким значением. На дисковом пространстве AMP-е используется еще несколько хэш таблиц для быстрого доступа к записи по хэш значению.

AMP - обеспечивает всю обработку данных, которые находятся под его управлением. Функционирование нескольких AMP-ов на одном узле обеспечивает параллелизм ввода-вывода и обработки полученных данных внутри одного узла. Межузловой параллелизм координируется за счет железа и софта BYNET, а также компоненты Parsing Engine.

Партишонинг внтури AMP-а обеспечивает сокращения количества просматриваемых записей при доступе не по хэш значению за счет Partitioning Elimination.

Внешне механика похожа на использование одновременно hash & list partitioning в Oracle. Однако есть существенные отличия:
1) DDL и скрипты быстрой загрузки-выгрузки не зависят от аппаратной конфигурации системы, т.е. количества узлов, особенностей дисковой подсистемы.
2) Равномерность распределения данных при любом числе узлов. В Oracle придется использовать кол-во узлов кратное степени 2-ки (Так указано в доке по 10gR1).
3) Хэш, т.е. Primary Index обеспечивает не только распределение данных, но быстрый поиск записи по хэш значению. (Просьба не сравнивать с B-tree индексом по партишону, рассматривалось выше).
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32926181
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffПо моему до меня дошло :) По крайней мере, я понял принцип.

Ура! Я объяснял, как мог. Сорри, что с первого раза не сумел.

BirkhoffВсе равно странно, что он работает, но это может быть в сиду непривычности идеи. :)

Сам удивляюсь :)

BirkhoffА вот когда происходят перераспределения данных между узлами - на каждый узел попадает копия данных, которая после отработки запроса удаляется? Или она там сохраняется?
Что произойдет если следующий пользователь захочет выполнить примерно такой же запрос?

Перераспределённая копия таблицы остаётся живой, пока в ней существует необходимость в пределах запроса (или группы запросов, если это multistatement request).

Для другого пользователя таблица будет перераспределяться заново. Ведь за время между двумя запросами она могла измениться, не так ли? Мы же много пользовательскую среду рассматриваем.


2 DimaR:
Я, честно говоря, немного не понял, что Вы хотели показать своим примером.
Поясните, пожалуйста.
Если Вы хотите показать, что для сортировки не используется диск, то попробуйте запустить с десяток таких запросов параллельно, как рекомендует Николай. Посмотрите, что у Вас получится, когда будут переключаться контексты между пользователями. Скорее всего, будет своп на диск в большом количестве. При этом свопится будет вся память процессов. При обратном переключении надо будет это всё опять с дисков читать в память.

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

Это мои соображения. Возможно, я не прав. Если так, поправьте, пожалуйста.

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

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

DimaRВопросы стоят о том как параллелятся задачи в террадате, особенно между большим количеством узлов.


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

Мы уже обсудили тут и поняли, что распараллеливание позволяет быстрее выполнять операцию сортировки. Эта операция, кстати, является базовой для большинства алгоритмов обработки данных. Например, большинство алгоритмов джойнов основаны на предварительной сортировке данных.

Вот и всё. Остальное, в принципе, детали реализации. Которые, кстати, я готов тоже в меру своих возможностей описать.
Только просьба - задавайте вопросы немного поконкретнее.


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

Спасибо за объяснения.
А есть ли какая нибудь теория, когда внедрение Терадаты опроавдано?
Ведь сейчас уровень железа достиг таких высот, что на обычном 4х процессорном сервере с "обычным" дисковым массивом, большим объемом памяти и "обычной" реляционной базой можно крутить телекомовские объемы данных. А у обычных пользователей запросы и вовсе гораздо проще.
Не получается ли так, что закон Мура сводит на нет преимущества Терадаты в реальных проектах? Вернее сказать, то, что сферы применения найти можно я уверен, но может этих сфер становится меньше?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32928684
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реальные телекомовские объемы...

• Approximately 150 million Call Detail Records (CDRs) are loaded daily, and an equivalent number are deleted
• Rolling 60 days of CDR data
• 4.5 Billion transactions per day
• 7,000 customer care users
• Available 24x7x365, never have to REORG


Конфигурацию сервера не подскажете???? :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32928745
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovРеальные телекомовские объемы...

• Approximately 150 million Call Detail Records (CDRs) are loaded daily, and an equivalent number are deleted
• Rolling 60 days of CDR data
• 4.5 Billion transactions per day
• 7,000 customer care users
• Available 24x7x365, never have to REORG


Конфигурацию сервера не подскажете???? :)Дык я про это и говорю.
Конечно если взять какой нибудь France Telecom или наш MTS тот же, там будут подобные объемы. Но и там Oracle стоит к примеру. Справляется.
Но сколько таких?
А тем более, сколько таких в России?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32928755
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот еще вопрос.
Если принять во внимание что разослать по ущлам данные и потом пересичтать будет быстрее, чем пересчитать на каждом узле без пересылки, какое результируещее время отлика?
Какой порядок кремени отработки средних запросов? Секунды? Десятки секунд? Минуты? Десятки минут?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32929432
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffКонстантин,

Спасибо за объяснения.
А есть ли какая нибудь теория, когда внедрение Терадаты опроавдано?
Ведь сейчас уровень железа достиг таких высот, что на обычном 4х процессорном сервере с "обычным" дисковым массивом, большим объемом памяти и "обычной" реляционной базой можно крутить телекомовские объемы данных. А у обычных пользователей запросы и вовсе гораздо проще.
Не получается ли так, что закон Мура сводит на нет преимущества Терадаты в реальных проектах? Вернее сказать, то, что сферы применения найти можно я уверен, но может этих сфер становится меньше?

Внедрение Терадаты оправдано там, где нужно построить хранилище (витрину) данных для эффективной обработки больших объёмов данных, выполнения сложных аналитических запросов в многопользовательской среде, там, где требуется высокая надёжность и хорошая масштабируемость.
Любое более-менее серьёзное хранилище данных выдвигает все эти требования.

Терадата не работает с "необычными" дисковыми массивами. Это стандартные SCSI или FC дисковые массивы. Например EMC, или дисковые массивы NCR (OEM, производителя навскидку не вспомню).

Что такое "обычная" реляционная база данных? SQL стандарта ANSI 99, возможность подключиться по ODBC, JDBC, CLI. Всё это есть в Терадате. Это - обычная реляционная СУБД. Просто она затачивалась под определённые задачи.

Что касается телекомовских объёмов данных и четырёхпроцессорных систем - это, на мой взгляд заблуждение.
Терадатная система в Vodafon Germany весит под 100 тонн. Там что-то порядка 160 узлов. Систему активно используют порядка 4 тысяч пользователей. Сомневаюсь, что "обычная" СУБД на 4-процессорном сервере сможет это всё обрабатывать.

Закон Мура касается скорости процессоров. СУБД - системы, в основном, дисковые (а Терадата - тем более). Там закон Мура не действует (наверное, в силу наличия механических частей). Скорость работы дисков растёт не так стремительно.

Сфера применения Терадаты не только не сужается, но и расширяется.
Скорость роста количества данных на планете опережает темпы развития СУБД. Возьмите, например, технологию RFID. После её введения объёмы данных, генерируемые на всём пути прохождения товара от производителя до потребителя увеличатся, как минимум, на порядок.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32929436
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НиколайРеальные телекомовские объемы...

• Approximately 150 million Call Detail Records (CDRs) are loaded daily, and an equivalent number are deleted
• Rolling 60 days of CDR data
• 4.5 Billion transactions per day
• 7,000 customer care users
• Available 24x7x365, never have to REORG


Конфигурацию сервера не подскажете???? :)


А Вы это откуда взяли?



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32929438
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffКонечно если взять какой нибудь France Telecom или наш MTS тот же, там будут подобные объемы. Но и там Oracle стоит к примеру. Справляется.

По поводу справляется во Франс Телеком - Вы знаете с чем справляется?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32929439
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffИ вот еще вопрос.
Если принять во внимание что разослать по ущлам данные и потом пересичтать будет быстрее, чем пересчитать на каждом узле без пересылки, какое результируещее время отлика?
Какой порядок кремени отработки средних запросов? Секунды? Десятки секунд? Минуты? Десятки минут?

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

Сами понимаете, всё зависит от того, какие запросы. Например, тактические запросы могут выполняться за доли секунды. Это небольшие запросы типа OLTP, но поступающие в большом количестве.
Бывают сложные запросы, которые могут выполняться минуты, десятки минут и часы.
"Средний запрос" трудно себе представить.
Не пинайте сильно, не смогу на этот вопрос ответить достоверно.


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

В Teradata тоже наверное есть понятие как сolocated join

Это когда подбирется ключ для хэширования одинаковый для нескольких таблиц.

Например
Table Customer
(customer_id, customer_columns...)
Table transactions
(trans_id, customer_id, trans_columns...)

Partitionig key выбирается для обеих таблиц сustomer_id

Тогда join этих таблиц идет в пределах одного узла без передачи данных на другие узлы.


Пример примитивный не учитывает что может быть data skew (когда на одном узле данных больше чем на другом)


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

Про data skew немного не понял - поясните, пожалуйста.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32929445
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTERНезнаю Константин Вы так все интресно рассказываете, но Oracle поверьте мне уж очень хорошо напичкан вопросами хранения данных, и таблицные пространства на разных дисках и партиции и путь теже хинты(писать запросы надо готовой а не мышкой!!!) делают его более гибким чем слона Терраду.

Я знаю, чем напичкан Оракл.
Расскажите произодителям репортинговых тулзов, чем надо писать запросы, а также расскажите бизнес-пользователям, что им всем поголовно надо выучить SQL и в совершенстве освоить хинты.


P.S.
Кстате в Oracle тоже локализуеться запрос на партицию. Так что это не только для хранения но и для доступа к данным

Ну, немножечко Вы недопоняли. Мало понять в каком партишионе лежит запись, надо суметь её там ещё отыскать. В Оракл без индекса Вы будете сканировать весь партишион (хорошо, в среднем половину). Сколько чтений с диска?
В Терадате запись сама себя адресует Доступ по первичному индексу (который суть функция и места не занимает) в большинстве случаев происходит за одно чтение с диска. В Оракл для этого нужно дополнительный индекс строить.



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

Я сделал поправку на то, что в мире очень много компаний, у которых так много данных.
Но вопрос мой был именно про нашу реальность, про Россию (ну может СНГ)
У нас RFID это более чем экзотика. Для подавляющего большинства ретейлеров (не лидеров, а именно большинства) 10 миллиардов записей в "таблице" продаж - это запас на несколько лет. В телекоме есть несколько игроков...
Закон Мура я упомянул аллегорически. Тем не менее, дисковое пространство растет и диски дешевы. Я не слышал чтобы основной проблемой для хранилищ было бы отсутствие дискового пространства.
Собственно вопрос был в том, а есть ли реальный рынок для Терадаты в России?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32931649
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу хранилища - это один из американских телекомов. Я пока не уверeн что этот reference публичный. Если да скажу название. У него порядка 500 процессоров и ~90ТБ.

data skew - точного определения не нашел. Например - когда администратор выбирает не очень хороший partition key и данные размазываются неравномерно. В моем примере один из клиентов может иметь больше транзакций чем другие и тогда будет перекос на ту ноду где он находится.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32931762
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский OLAPMASTERНезнаю Константин Вы так все интресно рассказываете, но Oracle поверьте мне уж очень хорошо напичкан вопросами хранения данных, и таблицные пространства на разных дисках и партиции и путь теже хинты(писать запросы надо готовой а не мышкой!!!) делают его более гибким чем слона Терраду.

Я знаю, чем напичкан Оракл.
Расскажите произодителям репортинговых тулзов, чем надо писать запросы, а также расскажите бизнес-пользователям, что им всем поголовно надо выучить SQL и в совершенстве освоить хинты.


P.S.
Кстате в Oracle тоже локализуеться запрос на партицию. Так что это не только для хранения но и для доступа к данным

Ну, немножечко Вы недопоняли. Мало понять в каком партишионе лежит запись, надо суметь её там ещё отыскать. В Оракл без индекса Вы будете сканировать весь партишион (хорошо, в среднем половину). Сколько чтений с диска?
В Терадате запись сама себя адресует Доступ по первичному индексу (который суть функция и места не занимает) в большинстве случаев происходит за одно чтение с диска. В Оракл для этого нужно дополнительный индекс строить.



С уважением,
Константин Лисянский
http://lissianski.narod.ru

Вот сдесь действительно может возникнуть непонимание из за того что одно и тоже слово имеет разные значения. Я так понимаю этот хеш индекс он всеравно есть в Терраде и по нему происходит основной поиск. Но вот вопрос если например запрос с HEAVING то как сдесь поможет этот ключ, надо найти всех покупателей короые сделали больше чем 100 покупок в сумме, как он пойдет,что ему даст этот индекс?? да он обработает всех покупателе и сбросит их в буфер а там будет смотреть у кого больше 100.
Или как он пойдет, если возможно план показать это было бы интересно.

А про написания хинтов это действительно удобно если вы пишите своего клиента ну на Delphi там в компаненте вы в нутри запроса можете поставить хинт и он будеть работать быстрее.

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

P.S.
Если я неправ то пусть знатоки Oracle меня поправят!!!
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32931924
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffХотя в Oracle ничего не мешает внутри партиции построить индекс и искать по нему.
Хотя для DWH hash партиции редко (если вообще) используются, обычно какие то другие, призванные сузить спектр поиска до партиции или нескольких.
Тогда при оптимизации запроса, будет вычисляться не партиция для каждой записи, а из каких партиций вообще имеет смысл данные доставать, а какие не трогать. Техника называется partition pruning.
В случае хэш партиций, думаю селект пойдет по всем патрициям без разбора.

dear Birkhoff,
не могу не удержаться, так что извините за постинг с такой задержкой.
1. хэш-партиции очень красивы - они единственные дают равномерное распределение данных по партициям, - но очень неудобны. Практически нельзя использовать удобства администрирования партиций, например, выведение партиции за прошлый год (месяц, другую компанию) в технический режим (лучше документации я все равно не расскажу). Но Oracle предлагает использовать комбинированные секционирования, например, range+hash. И тут как бы все в порядке - и красота в распределении, и удобство администрирования.
2. По хэш-партишионированию (как и по любому другому, в том числе по комбинированному) partition pruning работает всегда, если это позволяет запрос
Или есть доказательства противного?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932076
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pidear Birkhoff,
не могу не удержаться, так что извините за постинг с такой задержкой.
1. хэш-партиции очень красивы - они единственные дают равномерное распределение данных по партициям, - но очень неудобны. Практически нельзя использовать удобства администрирования партиций, например, выведение партиции за прошлый год (месяц, другую компанию) в технический режим (лучше документации я все равно не расскажу). Но Oracle предлагает использовать комбинированные секционирования, например, range+hash. И тут как бы все в порядке - и красота в распределении, и удобство администрирования.
2. По хэш-партишионированию (как и по любому другому, в том числе по комбинированному) partition pruning работает всегда, если это позволяет запрос
Или есть доказательства противного?А в чем противоречие с тем, что я сказал?
Насчет pruning с хэш партициями, я тоже не спорю, только предположил , что мало найдется таких запросов, где можно будет четко выделить список партиций, где лежат наши данные. У вас другой опыт?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932122
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffНасчет pruning с хэш партициями, я тоже не спорю, только предположил, что мало найдется таких запросов, где можно будет четко выделить список партиций, где лежат наши данные. У вас другой опыт?

В Терадате ВСЕ запросы, в условии WHERE которых стоит условие на PRIMARY INDEX (столбец, или набор столбцов, по которым осуществляется хэш-распределение) выполняются за одно чтение с диска, то есть, не только партишион (AMP) определяется, но и выбирается конкретная запись.

То есть, запрос

Код: plaintext
1.
2.
3.
4.
5.
SELECT
  *
FROM
  customer
WHERE
  customer_id= 1000 

выполнятся за одно чтение.

PiНо Oracle предлагает использовать комбинированные секционирования, например, range+hash. И тут как бы все в порядке - и красота в распределении, и удобство администрирования.

Терадата тоже. Только немного в другой последовательности - сначала хэш, а потом RANGE или CASE.
При этом партишионинг второго уровня осуществляется логически, а не физически.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932194
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTERВот сдесь действительно может возникнуть непонимание из за того что одно и тоже слово имеет разные значения. Я так понимаю этот хеш индекс он всеравно есть в Терраде и по нему происходит основной поиск. Но вот вопрос если например запрос с HEAVING то как сдесь поможет этот ключ, надо найти всех покупателей короые сделали больше чем 100 покупок в сумме, как он пойдет,что ему даст этот индекс?? да он обработает всех покупателе и сбросит их в буфер а там будет смотреть у кого больше 100.
Или как он пойдет, если возможно план показать это было бы интересно.

Хэш-индекс - это не индекс в традиционном понимании.
Тут, видимо, надо рассказать, как это работат.
Итак, при создании таблицы выбирается столбец (группа столбцов), которые используются для распределения таблицы по единицам параллелизма (которые в Терадате называются AMP - Access Module Processor).
Ок. Создали таблицу теперь нужно её наполнять.
При выполнении операции вставки записи в таблицу значение столбца, являющегося первичным индексом пропускается через хэш-функцию. В результате получается 32-битное число. Одна половина этого числа (называется DSW - destination selection word) исползуется для отыскания того AMP, на диске которого будет храниться эта запись. Вторая часть (remainder) используется как часть ROWID.
Нетрудно заметить, что DSW может принимать 65536 значений.
Эти значения (при конфигурировании системы) размещаются в матрице (хэш-карте), которая адресует AMPы.
То есть, по значению DSW мы можем однозначно сказать, на какой AMP пойдёт данная запись.
Дальше этому AMPу отправляется сообщение о том, что надо вставить новую запись.
AMP со своей стороны вставляет запись в таблицу. При этом записи присваивается ещё одно число поимио того, которое она получила при хэшировании первичного индекса. Называется оно uniquness value.
Число, полученное при хэшировании и uniquness value вместе образуют ROWID записи, которое хранится в таблице вместе с записью.
Вставляемая запись помещается в блок (блоки имеют переменную длину). Блоки хранятся в циллиндрах и адресуются внутри циллиндра с помощью специального индекса (CYLINDER INDEX). Циллиндры также индексируются (MASTER INDEX).
Записи хранятся в порядке логически отсортированных ROWID и не имеют постоянного места на диске (кстати, в силу этого в Терадате не требуется периодическая реорганизация индексов).

Таким образом хэш-индекс - это не индекс в традиционном понимании (то есть структура, которая хранит соответствие значение-адрес записи), хотя физически он занимает место (в основном это ROWID, master index и cylinder index занимают не много места).

Соответственно, поиск по первичному индексу происходит очень быстро - хэшируется значение, стоящее в условии WHERE запроса, и Терадата знает какому AMPу надо послать сообщение, чтобы он её достал.

Дальше используется двухуровневая структура master index-cylinder index, и запись извлекается.


Теперь по поводу запроса с HAVING.
Естественно, первичный индекс здесь использоваться не будет. Будет FULL TABLE SCAN.

Под рукой нету подходящей таблицы.
Давайте из таблицы товаров:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT
  Item_ID
FROM
  ITEM_
GROUP BY
  Item_ID
HAVING
  COUNT(Item_SKU_Num)> 100 

План запроса:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Explanation
   1 ) First, we lock a distinct RPDM30."pseudo table" for read on a
     RowHash to prevent global deadlock for RPDM30.ITEM_. 
   2 ) Next, we lock RPDM30.ITEM_ for read. 
   3 ) We do an all-AMPs SUM step to aggregate from RPDM30.ITEM_ by way
     of an all-rows scan with no residual conditions, and the grouping
     identifier in field  1025 .  Aggregate Intermediate Results are
     computed locally, then placed in Spool  3 .  The size of Spool  3  is
     estimated with low confidence to be  1 , 116  rows.  The estimated
     time for this step is  0 . 03  seconds. 
   4 ) We do an all-AMPs RETRIEVE step from Spool  3  (Last Use) by way of
     an all-rows scan with a condition of ("(Field_3 (INTEGER))> 100")
     into Spool  1  (group_amps), which is built locally on the AMPs. 
     The size of Spool  1  is estimated with low confidence to be  372 
     rows.  The estimated time for this step is  0 . 04  seconds. 
   5 ) Finally, we send out an END TRANSACTION step to all AMPs involved
     in processing the request.
  -> The contents of Spool  1  are sent back to the user as the result of
     statement  1 . 


Этот запрос выполняется с предсказуеой степенью параллелизма (All-AMP, то есть параллельная работа всех единиц параллелизма).



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932225
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Константин, кажеться вы пролили свет на меня. Я понял что это просто организация хранения данных. Далее можно строить индексы на эти АМР-ы что бы там еще быстрее работать да??

Но я так понимаю операция insert там очень жестко проходить, надо захешировать все записи определить в какие АМР-ы их класть и перестроить индексы это наверно долго.

И я понял из запроса он заблокировал чтение из этой таблицы, тоесть все остальные ждут когда он отработает и снимет зашелку да??

Вообще запросы с HAVING штука тяжелая.

Вот пример Oracle как будет выполнять запрос на поиск таких мест продаж

SQL Statement:

SELECT plcode
FROM new_rest
GROUP BY plcode
HAVING sum(val) > 100


Optimizer Mode Used:

COST ALL ROWS (optimizer: CHOOSE)

Total Cost:

8

Execution Steps:

Step # Step Name
5 SELECT STATEMENT
4 FILTER
3 SORT [GROUP BY]
2 PARTITION RANGE [ALL]
1 OLAP.NEW_REST TABLE ACCESS [FULL]

Step # Description Est. Cost Est. Rows Returned Est. KBytes Returned
1 This plan step retrieves all rows from table NEW_REST. 3 1 968 32,672
2 This plan step iterates over all of the partitions of a range-partitioned table.
3 This plan step accepts a set of rows from its child node, and sorts them into groups based on the columns specified in the query's GROUP BY clause. 8 1 968 32,672
4 This plan step accepts a set of rows from its child node, eliminates some of them, and returns the rest.
5 This plan step designates this statement as a SELECT statement. 8 -- --

Отработал 53,863 секунт записей в таблице - 23 797 965

Но ничего не заблокировал!
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932255
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет pruning с хэш партициями, я тоже не спорю, только предположил , что мало найдется таких запросов, где можно будет четко выделить список партиций, где лежат наши данные. У вас другой опыт?[/quot]

Я Вас просто не понял.
У меня хэширование идет по номенклатуре, поэтому любой запрос по конкретной позиции приводит к pruning. А вот где что лежит - это действительно загадка.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932302
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTERСпасибо Константин, кажеться вы пролили свет на меня. Я понял что это просто организация хранения данных. Далее можно строить индексы на эти АМР-ы что бы там еще быстрее работать да??

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

OLAPMASTERНо я так понимаю операция insert там очень жестко проходить, надо захешировать все записи определить в какие АМР-ы их класть и перестроить индексы это наверно долго.

Не совсем так. Операции массовой загрузки данных из плоских файлов, например, в Терадате выполняются чрезвычайно эффективно. Потому как выполняются они параллельно. Операции INSERT INTO ... SELECT также выполняются эффективно. Скажем, у меня на одноузловой машине такая операция на 250 млн. строк (примерно 10 ГБ) выполняется порядка 6 минут (то есть, со скоростью порядка 700 тыс. записей в секунду).


Конечно, догнать Оракл в приложениях класса OLTP Терадате, я думаю, не удастся. Но она и не для этого разрабатывалась.
Это я к тому, что операции вставки и обновления единичных записей, действительно, для Терадаты довольно тяжелы.
Однако, если речь идёт, напрмер, о коротких запросах на чтение данных, то это не проблема. У Терадаты есть клиенты, где такие запросы работают параллельно с тяжёлыми запросами DSS, то есть нагружка носит смешанный характер.
Например, в сети казино Harra's в день выполняется до 300 тысяч таких коротких запросов, которые работают параллельно со сложными запросами. Время отклика таких запросов меньше секунды.

OLAPMASTERИ я понял из запроса он заблокировал чтение из этой таблицы, тоесть все остальные ждут когда он отработает и снимет зашелку да??

Если хотят писать в таблицу, то ждут. Если хотят читать, то могут делать это параллельно с этим запросом.
Более того, если двум (или более) запросам нужно сканировать одну и ту же таблицу, то Терадата может это делать один раз для всех (даже несмотря на то, что второму и третьему запросу надо начать сканировать позже). Это называется syncronized table scan.

OLAPMASTERВообще запросы с HAVING штука тяжелая.
Не для Терадаты. Поскольку она выполняет их параллельно.

OLAPMASTERВот пример Oracle как будет выполнять запрос на поиск таких мест продаж

Трудно понять степень параллелизма этого запроса, соответственно, и оценить его эффективность.

OLAPMASTERНо ничего не заблокировал!
В хранилищах данных, в общем случае, вопросы блокировок не так актуальны, как в OLTP-приложениях. В них транзакционность меньше выражена. Поэтому принципиальных преимуществ версионность здесь, на мой взгляд, не даёт.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932308
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffЯ сделал поправку на то, что в мире очень много компаний, у которых так много данных.
Но вопрос мой был именно про нашу реальность, про Россию (ну может СНГ)
У нас RFID это более чем экзотика. Для подавляющего большинства ретейлеров (не лидеров, а именно большинства) 10 миллиардов записей в "таблице" продаж - это запас на несколько лет. В телекоме есть несколько игроков...
Закон Мура я упомянул аллегорически. Тем не менее, дисковое пространство растет и диски дешевы. Я не слышал чтобы основной проблемой для хранилищ было бы отсутствие дискового пространства.
Собственно вопрос был в том, а есть ли реальный рынок для Терадаты в России?

Конечно, есть. Вечно мы думаем, что мы какие-то уникальные, и что у нас всё по-другому.
Я думаю, половина крупных телекомов в мире использует Терадату в качестве платформы для хранилищ данных.
Розница и банки тоже не отстают.
Ещё один факт - такие компании, как SAP и Siebel заключили с Терадатой стратегическое партнёрство.
К тому же у Терадаты не только СУБД имеется. Есть ещё куча приложений. Например, для той же розницы - Retail Decisions (OLAP/Reporting), Supply Chain Intelligence, Demand Chain Management, Price Optimization, Market Basket Analysis, Fraud Detection, POS Productivity и ещё много чего.
Есть отраслевые модели данных.
Есть аналитический CRM, который занимает лидирующую позицию среди приложений этого класса.
Так что, рынок есть.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932318
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiНасчет pruning с хэш партициями, я тоже не спорю, только предположил, что мало найдется таких запросов, где можно будет четко выделить список партиций, где лежат наши данные. У вас другой опыт?

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

ОК. Здесь, наверное, следут пойти дальше, и коснуться других индексов, которые есть в Терадате.
Расскажу о том, что такое secondary index.
Начну с того, что в Терадате не используются B-tree индексы. Вторичный индекс в Терадате - это тоже таблица, которая также распределяется по всем единицам параллелизма.

Допустим, у нас есть таблица клиентов, которая посредством перцичного индекса customer_id распределяется по единицам параллелизма (AMPам).

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

Если нам нужно отыскать в таблице клиента по заданному номеру паспорта, а по этому полю нет индекса, то выполняется (как и везде) полное сканирование таблицы.
Если мы знаем, что такие запросы будут выполняться часто, мы можем принять решение создать по этому полю индекс.
ОК. Создаём.

CREATE UNIQUE INDEX (passport_number) ON T_Customer;

Что происходит физически? Терадата создаёт вспомогательную индексную таблицу и распределяет её как будто это обычная таблица с первичным индексом passport_number. Кроме passport_number в этой таблице хранится ROWID строки, содержащей клиента с номером паспорта, кранящемся в данной строке индексной таблицы.
В общем случае строки индексной подтаблицы распределены по AMPам не так, как строки базовой таблицы (за редким исключением когда хэш-значение первичного индекса совпадает с хэш-значением вторичного).
Теперь нам нужно выбрать запись с паспортом определённого номера.
Оптимизатор понимает, что есть индекс, соответственно, сначала ищется строка индексной таблицы, которая содержит номер паспорта, который мы указали в запросе. По аналогии с доступом по первичному индексу (см. мой пост на эту тему выше), эта операция выполняется за одно чтение с диска.
После этого чтения у нас будет ROWID нужной записи в базовой таблице. Далее всё происходит ещё раз - по ROWID определяем какой AMP содержит эту запись и отправляем ему сообщение, чтобы он её достал.
В итоге использщование уникального вторичного индекса позволяет за два чтения с диска достать нужную нам запись.
Не так эффективно, как в случае с первичным индексом, но тоже очень быстро.
Это расширяет спектр запросов, которые можно охарактеризовать как pruning (хотя это немного другое).


Теперь по поводу - где что лежит. В терадате это - не загадка. Существуют функции, которые позволяют посмотреть, на каком AMPе лежит данная запись.

Это очень полезные функции, поскольку помогают выбрать более эффективно первичный индекс, если есть варианты.
Если, скажем, Вы уже выбрали первичный индекс, и в данных наблюдается перекос (например, в силу наличия большого количества неуникальных значений), то можно, не перезагружая данные, оценить какой перекос будет в случае, если мы выберем другой первичный индекс.
Не знаю, есть ли такие функции в Оракл.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932323
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийКонечно, есть. Вечно мы думаем, что мы какие-то уникальные, и что у нас всё по-другому.
Я думаю, половина крупных телекомов в мире использует Терадату в качестве платформы для хранилищ данных.
Розница и банки тоже не отстают.
Ещё один факт - такие компании, как SAP и Siebel заключили с Терадатой стратегическое партнёрство.
К тому же у Терадаты не только СУБД имеется. Есть ещё куча приложений. Например, для той же розницы - Retail Decisions (OLAP/Reporting), Supply Chain Intelligence, Demand Chain Management, Price Optimization, Market Basket Analysis, Fraud Detection, POS Productivity и ещё много чего.
Есть отраслевые модели данных.
Есть аналитический CRM, который занимает лидирующую позицию среди приложений этого класса.
Так что, рынок есть.Похоже, что опять маркетинг пошел :) Я же про Россию спрашивал. :)
Ну да ладно, это была провокация с моей стороны.
Я и так понял, что система очень интересная, да и наша дискуссия заставила взглянуть на некоторые вещи по-новому. :)

А вот вопрос более технический.
А что с клиентами к Терадате? Каковы возможности SQL? Делается ли тут упор на продвинутых клиентов типа MSTR, которые могут написать многопроходный SQL для получения разноуровневых срезов или штатные средства дают гибкие возможности? Если да, то может расскажете что-то что вам кажется интереесным на эту тему?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932327
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин,

Может быть я не внимательно прочитал, но, по-моему, Secondary Index - это еще одна фича, которая является следствием распараллеливания данных по узлам. То есть, если ситема не делает акцент на распараллеливании, то эта структура не имеет никакого смысла в этой системе.
Хотя, конечно, это все равно интересно.
А если отвлечься от параллелизации, то уникальные индексы не являются ничем необычным. :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932336
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Birkhoff Похоже, что опять маркетинг пошел :) Я же про Россию спрашивал. :)
Ну да ладно, это была провокация с моей стороны.
Я и так понял, что система очень интересная, да и наша дискуссия заставила взглянуть на некоторые вещи по-новому. :)

Я отдавал себе отчёт и предвидел про маркетинг :)
Ну, а как я ещё смог бы про перспективы рассказать?
Дейтвительно, провокация :)

Я рад, что дискуссия приносит пользу не мне одному :)

BirkhoffА вот вопрос более технический.
А что с клиентами к Терадате?

Всё, что работает через ODBC и JDBC можно прицепить.
Например, BusinessObjects, Microstrategy, Cognos, Brio, Siebel Analytics, Crystal Reporting, SAP BW и.т.д
Хотите, можно Excel.

BirkhoffКаковы возможности SQL?
Очень хорошие. ANSI-99 довольно широко поддерживается. Плюс расширения Терадаты.
Из основных фич:
- аналитические и OLAP-функции (нарастающие и скользящие итоги, CUBE, ROLLUP, RANK OVER, статистика и т.д.)
- рекурсивные запросы (в стандарте ANSI)
- триггеры (в стандарте ANSI)
- UDF
- хранимые процедуры (SPL в стандарте ANSI)
- курсоры
- все виды джойнов (до 64 в одном запросе, самое интересное, что при этом работает)
- подзапросы с диким уровнем вложенности (тоже до 64, но это не пробовал :)

BirkhoffДелается ли тут упор на продвинутых клиентов типа MSTR, которые могут написать многопроходный SQL для получения разноуровневых срезов или штатные средства дают гибкие возможности?

Microstrategy, BusinessObjects, Cognos (ReportNet) специально оптимизируют SQL под Терадату чтобы перенести нагрузку с клиента.
Все остальные могут использовать стандартные фичи.
В этом плане Терадата мало чем отличается от конкурирующих СУБД.

BirkhoffЕсли да, то может расскажете что-то что вам кажется интереесным на эту тему?

Наличие собственного средства класса data mining (называется Teraminer), реализующего концепцию in-database data mining. То есть вместо того, чтобы выгружать данные из базы (как это делают другие инструменты), data mining выполняется на стороне СУБД.
Это, я Вам скажу, действительно, требует мощной платформы, поскольку я видел тот SQL. Руками такой не напишешь. Куча промежуточных таблиц. Естественно, всё это не очень индексируется. Но работает и выдаёт результаты.
Кстати, сейчас на Украине идёт проект, в котором используется этот инструмент. Интересно, что они там намайнят.

Что ещё можно интересного рассказать? Лучше спрашивайте. Так легче.


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

Ну data mining в Oracle тоже на стороне СУБД, никуда ничего выкачивать не надо. :)
А если уж об этом зашла речь, то какие алгоритмы mining поддерживаются?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32932344
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffНу data mining в Oracle тоже на стороне СУБД, никуда ничего выкачивать не надо. :)

А я не утверждал обратного :)

BirkhoffА если уж об этом зашла речь, то какие алгоритмы mining поддерживаются?

Довольно много различных статистических методов (descriptive statistics, проверка гипотез и т.д.).
Есть алгоритмы преобразования и подготовки данных.
Есть регрессионный анализ (линейная, логистическая регрессия).
Деревья решений.
Кластеризация.
Affinity Analysis (он же Market Basket Analysis)
Sequence Analysis

Дальше на вскидку не помню. Но осталось не много. Всё основные, пожалуй, перечислил.
Нет нейросетей и генетических алгоритмов. Очевидно, их на SQL труднее реализовать. Да, и продукт сравнительно молодой. Лет 5-6 ему всего.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32933436
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTERВообще запросы с HAVING штука тяжелая.
Отработал 53,863 секунт записей в таблице - 23 797 965

Dear OLAPMASTER,
укажите, будь ласка, выделенное количество ОЗУ под буффера и сортировку.

У меня как раз такая же таблица! Руки чешутся сравнить!
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32933579
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pi OLAPMASTERВообще запросы с HAVING штука тяжелая.
Отработал 53,863 секунт записей в таблице - 23 797 965

Dear OLAPMASTER,
укажите, будь ласка, выделенное количество ОЗУ под буффера и сортировку.

У меня как раз такая же таблица! Руки чешутся сравнить!
Из select * from v$process

Для having

PGA_ALLOC_MEM = 462973

сегодня уже за 49 сек и 23 843 796 записей.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32933723
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTER
сегодня уже за 49 сек и 23 843 796 записей.

За 11,656 возвращено 156 записей из 30 479 786.
Все полность кэщировано - чтений 0, сортировок на диск - 0.

Всем sorry за офф-топ
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32933995
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pi OLAPMASTER
сегодня уже за 49 сек и 23 843 796 записей.

За 11,656 возвращено 156 записей из 30 479 786.
Все полность кэщировано - чтений 0, сортировок на диск - 0.

Всем sorry за офф-топ

Покаши план запроса плизззз
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32934012
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,

может Вы свою тему перенесёте в форум по Оракл?
Здесь, на мой взгляд, всё-таки немного другое обсуждение.

Спасибо.

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

может Вы свою тему перенесёте в форум по Оракл?
Здесь, на мой взгляд, всё-таки немного другое обсуждение.

Спасибо.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

Этот топик вообще давно уже к теме форума OLAP не относится.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32934354
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор,

взгляни повнимательнее на название форума - OLAP и DWH
Расшифровываю DWH - data warehousing.
Teradata - специализированная СУБД для хранилищ данных.
По-моему, дискуссия идёт по теме.

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

взгляни повнимательнее на название форума - OLAP и DWH
Расшифровываю DWH - data warehousing.
Teradata - специализированная СУБД для хранилищ данных.
По-моему, дискуссия идёт по теме.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
Константин Oracle тоже специлизируеться на DWH. Вот мы смотрим + и - этих СУБД.
Вот пока - террады я не нашел, только вот операции по insert.
Вообще интересно тема.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32934514
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет

С интересом прочитал этот топик. Весьма познавательно!

Спасибо 2 Константин Лисянский, Birkhoff, Андрей Прохоров, а также небольшому, но умелому числу провокаторов, не давших замереть обсуждению ;-).

Отдельное спасибо за сдержаннось (не скатились на маркетинговые заморочки и соизмерение половых органов).

Всего
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32935994
Виктор Сакович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийВиктор,

взгляни повнимательнее на название форума - OLAP и DWH
Расшифровываю DWH - data warehousing.
Teradata - специализированная СУБД для хранилищ данных.
По-моему, дискуссия идёт по теме.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

Константин.

Спасибо, что объяснил мне, что DWH означает data warehousing.
С другой стороны и дисковые стойки (storage) иногда переводят как хранилище. И их также применяют для построения хранилищ (здесь я имею в виду хранилище как компоненты DSS. Для справки DSS - Decision Support System). Но это не причина их обсуждать на OLAP форуме, так же как технические аспекты реализации СУБД Терадата. Интереснее было бы узнать какие-то численные данные, чтобы понять, когда применение терадаты даёт эффект, а когда, может быть, не очень.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32936369
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВикторСпасибо, что объяснил мне, что DWH означает data warehousing.

Не за что. Обращайся :)

ВикторНо это не причина их обсуждать на OLAP форуме, так же как технические аспекты реализации СУБД Терадата
Не понимаю, почему.
Я отвечал на конкретные вопросы. Людям было интересно.
Кому не интересно, можно игнорировать один топик, когда есть ещё полный экран топиков на другие темы.
Так что, я не согласен с такой постановкой вопроса.

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


Вчера учительница по математике скзале мне, что я в ней ничего не понимаю, и поставила в дневник какую-то цифру :)




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

Может быть я не внимательно прочитал, но, по-моему, Secondary Index - это еще одна фича, которая является следствием распараллеливания данных по узлам.

Я бы выразился поточнее - это фича, которая выгодно использует параллельную архитектуру Терадаты.

BirkhoffТо есть, если ситема не делает акцент на распараллеливании, то эта структура не имеет никакого смысла в этой системе.
Хотя, конечно, это все равно интересно.

Согласен. Но если система не далает акцента на распараллеливании, то на что она годится? Во всяком случае не на эффективную обработку больших объёмов данных.


BirkhoffА если отвлечься от параллелизации, то уникальные индексы не являются ничем необычным. :)

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



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

Мои два копейка:
- функциональность в каждой СУБД позволяет все (порядок перечисления не важен) каждая (из выживших в конкурентой боротьбе) СУБД затачивается под ...
- a) Oracle - OLTP
- b) MS SQL, DB2 - стандарт
- c) есть БД под real-time - не шибко популярные в силу специфики области применения.
- d) TeraData - DWH. С самого рождения. Когда еще никто кроме отдельных толстых дядей не думал о трендах и т.п.

Интересно было услышать спецов, которые
a) осознают области ограничения применимости (физики бывшие, что ли?)
a-1) где граница между классической кибениматикой и релюционной ;-)
b) это непонятно "детишкам", выросшим на DOS-е и, к сожалению, впитавшим идеологию типа "ща перегружу"
c) показано(-ы) решение(-я), для типовых для DWH запросов. Компетентно.
d) можете считать, что это был просто "UP"


Всего
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32939984
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я уж думал Ааз ничего не добавит. :)
Правда я ничего не понял, кроме вопроса а) и д).
И то а) не совсем ясно относится ли Терадате или вообще? Правильно ли я понял что интересует осознание применимости Oracle?

Ну по остальным вопросам тоже есть мысли.

Мудрено выражаетесь, одним словом :)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32940089
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffА я уж думал Ааз ничего не добавит. :)
Правда я ничего не понял, кроме вопроса а) и д).

А какие а и д? Первые или вторые? :)

Кстати, я могу ещё рассказать, если всё ещё интересно.
Например, про неуникальные вторичные индексы. Они в Терадате устроены по-другому.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32941414
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АазСУБД затачивается под ...
- a) Oracle - OLTP
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...

Dear Andrei,
я не сертифицирован как Oracle8/8i/9i OCP DBA и уже вряд ли буду - сфера интересов уже не та, - но работая (и разрабатывая) в Oracle, DB2 и MS SQL уже лет 10, а в SQL среде так уже лет 18, я позволю сильно не согласиться с Вами по позиционированию Oracle.

Oracle уже великолепно заточена под OLTP приложения, а новые возможности больше направлены на интеграционные и аналитические аспекты использования. Другими словами, Oracle сегодня являет собой пример универсальной СУБД, которая сильна и рынке OLTP, и на рынке BI. В частности, я рассматриваю Oracle как прямой конкурент Teradata на ее, Teradatе, рынке но с одной главной особенностью - возможностью совмещения аналитического и оперативного контуров управления компанией в одной базе.

Andrej, не сужайте область применения Вашего профессиаонального инструмента - ведь к Вам, как сертифицированному специалисту, прислушаются посетители форума.

Opinions are of my own only и вытекают лишь из моего личного опыта... Но готов дискутировать по этому вопросу.

Yours faithfully,
Pi
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32941824
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет

Константин ЛисянскийКстати, я могу ещё рассказать, если всё ещё интересно. Например, про неуникальные вторичные индексы. Они в Терадате устроены по-другому.Естественно, интересно. Хочу надеяться, что рассказ о TeraData продолжится. BirkhoffА я уж думал Ааз ничего не добавит. :)Дык ты и сам неплохо справлялся ;-). Классное обсуждение получилось. Потому и помалкивал. Piя не сертифицирован как Oracle8/8i/9i OCP DBAХрен бы с ними, этими бумажками. Piне сужайте область примененияНе для усугубления... Я уже высказался, что функциональность в каждой СУБД позволяет все . На каждую, тэк скээть, ... найдецца.

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

Как все понимают, (R-)DBMS и SQL (как язык работы с DBMS) - некая абстракция. А именно - абстрагирование от физического уровня хранения и операций с данными. Есть логические домены, картежи и т.п. Как и где все это хранится и извлекается/погружается - вопрос реализации на "низком" уровне.

В каждой из распространенных DBMS приняты стратегические решения по такой реализации.

Oracle (я про него больше знаю) - версионник, изначально с минимальным уровнем блокирования - это СТРАТЕГИЧЕСКОЕ решение, проведенное через весь код. Не на халяву. За все надо платить. Плата - сегменты отката (в довесок к журналу транзакций), читатели никогда не блокируют писателей, уровни изоляции... delayed logging и т.п. При этом, естественно, страдают SELECT'ы. Когда натыкаются на следы идущих и/или завершившихся транзакий. Обратите внимание - на физическом уровне! На уровне блоков. На "легких" SELECT'ах незаметно. В смеси DSS&OLTP уже есть эфф э кт. Количество, таки да, переходит в качество.

Для DWH специфика как раз в тяжелых долгоиграющих запросах. И здесь на передний план выходит (хотим мы этого или нет) вопрос физической организации хранения данных.

Мне было интересно узнать как это реализовано в TeraData. Я знаю решения от Oracle. Я знаю, что MS SQL, даже в последней редакции, не потянет среднего уровня DWH. Не доросли еще. Пока. Захотят (найдут рынок сбыта) - дорастут. Объявят как новый и неизведанный доселе подход, ля-ля ;-).

Надеюсь, что прояснил пп.b),c) ;-)))

Всего
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32942317
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааз Piне сужайте область примененияНе для усугубления... Я уже высказался, что функциональность в каждой СУБД позволяет все .

Oracle (я про него больше знаю) - версионник, изначально с минимальным уровнем блокирования - это СТРАТЕГИЧЕСКОЕ решение, проведенное через весь код. В смеси DSS&OLTP уже есть эфф э кт.

Вот и я том же, только в другом порядке слов - эффэ кт есть только в смеси DSS&OLTP .

Я никогда при работе с одной записью или с кортежом, подчиненной одной записи (строки накладной и прочее), не видел никакого преимущества Oracle по сравнению с чистым блокировочником (ублюдочные версии MS SQL 6.5 и ранее не в счет - это уже глюкавость поставщика).

Все преимущества Oracle возникали, когда нужно было выбрать более одной записи - построить отчет, произвести аггрегацию и т.п. Все это в Oracle делается не так, как в Teradata - делается "на лету" прямо в том же наборе записей, без потери свойств OLTP.

Поэтому Oracle - СТРАТЕГИЧЕСКИ универсальная база, никак не чистая OLTP. На чем настаиваю.

Regards,
Pi
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32942455
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiВсе преимущества Oracle возникали, когда нужно было выбрать более одной записи - построить отчет, произвести аггрегацию и т.п. Все это в Oracle делается не так, как в Teradata - делается "на лету" прямо в том же наборе записей, без потери свойств OLTP.

Поэтому Oracle - СТРАТЕГИЧЕСКИ универсальная база, никак не чистая OLTP. На чем настаиваю.

То есть, Вы хотите сказать, что на базе данных OLTP, хранящей всю историю работы предприятия вы готовы посадить с десяток другой DSS-пользователей, которые будут шерстить всю базу с ног до головы тяжёлыми запросами с кучей джойнов и агрегаций, а в это время тысяча-другая OLTP-транзакций будут летать и не замечать, что кто-то тут пыжится в усилиях решить стратегические задачи.
А если какой-то пользователь сделает нечаянно cross join пары таблиц по десять миллионов записей, то это также никак не скажется на производительности транзакций.
Если это так, то снимаю шляпу перед Oracle и перед таким передовым подходом к построению хранилищ данных.
Да, кстати, дело то и не в том, чтобы совмещать эту нагрузку на одной и той же базе (что в случае серьёзных систем никто не делает), а ещё в том, что хранилище данных имеет другую структуру данных (в силу того, что хранит данные в исторической перспективе и консолидирует данные из разных систем). Так что, в любом случае - две базы на двух разных серверах (минимум, потому что, как правило, в организации более одной оперативной системы).
Ну, и теперь стоит вопрос - использовать ли для создания хранилища "универсальную" СУБД или использовать более эффективную специализированную. Вот и всё. Как только Вы начинаете разносить OLTP и хранилище данных, Вы стоите перед этим выбором.
Я пытаюсь намекнуть на то, что этот выбор есть, и он не обязательно в пользу Оракл. Кстати, два человека, профессионально занимающихся Оракл это понимают, за что снимаю перед ними шляпу, поскольку (не принимайте близко к сердцу, пожалуйста) Ораклоиды - это такие религиозно преданные люди, которые, как правило, воспринимают любые другие технологии в штыки.

Удачи!


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32942480
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Pi,

я согласен с Вашими утверждениями об универсальности ORDBMS Oracle и т.д. Но мне не нравится, что Вы провоцируете меня на сравнение двух СУБД (для этого есть отдельный форум) и неявную рекламу Oracle. Поэтому не сочтите отсутствие моих ответов за неуважение.

Я достаточно много знаю про Oracle. И про это пишу в соответствующем форуме. Здесь же меня в первую очередь интересуют подробности про TeraData, весьма компетентно излагаемые.

Константин ЛисянскийОраклоиды - это такие религиозно преданные люди, которые, как правило, воспринимают любые другие технологии в штыки.Гыыыы. А я физик в душЕ ;-). Мне по жизни все интересно.

Всего
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32942587
Pi Oracle уже великолепно заточена под OLTP приложения, а новые возможности больше направлены на интеграционные и аналитические аспекты использования. Другими словами, Oracle сегодня являет собой пример универсальной СУБД, которая сильна и рынке OLTP, и на рынке BI. В частности, я рассматриваю Oracle как прямой конкурент Teradata на ее, Teradatе, рынке но с одной главной особенностью - возможностью совмещения аналитического и оперативного контуров управления компанией в одной базе.

Как говорил старик Мюллер - "что это Вас на эпитеты потянуло?"

Если рассеять маркетинговый дым, то останется две большие проблемы:
1) В компаниях с относительно длинной IT историей крайне редко встречается одна всеобемлющая OLTP система, из которой можно получить все необходимые данные для DW или даже DSS. Как правило исходных OLTP систем несколько и далеко не обязательно все на Oracle. В такой ситуации DSS поверх OLTP даже теоритически не позволяет получить всей необходимой информации.
2) С технической точки зрения совместить OLTP и DSS на базе Oracle сложно. Для Oracle DSS и DW - это start schema, со всеми вытекающми последствиями. На этом настаивает и официальная документация и литература. Можно поверить Кимбалу, который утверждает, что и на start schema можно легко строить OLTP системы, но верится слабо.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32943262
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если сравнивать, (хотя это оффтоп)
добавлю c точки зрения практики и не очень большого бизнеса.

Не все могут себе позволить, сильно разделить OLTP и DWH.

(пока:)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944017
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Прохоров

1) В компаниях с относительно длинной IT историей крайне редко встречается одна всеобемлющая OLTP система, из которой можно получить все необходимые данные для DW или даже DSS. Как правило исходных OLTP систем несколько и далеко не обязательно все на Oracle. В такой ситуации DSS поверх OLTP даже теоритически не позволяет получить всей необходимой информации.
2) С технической точки зрения совместить OLTP и DSS на базе Oracle сложно. Для Oracle DSS и DW - это start schema, со всеми вытекающми последствиями. На этом настаивает и официальная документация и литература. Можно поверить Кимбалу, который утверждает, что и на start schema можно легко строить OLTP системы, но верится слабо.

2. а. start schema - имелась в виду star schema? Так вот, отвечаю, сегодня для Oracle DW - это Oracle9i Data Warehousing Guide Release 2 (9.2)
What is a Data Warehouse?
A data warehouse is a relational database that is designed for query and analysis rather than for transaction processing.
А star ли это, snowflake, 3NF, materialized view - это детали реализации.
b. Под базой Oracle я понимаю не схему (SCOTT, к примеру), а именно базу (например, ORCL). А Вы? Мне кажется, что Вы как раз подразумевали именно первое - схему.

1. аггрегаты поверх работающей OLTP - это лишь часть общей DSS . К примеру, данные за позапрошлый год я могу вообще хранить в текстовом файле, но это не мешает мне аггрегировать данные оттуда в materialized view. Вы согласны?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944056
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АазНо мне не нравится, что Вы провоцируете меня на сравнение двух СУБД (для этого есть отдельный форум) и неявную рекламу Oracle.

Dear Andrij,
Вы в этой ветке - а ее сегодня очень внимательно читают в Украине, - высказали мысль, что Oracle заточен под OLTP .
Я утверждаю именно здесь, в ветке про Терадату, что Oracle - универсальная СУБД , и очень неплохо выглядит также в решениях с DW и DSS. И просил Вас это признать именно здесь, в этой ветке - Вы, в отличие от меня, сертифицированный специалист и к Вашему мнению отнесутся соответственно.

А само сравнение Teradata & Oracle здесь неуместно, Вы правы.

yours faithfully,
Pi
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944304
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
То есть, Вы хотите сказать, что на базе данных OLTP, хранящей всю историю работы предприятия вы готовы посадить с десяток другой DSS-пользователей, которые будут шерстить всю базу с ног до головы тяжёлыми запросами с кучей джойнов и агрегаций, а в это время тысяча-другая OLTP-транзакций будут летать и не замечать, что кто-то тут пыжится в усилиях решить стратегические задачи.
А если какой-то пользователь сделает нечаянно cross join пары таблиц по десять миллионов записей, то это также никак не скажется на производительности транзакций.
Если это так, то снимаю шляпу перед Oracle и перед таким передовым подходом к построению хранилищ данных.


Уважаемый Константин!
0. Не отождествляйте моих слов с политикой компании Oracle. Я высказываю сугубо личное мнение.

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

1. Говоря об универсальности Oracle, я вовсе не имел в виду что компания Oracle предлагает всегда шерстить суммарные запросы поверх транзакционных. Но возможность такую дает. Приведу пример: я могу сделать materialized view, которые хранит аггрегированные данные для какого-то отчета (да, отчет - не OLAP, но не забывайте, что DW тестируются как по тестам TCP-H, так и TCP-R), которое будет обновляться [после каждой транзакции|по моей команде]. Так вот, в определенном релизе Oracle (имеется в виду Oracle Enterprise with Data Warehouse option) при попытке получить данные из исходной таблицы оптимизатор может подставить результаты из materialized view. Понятно, к чему это приведет - взгляните на результаты тестов TCP-R . Кстати, они именно из этой features Oracle и появились.

2. В проектах, в которых мне приходилось участвовать, аналитическое хранилище ставится на самом верху - на уровне холдинга. Практически во всех случаях хранилище строится средствами той СУБД , которая стоит и внизу. Основная причина - это персонал заказчика, точнее, его знания. Вы спросите, а причем тут универсальность Oracle? А при том, что проект хранилища на MS SQL - это одно, а проекты хранилищ на Oracle выглядят совсем по другому, во многом очень близко к тому, что Вы рассказываете про Teradata - комбинированное секционирование (т.е., с хэшированием), возможности MPP-архитектуры (shared-nothing), и многое другое. Вообще, выскажу утверждение, что начиная с версии 7.3, с которой я начал работать с Oracle, именно усовершенствований для DSS сделано заметно больше, чем в сфере OLTP.

3. Еще один пример - несколько киевских торговых сетей, работающих на СПРУТ, поторопились перейти на Oracle 9i по одной единственной причине - возможность аналитических запросов к standby database. Понятно, что standby можно держать только в той же СУБД, что и OLTP, но теперь резервный сервер лишь чуть усилили - и вуаля!

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

Truly yours,
Pi
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944338
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pi Андрей Прохоров

1) В компаниях с относительно длинной IT историей крайне редко встречается одна всеобемлющая OLTP система, из которой можно получить все необходимые данные для DW или даже DSS. Как правило исходных OLTP систем несколько и далеко не обязательно все на Oracle. В такой ситуации DSS поверх OLTP даже теоритически не позволяет получить всей необходимой информации.
2) С технической точки зрения совместить OLTP и DSS на базе Oracle сложно. Для Oracle DSS и DW - это start schema, со всеми вытекающми последствиями. На этом настаивает и официальная документация и литература. Можно поверить Кимбалу, который утверждает, что и на start schema можно легко строить OLTP системы, но верится слабо.

2. а. start schema - имелась в виду star schema? Так вот, отвечаю, сегодня для Oracle DW - это Oracle9i Data Warehousing Guide Release 2 (9.2)
What is a Data Warehouse?
A data warehouse is a relational database that is designed for query and analysis rather than for transaction processing.
А star ли это, snowflake, 3NF, materialized view - это детали реализации.
b. Под базой Oracle я понимаю не схему (SCOTT, к примеру), а именно базу (например, ORCL). А Вы? Мне кажется, что Вы как раз подразумевали именно первое - схему.

1. аггрегаты поверх работающей OLTP - это лишь часть общей DSS . К примеру, данные за позапрошлый год я могу вообще хранить в текстовом файле, но это не мешает мне аггрегировать данные оттуда в materialized view. Вы согласны?

Пожалуйста покажи план запроса где у тебя при выборке с having ничего на диске не сортируеться. Очень интресно посмотреть.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944619
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
1. Говоря об универсальности Oracle, я вовсе не имел в виду что компания Oracle предлагает всегда шерстить суммарные запросы поверх транзакционных. Но возможность такую дает. Приведу пример: я могу сделать materialized view, которые хранит аггрегированные данные для какого-то отчета (да, отчет - не OLAP, но не забывайте, что DW тестируются как по тестам TCP-H, так и TCP-R), которое будет обновляться [после каждой транзакции|по моей команде]. Так вот, в определенном релизе Oracle (имеется в виду Oracle Enterprise with Data Warehouse option) при попытке получить данные из исходной таблицы оптимизатор может подставить результаты из materialized view. Понятно, к чему это приведет - взгляните на результаты тестов TCP-R. Кстати, они именно из этой features Oracle и появились.

И в Oracle это за отдельные деньги??? Дороговато получается.....
В DB2 и Teradata это в стандарный комплект входит. И потом постоить правильную Materialized view это нужно быть очень крутым админом.
И потом как ваша MW будет влиять на OLTP мы же mixed worload говорим???

P.S. DB2 на TPC-H на схожем железе дает похожий результат. Tак что любой результат можно трактовать с разных точек зрения. TPC-H сложнее ибо на нем нельзя использровать MQT(MW)
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944737
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAPMASTERПожалуйста покажи план запроса где у тебя при выборке с having ничего на диске не сортируеться. Очень интресно посмотреть.

Смотри здесь Убедил?
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944753
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov И в Oracle это за отдельные деньги???

Мы же не обсуждаем здесь цены . По лицензированию я Вам даже не возмусь отвечать. Я говорю лишь о том, что возможность есть.
А уж разводить ли у себя в конторе зоопарк или не разводить, и сколько на него, зоопарк, потратить денег - это уже Ваше дело. Или Вашего начальства.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32944870
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pi nkulikov И в Oracle это за отдельные деньги???

Мы же не обсуждаем здесь цены . По лицензированию я Вам даже не возмусь отвечать. Я говорю лишь о том, что возможность есть.
А уж разводить ли у себя в конторе зоопарк или не разводить, и сколько на него, зоопарк, потратить денег - это уже Ваше дело. Или Вашего начальства.
Значит вкючил логирование на таблицах, понятно что нигего не читет, у меня то логирование не работает.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32945210
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему тему закрыли? Я собирался ещё рассказать много интересного.
Правда, действительно, базар немного гнилой пошёл.
Когда же у нас, наконец, цивилизация здесь появится? :(

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32945339
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийА почему тему закрыли? Я собирался ещё рассказать много интересного.
Правда, действительно, базар немного гнилой пошёл.
Когда же у нас, наконец, цивилизация здесь появится? :(

С уважением,
Константин Лисянский
http://lissianski.narod.ru

Константин, Вы сами ответили на свой вопрос.
Естественно из-за гнилости базара и отсутствия культуры дискуссии.
Мне нравилось читать эту тему, но постепенно это чувство прошло, естественно не из-за Ваших комметариев и рассказов.
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32945511
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, отфильтруем базар и возобновим?
Тем более, народу интересно, вроде бы, а у меня есть что ещё рассказать.
Надо было, наверное, модерировать. Тогда бы и до закрытия не дошло.
Но я как-то не хотел. Могли бы подумать, что я действую с пристрастием.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Что за зверь такой Teradata
    #32945616
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийА может, отфильтруем базар и возобновим?
Тем более, народу интересно, вроде бы, а у меня есть что ещё рассказать.
Надо было, наверное, модерировать. Тогда бы и до закрытия не дошло.
Но я как-то не хотел. Могли бы подумать, что я действую с пристрастием.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

Я не против.
Я против превращения нашего "OLAP и DWH" в "Сравнение СУБД" а тем более в "Просто Треп".
...
Рейтинг: 0 / 0
153 сообщений из 153, показаны все 7 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Что за зверь такой Teradata
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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