53
Что делает Sybase IQ такой уникальной ? Андрей Хромов ведущий технический консультант, Sybase CIS

Что делает Sybase IQ такой уникальной ?

  • Upload
    marcos

  • View
    106

  • Download
    11

Embed Size (px)

DESCRIPTION

Что делает Sybase IQ такой уникальной ?. Андрей Хромов ведущий технический консультант , Sybase CIS. Что такое Sybase IQ. - PowerPoint PPT Presentation

Citation preview

Page 1: Что делает  Sybase IQ  такой уникальной  ?

Что делает Sybase IQ такой уникальной ?

Андрей Хромовведущий технический консультант, Sybase CIS

Page 2: Что делает  Sybase IQ  такой уникальной  ?

Что такое Sybase IQ

• Sybase IQ – это специализированная аналитическая СУБД, оптимизированная по производительности для задач бизнес-аналитики, отчетности, хранилищ данных, используя для этого обычное H/W оборудование

• Исключительная скорость выполнения запросов

• Высокая скорость загрузки данных в режиме 24х7

• Компрессия данных, экономия затрат на диски

• Простота настройки и администрирования

• Практически линейная масштабируемость

Page 3: Что делает  Sybase IQ  такой уникальной  ?

Почему Sybase IQ другая?

• В отличии от других крупных игроков рынка СУБД, Sybase с самого начала выбрал подход, при котором для задач аналитики и ХД была разработана отдельная, специальная СУБД

• Это позволило при проектировании IQ пойти на ряд решений-компромиссов, которые ни одна из OLTP систем не могла бы себе позволить

Page 4: Что делает  Sybase IQ  такой уникальной  ?

Почему Sybase IQ другая?

• С самого первого дня философией IQ было:

“Главное – это скорость запросов”

• С другой стороны, философия OLTP это:

“Главное – это скорость транзакций”

Page 5: Что делает  Sybase IQ  такой уникальной  ?

Почему Sybase IQ другая?

• Первостепенной задачей при разработке было максимизировать производительность работы большого количества пользователей, выполняющих ad-hoc запросы по большим массивам данных

• Базы данных, в которых сделан упор на оптимизацию скорости выполнения запросов, иногда называют “Оптимизированные на чтение”

Page 6: Что делает  Sybase IQ  такой уникальной  ?

Почему Sybase IQ другая?

• Приоритеты, стоявшие при создании IQ:

• Производительность запросовв многопользовательской среде - очень высокий

• Скорость массовой загрузки данных - высокий

• Скорость одиночных Insert - низкий

• Скорость одиночных Update - низкий

Page 7: Что делает  Sybase IQ  такой уникальной  ?

Почему Sybase IQ другая?

• Тенденция эволюции компьютерных компонент за последние 20 лет:

• Объем жестких дисков вырос - в 10,000 раз

• Скорость процессоров возросла - в 1,000 раз

• Размер ОЗУ вырос - в 500 раз

• Показатель дисков «Скорость передачи данных» (throughput) вырос - в 50 раз

• Показатель дисков «Время поиска» (seek times) снизился - в 5 раз

Page 8: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #1:

• Большинству аналитических запросов при выборке данных с сервера СУБД требуется лишь небольшой процент колонок из числа всех колонок таблицы

Page 9: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Архитектурное решение IQ #1:

• Хранить табличные данные по колонкам, а не по строкам, и таким образом дать возможность читать лишь те страницы, которые содержат только колонки, требуемые в запросе

• Базы данных с такой архитектурой обычно называют:• СУБД с поколоночной организацией• или Колонко-ориентированные СУБД

Page 10: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

• Чтобы проиллюстрировать эффект различных архитектурных решений, принятых в условиях выбора той или иной альтернативы, мы будем рассматривать их на примере некой «обычной» БД• Ее характеристики достаточно типичны для большей части

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

• Поскольку это всего лишь «пример», ваши собственные реальные результаты могут несколько отличаться

Page 11: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

• Наша «обычная» база :

• Самая большая таблица: “T”• Количество строк: 10 млрд.• Количество колонок: 50, “C1”, “C2”, … “C50”• Средняя ширина колонки: 8 байт• Размер строки: 400 байт• Общий размер таблицы: 3.6 Терабайт

Page 12: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Таблица “T” в в колонко-ориентированной базе

Page 1

. . .

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

Page 2

. . .

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

C1 C2 C3 . . . C50

Page 1 of C1

. . .

C1

C1

C1

C1

Page 1 of C2

. . .

C2

C2

C2

C2

Page 2 of C1

. . .

C1

C1

C1

C1

Page 2 of C2

. . .

C2

C2

C2

C2

Page 1 of C3

. . .

C3

C3

C3

C3

Page 2 of C3

. . .

C3

C3

C3

C3

Таблица “T” в обычной построчной базе

Page 13: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Чего мы в результате достигли:

• Запрос №1: Агрегация по всем строкам в таблице:• Общее количество строк: 10 млрд• Количество колонок: 10 из 50• Средняя ширина колонки: 8 байт• Полезный объем данных в строке: 80 байт из 400

• Объем данных, который нужно прочитать:• Построчная структура: 3.6 Тб• Поколоночная структура : 0.7 Тб

Page 14: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Еще пример выигрыша:

• UPDATE двух колонок во всех строках таблицы “T”:• Общее количество строк : 10 млрд• Количество колонок : 2 из 50• Средняя ширина колонки : 8 байт• Полезный объем данных в строке : 16 байт из 400

• Объем данных, который нужно прочитать/записать: • Построчная структура : 3.6 Тб• Поколоночная структура : 0.1 Тб

Page 15: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Чем пожертвовали в замен:

• Одиночный INSERT в большую таблицу “T”:• Количество колонок : 50

• Количество страниц, которые нужно прочитать/записать:• Построчная структура : 1 страница• Поколоночная структура : 50 страниц

Вот почему OLTP базы данных не могут себе позволить использовать поколоночная структуру!

Page 16: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Чем пожертвовали в замен:

• Запрос №2: “SELECT * FROM T WHERE PKEY = 107”• Количество строк в результате : 1 из 10 млрд• Количество колонок : 50 из всех 50

• Объем данных, который нужно прочесть:• Построчная структура : 1 страница• Поколоночная структура : 50 страниц

Этот эффект может быть уменьшен с помощью хорошо настроенного “prefetch read”

Page 17: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 1

Чем НЕ СТАЛИ жертвовать:

• INSERT или LOAD большого количества строк в T:• Количество колонок : 50• Общее количество строк для вставки : 20,000• Общий объем вставляемых данных: 7.6 Mb

• Объем данных, который нужно записать:• Построчная структура : 7.6 Mb• Поколоночная структура : 7.6 Mb

Page 18: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #2-A:

• Стоимость «мегагерцев» процессоров снижается гораздо быстрее чем стоимость операций ввода/вывода.

Наблюдение #2-B:

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

Page 19: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 2

Архитектурное решение IQ #2:

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

Page 20: Что делает  Sybase IQ  такой уникальной  ?

Как выглядит сжатие IQ?

• Компрессия в IQ имеет двойственную природу

• Каждая страница, когда пишется на диск, сжимается

• Для сжатия IQ использует усовершенствованный алгоритм ассиметричного LZH

• Некоторые индексы также обеспечивают «сжатие» за счет своей структуры

• Индексы на основе битовых карт (LF, ассиметричный-HG, CMP, все Date, HNG) обладают «самокомпрессией»

• “Токенизированные” индексы (FP(1), FP(2), FP(3)) обладают очень высоким уровнем «самокомпрессии»

• Данные могут сжиматься до 95%

Page 21: Что делает  Sybase IQ  такой уникальной  ?

Как происходит запись на диск

Одна страница в памяти IQ=128 Кб или 16 блоков

Перед записью на дискстраница сжимается

Компрессор

после сжатия:занято 4 блока

Запись на диск

1 участок на диске размером 4 блока или 32Кб

Если в IQ активировано шифрование,тогда страница потом еще и шифруется

Шифратор(?)

до сжатия: занято 10 блоков

Page 22: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 2

• Чтобы показать эффект от сжатия, предположим следующее:• “T” в построчной структуре можно ужать на 25%.• “T” в поколоночной структуре можно ужать на 75%.

• Если данные в таблице с течением времени будут меняться, для компрессора IQ это не проблема

• Построчная СУБД далеко не всегда умеет легко переносить такие изменения

• Эти уровни сжатия не являются чем-то необычным, но каждый раз цифры могут отличаться.

Page 23: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 2

• Наша «обычная» БД (со сжатием):

• Самая большая таблица: “T”• Количество строк: 10 млрд.• Данных в строке: 400 байт• Общий объем исходных данных

(в файле txt) : 3.6 Тб

• Объем данных в базе данных:• Построчная структура: 2.7 Тб, сжатые• Поколоночная структура: 0.9 Тб, сжатые

Page 24: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 2

Чего в результате достигли (c учетом сжатия):

• Запрос №1: Агрегация по всем строкам в таблице:• Общее количество строк: 10 млрд• Количество колонок: 10 из 50• Средняя ширина колонки: 8 байт• Полезный объем данных в строке: 80 байт из 400

• Объем данных, который нужно прочитать:• Построчная структура: 2.7 Тб, сжатых• Поколоночная структура : 0.2 Тб, сжатых

Page 25: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #3:

• Показатель «скорость передачи данных» дисков улучшается заметно быстрее, чем показатель дисков «среднее время поиска».

Page 26: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 3

Архитектурное решение IQ #3:

• Уменьшить количество необходимых «поисков» путем увеличения размера страницы БД (например, 128K вместо 4K), что позволяет лучше использовать возможности современных дисковых подсистем.

• Больший размер страницы позволяет также несколько улучшить средний коэффициент сжатия.

Page 27: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 3

Чего в результате достигли:

• Запрос №1: Агрегация по всем строкам в таблице:• Общее количество строк: 10 млрд• Количество колонок: 10 из 50• Средняя ширина колонки: 8 байт• Полезный объем данных в строке: 80 байт из 400

• Общее число требуемых «поисков» на диске:• Построчная структура: 966 миллионов• Поколоночная структура : 6 миллионов

Page 28: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #4-A:

• Многие аналитические запросы в содержат в предложении WHERE несколько условий выборки по одной и той же таблице.

Наблюдение #4-B:

• Обычно, OLTP СУБД могут использовать в одном запросе только один индекс для каждой таблицы

Page 29: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Архитектурное решение IQ #4:

• Присвоить каждой строке уникальный номер (rowid), который служил бы уникальным идентификатором этой строки

• Представить набор строк, которые должны попасть в выборку, в виде битового массива – bitmap (т.е. логический массив битов, в котором если N-ый бит равен “1”, значит строка с rowid=N, является частью выборки)

• Создать индексы, в которых каждое значение данных ассоциируется с уникальным битовым массивом (bitmap), представляющему набор строк, содержащих это значение

Page 30: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Index on C7

. . .

Page 1 of C7

. . .

MI

NY

FL

CA

NY

FL

NY

FL

NY

NY

...

0

1

0

0

1

0

1

0

1

FL

...

0

0

1

0

0

1

0

1

0

CA

...

0

0

0

1

0

0

0

0

0

Индекс на основе bitmap

• Каждое уникальное значение колонки ассоциировано со своим битовым массивом (см.по вертикали)

Page 31: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Для идентификации строк выборки по нескольким условиям по разным колонкам одной таблицы используются несколько bitmap-индексов:

C7 = “NY” AND C9 = “DIV”

Result

...

Index on C9

. . . . . .

DIV

...

0

1

0

1

0

1

1

0

1

Index on C7

. . . . . .

NY

...

0

1

0

0

1

0

1

0

1

0

1

0

0

0

0

1

0

1

Page 32: Что делает  Sybase IQ  такой уникальной  ?

Типы индексов в IQ

• Индексы на основе bitmap-ов• LF• Ассиметричный HG• DATE, TIME, DTTM• CMP• HNG

• На основе таблиц соответствий («токенизация»)• FP(1), FP(2), FT(3)

• Индексы, имеющие группы• HG, UHG, UMCHG (Foreign Key), MCHG (Primary Key)• WRD

Page 33: Что делает  Sybase IQ  такой уникальной  ?

Слишком сложно?

• Индексы для IQ – это «его все»• Но, индексы - это 90% требуемого для IQ тюнинга • И вы строите индексы всего лишь один раз …• И если вы ошиблись с выбором, INDEX_ADVISOR

подскажет вам, где нужен дополнительный индекс

• Nomura (бывший Lehman’s Brothers) утверждает, что его 20+ серверов IQ требуют от DBA работы по обслуживанию менее, чем полдня в неделю

Page 34: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Эффект от использования RowId и bitmap-ов:

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

• Поощряется создание большого количества индексов, причем для одной колонки можно создавать несколько индексов разных типов.

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

Page 35: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Еще эффект от использования RowId и bitmap-ов:

• Номера строк таблицы, удовлетворяющих условию запроса, идентифицируются еще до начала считывания нужных колонок, тем самым экономя на затратах чтения.

• Методы доступа, базирующиеся на индексах, позволяют повысить производительность операций Join, группировки, сортировки.

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

• Поддержание статистики не требует никаких затрат

Page 36: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Чего добились:

• Запрос №2: Агрегация выборочных строк большой таблицы Т :• Общее количество строк: 10 млрд• Условия выборки: 2 условия типа “C=VAL”

селективность каждого - 20% данных

• Ожидаемое количество строк в выборке:• Построчная: 2 млрд. (1 индекс использован).• Поколоночная: 0.4 млрд. (2 индекса использовано)

Page 37: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 4

Чем пожертвовали:

• Наличие большого числа индексов на таблице ускоряет запросы, но замедляет команды INSERT и LOAD.

• Цена вставки одной строки становится выше.

Page 38: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #5:

• Когда “Главное – это запросы”, запрос никогда не должен ждать, пока страница модифицируется.

Page 39: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 5

Архитектурное решение IQ #5:

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

• Эта техника называется «Версионность на основе моментальных снимков страниц» (Page-Level Snapshot Versioning) или «Копирование страницы при записи» (Page-Copy-On-Write).

Page 40: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 5

Эффект от версионности на основе снимков:

• ID транзакции уникально идентифицирует соответствующую версию каждой таблицы, а в свою очередь версия таблицы идентифицирует соответствующие страницы данных для данной версии таблицы

• Две версии одной и той же таблицы используют одни и те же немодифицированные страницы в любой транзакции между этими двумя версиями

• Запросы всегда работают на уровне изоляции 3• Это немного увеличивает расход дискового места, так как

нередко требуется наличие нескольких версий одних и тех же страниц

Page 41: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #6:

• Предполагается, что операции записи, такие как LOAD и INSERT, происходят относительно нечасто, с типичным интервалом в десятки секунд или еще реже.

Page 42: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 6

Архитектурное решение IQ #6:

• Снизить затраты, связанные с блокировками, используя для записи блокировки на уровне таблицы.

• Вместе со версиями на основе снимков (решение #5), это позволяет сохранить число версий таблицы на небольшом (управляемом) уровне.

Page 43: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #7:

• Негативные эффект от выбора плохого плана запроса увеличивается во много раз, если таблица имеет размер в 10-и и 100-и миллиардов строк.

Page 44: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 7

Архитектурное решение IQ #7-A:

• Все простые условия выборки (типа SARG) оцениваются еще до того, когда принимаются основные решения оптимизатора, таким образом предоставляя оптимизатору более точную информацию для этих решений.

Архитектурное решение IQ #7-B:

• Насколько возможно, сделать выполнение запроса способным адаптироваться к ситуации, когда первоначальный план оказался не идеальным из-за неточной оценочной информации

Page 45: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Наблюдение #8:

• Масштабируемость в условиях смешанной нагрузки требует использования преимуществ как технологии SMP так и кластерной технологии.

Page 46: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 8

Архитектурное решение IQ #8:

• Реализация ассиметричного кластера с общим доступом к дискам, названного IQ Multiplex

• Внутри кластера возможно лишь ограниченное количество узлов “Писателей” (до IQ 15 – лишь 1 ), что позволяет избежать необходимости использовать менеджер управления распределенными транзакциями и минимизировать синхронизационный трафик в кластере.

• Пользователи на узлах «Читателях» кластера видят наиболее последние зафиксированные (commited) версии таблиц, как если бы они работали в односерверной (безкластерной) конфигурации

Page 47: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ? - 8

Эффект от Multiplex:

• Возможность подключить к одному набору дисков множество серверов IQ (используя, например, SAN).

• Единственное ограничение – число портов к дискам и суммарная пропускная способность дисковой системы.

• Линейная масштабируемость в условиях роста числа пользователей достигается простым добавлением в кластер Multiplex нового узла- «Читателя».

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

Page 48: Что делает  Sybase IQ  такой уникальной  ?

В чем отличие Sybase IQ?

Совокупный итог всех этих «отличий» IQ:

• Непревзойденная производительность запросов в многопользовательской среде

• Непревзойденная эффективность использования дисков

• Требуются менее дорогие дисковые подсистемы

• Способность легко масштабироваться в случае будущего роста нагрузок

Page 49: Что делает  Sybase IQ  такой уникальной  ?

Итак, он другой …

• Но, в нем используется стандартный ANSI 92 SQL

• Все команды те же самые (лишь небольшое отличие в синтаксисе)

• Используются все стандартные интерфейсы доступа• Open Client (Sybase)• ODBC• JDBC• OLE-DB

• Все стандартные ETL инструменты поддерживают IQ

• Все стандартные Front-End средства поддерживают IQ

Page 50: Что делает  Sybase IQ  такой уникальной  ?

Итак, он другой …

• Чтобы получить первый эффект от использования IQ, вам потребуется• Курс «IQ Administration» 4 дня• Курс «IQ Developers» 3 дня

• Чтобы получить тоже самое от ASE или Oracle• ASE – наверное 7 курсов, примерно 30 дней• Oracle – наверное 10 курсов, примерно 55 дней

• Чтобы стать экспертом – добавьте для IQ еще 3 дня• Чтобы стать экспертом в «других» СУБД – вам может

потребоваться целая жизнь…

Page 51: Что делает  Sybase IQ  такой уникальной  ?

1. Если ваш OLTP сервер удовлетворяет Ваши требования к производительность запросов и отчетов, и не требует от вас слишком больших расходов, тогда продолжайте его использовать.

2. Если Вы не удовлетворены текущей производительностью запросов, тогда рассмотрите возможность переноса ваших аналитических запросов на Sybase IQ.

Рекомендации по выбору - 1

Page 52: Что делает  Sybase IQ  такой уникальной  ?

3. Если обслуживание растущего объема данных в OLTP БД требует от вас слишком больших затрат или мешает работе оперативных(транзакционных) систем, рассмотрите возможность переноса ваших исторических данных на Sybase IQ.

4. Чем больше ваши объемы данных, чем сложнее запросы, чем больше количество разнотипных запросов, тем больше преимуществ Вы получите от перехода на Sybase IQ.

Рекомендации по выбору - 2

Page 53: Что делает  Sybase IQ  такой уникальной  ?

Вопросы ?