Предисловие: По работе мне пришлось изучать устройство базы данных Teradata, и оказалось, что в интернете почти нет информации, особенно на русском языке. Поэтому я решила собрать в кучу всю доступную информацию.
Стремительное увеличение объемов носителей информации и удешевление стоимости хранения данных привело к появлению методов, способных обеспечить более быстрый доступ к необходимым данным – индексы, хранение данных в отсортированном виде и т.п. Эти методы вполне успешно справляются со своей задачей, однако возрастающая конкуренция в мире заставляет искать новые, более быстрые, способы доступа к информации. «Кто владеет информацией, тот владеет миром». Основной интерес вызывают базы данных с традиционной реляционной моделью данных, отвечающие требованиям ACID (Atomicity, Consistency, Isolation, Durability — атомарность, согласованность, изолированность, надежность) и предназначенные для аналитики Больших Данных (Big Data).
Teradata – это параллельная реляционная СУБД, которая работает на операционных системах:
- MP-RAS UNIX
- Microsoft Windows 2000/2003 Server
- SuSE Linux
Разнообразие поддерживаемых ОС — одна из причин, почему Teradata имеет открытую архитектуру.
СУБД Teradata – это большой сервер баз данных, который взаимодействует с множеством клиентов посредством протокола TCP/IP или через соединение с каналом универсальной вычислительной машины (mainframe) IBM.
Компании выбирают СУБД Teradata по множеству причин:
- Поддержка больших объемов информации – более 400 Тб в одной области
- Поддержка модульного наращивания от маленьких баз данных (10Гб) до больших (100+ Тб)
- Обеспечение параллельно-осведомленным оптимизатором, который исключает выполнение сложных настроек для получения запроса
- Автоматическое распределение данных исключает сложные схемы индексации и трудоемкие реорганизации
- База данных спроектирована и построена на параллельной архитектуре с самого начала
- Поддержка нерегламентированных запросов, использующих ANSI-стандарт SQL и включающих в себя информацию управления базами данных SQL (log-файлы), что позволяет представлять запросы других систем управления базами данных в Teradata
- Единая точка управления для администрирования базы данных (Teradata Manager)
Высокую скорость доступа к данным Teradata обеспечивает за счет MPP (Massive Parallel Processing) – массивно-параллельной архитектуры. Ее особенность заключается в том, что память физически разделена. Teradata предлагает серверы Intel, соединённые в частную сеть BYNET для обмена сообщениями. Системы Teradata предлагаются с фирменными дисковыми массивами для хранения баз данных производства либо LSI, либо EMC. Подробнее о конфигурации систем хранения можно почитать в блоге компании.
AMP
Основное понятие в архитектуре Teradata Database — это AMP (Access Module Processor), отдельная нода/узел, содержащая и самостоятельно обрабатывающая свои данные. То есть каждый AMP занят обработкой и хранением лишь своей части базы данных и мало зависит от других AMP-ов. В этом Teradata Database похожа на Hadoop (система для распределённых вычислений). Однако массивно-параллельная архитектура с неверно спроектированной базой данных за счет перегрузки сетевых каналов между AMP-ами может давать даже худшие результаты, чем однопотоковый мощный сервер баз данных, такой, каким изначально создан сервер СУБД Oracle. Для балансировки нагрузки между AMP-ами и других административных задач используются средства Teradata Manager, DBSConsole и Teradata Administrator. В частности эти средства позволяют задавать фильтры и приоритеты для выполняющихся на AMP-ах, либо сервере в целом, пользовательских процессов.
Более подробно архитектура Teradata описана в блоге компании.
В Teradata есть оптимизатор запросов, работа которого основана на статистической информации о данных.
Начиная с 14-й версии в Teradata есть возможность хранить данные как в виде строк, так и в виде столбцов (горизонтальное и вертикальное партиционирование). Гибридное хранение данных также описано в блоге компании.
Data Mart
Традиционно обработка данных делилась на две категории: OLTP (On-line Transaction Processing) и DSS (Decision Support Systems). Но для аналитических баз данных с большим объемом информации обработка данных делится на OLAP (On-line Analytical Processing) и DM (Data Mining).
Тип | Описание | Пример | Число доступных строк | Время ответа |
---|---|---|---|---|
OLTP | Работа с небольшими по размерам транзакциями, но идущими большим потоком, при этом клиенту требуется от системы минимальное время отклика | Обновить текущий счет, чтобы отобразить депозит | Мало | Секунды |
DSS | Система поддержки принятия решений для полного и объективного анализа предметной деятельности | Каковы были ежемесячные продажи обуви у розничного продавца Х? | Много (миллионы) | Секунды или минуты |
OLAP | Технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу | Показать 10 наиболее продаваемых товаров среди всех магазинов в 2005 году | Много детализированных строк или среднее число сводных строк | Секунды или минуты |
Data Mining | Интеллектуальный анализ данных | Какие клиенты, скорее всего, ответят на акцию? | Среднее число длинных детализированных строк | Фаза 1: минуты или часы Фаза 2: секунды или доли секунд |
Таким образом, Big Data удобнее обрабатывать с помощью т.н. витрин данных (Data Mart) – среза хранилища данных, представляющего собой массив тематической, узконаправленной информации, ориентированной, например, на пользователей одной рабочей группы.
Концепция имеет ряд достоинств:
- Аналитики видят и работают только с теми данными, которые им реально нужны
- Целевая БД максимально приближена к конечному пользователю
- Витрины данных обычно содержат тематические подмножества заранее агрегированных данных, их проще проектировать и настраивать
- Для реализации витрин данных не требуется высокомощная вычислительная техника
Однако в концепции витрин не предлагается способов, как обеспечить целостность и непротиворечивость хранимых данных.
Архитектура базы данных Teradata устраняет необходимость загрузки и преобразования витрин данных, что делает доступным одни и те же хранилища данных для всех потребностей пользователей.
Источники:
[1] Блог компании Teradata: Teradata – СУБД, параллельная от рождения
[2] Блог компании Teradata: Скорость или объем? Автоматизация управления системами хранения с разнородными характеристиками
[3] Блог компании Teradata: Статистика в СУБД Teradata
[4] Блог компании Teradata: Поколоночное и гибридное хранение записей в СУБД Teradata
[5] Реляционные базы данных обречены?
[6] Просто и доступно о аналитических БД
[7] Скорость доступа к данным: битва за будущее
[8] Wikipedia
[9] Документация на английском языке в бумажном виде
Теперь нужно разобраться с понятием Primary Index: каким образом проставляются эти индексы и как они влияют на быстродействие.
Автор: alfiruna