Посетив на днях семинар по HANA, хочу поделиться своими выводами.
Сила ХАНЫ заключается в следующих вещах:
- хранение таблиц в формате
столбцевой компрессии (коэффициент сжатия SAP считает около
6)
- хранение данных в
оперативной памяти (предполагается, что в сочетании со сжатием все данные
должны поместиться в оперативную память. Пропорция для расчета: 64Г оперативной
памяти на каждые 300Г исходных пользовательских данных. при чтении одной строки из таблицы вся таблица/партиция читается в оперативную память)
- кроме того, SAP внедрили в ХАНУ обычный row-store движок (надо полагать, это кусочек от ранее купленного Sybase), который позволяет работать
с таблицами в обычном строчном row-формате.
Этот формат хранения предназначается для OLTP-приложений.
В результате, получилась забавная гибридная СУБД, способная работать
как с DWH-приложениями так и OLTP. Справедливости ради надо сказать, что все современные OLTP-движки – DB2, MSSQL, Sybase, Postgress – значительно
уступают OLTP-движку от
Оракла, т.е. для тяжелого OLTP они просто не подходят по причине роста блокировок.
Поэтому Оракл немедленно взялся за Database-In-Memory Option, которая по сути есть НСС не привязанное к системе
хранения, иными словами, Оракл повторно, с 5-летним опозданием, анонсирует свою НСС-опцию:
Oracle
Database In-Memory leverages a new in-memory column store format
Oracle
Database In-Memory option accelerates the performance of analytic queries by
storing data in a highly optimized columnar in-memory format.
A unique
"dual-format" approach ensures outstanding performance and complete
data consistency for all workloads.
Oracle
Database In-Memory automatically maintains data in both the existing Oracle row
format for OLTP operations, and a new purely in-memory column format optimized
for analytical processing. Both formats are simultaneously active and
transactionally consistent.
Для тех кто не в курсе: Оракл имеет HCC с 2008
года, когда вышла первая Экзадата. Но Оракл разрешил HCC только для
своих собственных систем хранения: Exadata Storage Cell, Pillar Axiom,
ZFS Storage Appliance. Вот если бы Оракл изначально объявил этот
функционал своей опцией, доступной на всех платформах, то мы бы сейчас
видели бурный всплеск продаж СУБД.
Столбцевое хранение данных на сегодняшний тень также реализовано в MS SQL, IBM DB2 & Netezza. Таким образом, можно сделать вывод, что современные СУБД все
больше становятся гибридными, т.е.
способными хранить/обрабатывать оба типа данных.
Мне кажется (хотя пока не известны детали), что HCC это больше про хранение данных, а InMemory Option - про обработку в памяти. И что хотя и там и там как бы колонки, реализация будет совсем разная.
ReplyDelete>> Вот если бы Оракл изначально объявил этот функционал своей опцией, доступной на всех платформах...
ReplyDelete+100500, но время ещё не пришло, мы же понимаем, есть ещё Exadata на складах)
а про In-Memory Option согласен с Андреем, судя по анонсам, метод хранения данных не изменится никак, а вот в Shared Pool для кэширования данных кроме стандартного Buffer Cache появится доп.область с оптимизированным поколоночным хранением, про компрессию упоминаний не видел. Так что HCC - отдельно, IMDO - отдельно, по частям - всегда дороже, первый закон рынка :)