|
|
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Не совсем конечно это так формулируется. Sybase это описывает так: Данные в IQ - это индексы. Т.е. отдельная колонка в IQ представляет из себя дефолтный FT (Fast Projection) индекс (он плоский, без дерева, но возможна оптимизация, опишу ниже). Этот индекс и есть данные, его нельзя удалить через drop index, используется alter table drop. Кроме него на колонку можно навесить ещё доплнительные индексы. Таблица представляет собой логически сгруппированные отдельные FP индексы (колонки). Если рассмотреть это с физической точки зрения, то на диске на страницах хранятся не строки, а колонки. Т.е. прочитав одну или несколько связанных страниц с диска сервер всегда будет читать данные только для одной конкретной колонки и другие данные (других ненужных колонок) при этом читаться не будут (в отличие от OLTP серверов). FP индекс (сами данные) мы можем оптимизировать. При создании таблицы можно указать конструкцию для колонки IQ UNIQUE (N). Например create table t1 (id unsigned int not null, "code" char(10) iq unique(100)) Это не уникальность. Это мы говорим серверу сколько distinct значений мы ожидаем в этой колонке (например - это код департамента, всего 100 департаментов). Тогда сервер для этой колонки построит оптимизированный FP индекс в зависимости от числа N. Если N<256, то построится 1-байтовый FP индекс Если 256<=N<65536, то 2-х байтовый. Что это даст? На диске будет построена таблица соответствий из 100 значений для нашего случая (реальное значение - битовая маска в один байт). А дальше сервер будет уже хранить не данные, а уже битовую маску (один байт). Если взять наш утрированный пример и посчитать сколько места у нас сэкономиться например для 100 млн записей в таблице: Плоские данные (char(10) - 10 байт одно значение): 100млн * 10 = 953Мб С оптимизацией (одно значение - один байт): 100млн * 1 = 95Мб То можно заметить, что на одной только маленькой колонке мы можем сэкономить уйму места в базе. Прошу прощения, если что-то осталось непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 12:49 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Я не силён в вопросах иерархии (не IQ, а вообще), поэтому прошу прощения точно ответить на вопрос не могу. Если попытаться ответить, то в IQ можно делать всё, что и в ASE и ASA (построение схем и использование операторов) ну и плюс дополнительные функции аналитики и аггрегации. Список довольно большой. Можно посмотреть на сайте сая (в доке IQ Reference). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 12:57 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
2Guest Спасибо! Правильно ли я понял, что в этом случае неизбежен полный скан колонки (индекса) при любом запросе, если эта колонка участвует в запросе? То есть если в вашем примере есть таблица на 100 миллионов записей то в случае использования нашей колонки мы должны будем должны в любом случае прочитать наш 95мб индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 13:10 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Это мы говорили о хранении данных и об аналоге TABLE SCAN в IQ (когда не созданы дополнительные индексы), т.е. самая худшая ситуация. Естественно есть ещё дополнительные индексы. Например HG,LF,HNG,CMP,WD,DATE,TIME,DTTM, которые строятся по определённым правилам и служат для своих целей и будут использоваться в запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 13:23 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю, что в случае обновления данных все индексы должны перестраиваться и инкрементальный апдейт невозможен? То есть необходимо делать полную перезагрузку данных. И что будет если в нашем примере появится 257 департамент (то есть данные не поместятся в 1 байтную маску) будет ошибка или индекс будет пересоздан автоматом? Как производится загрузка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 13:32 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Конечно полную перезагрузку данных делать не нужно. Можно доливать данные, удалять, изменять данные (update), причём массовый update по одной колонке будет выполняться очень быстро. Мало того IQ поддерживает механизм частичной заливки по колонкам, т.е. мы можем сначала загрузить данные в часть колонок таблицы, а потом догрузить в оставшиеся колонки. В случае работы с оптимизированным FP индексом ситуация очень приятная. Если мы вылазим за диапазон, то сервер автоматом один раз перестраивает этот один (FP) индекс на следующий уровень, т.е. если был 1-байтовый FP и мы вставляем 256 distinct значение, то этот индекс будет перестроен в 2-хбайтовый автоматом (в процессе загрузки или изменения данных), если был 2-х байтовый и мы превысили кол-во в 32к, то перестроится в плоский. Загрузка данных тоже возможна в различных вариантах. Можно из файлов через LOAD TABLE (параметрами можно контролировать формат). Скорость загрузки просто потрясающая. Рекомендует сай использовать этот вариант. Можно через INSERT VALUES (скорость низкая). Можно через INSERT SELECT (в том числе и напрямую с другого сервера). Например так: INSERT INTO tab1 (col1,col2...) location 'my_remote_server.mydb' {select a,bcol ... from ... where ...} Тоже быстрый метод. Можно создать прокси-таблицы из IQ, например на MS,ORA,DB2,ODBC и вставлять данные простым insert ... select ... (причём в этом случае нужны толко двайвера ODBC для коннекта и всё). Хочу ещё привести один пример из доки как демострация функциональности. Таблица, в которой среди всего остального есть 3 колонки: Price, Number, Total_Sum Мы можем влить только Price и Number как первый шаг, а потом выполнить update tab set Total_Sum = Price* Number where "для новых строк или для всех ..." Цифры из практики: День работы банка заливается за 10 минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 13:58 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
2 Guest Спасибо огромное. Очень познавательно. А есть ли среди доков по IQ что то по концепциям, типа введения в понятия IQ и т.п. Соответственно, если есть как этот док называется? Или может быть дадите ссылку на подборку документации по IQ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 14:09 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Дока конечно есть. Не знаю, что Вам лучше подойдёт, поэтому порекомендую просто походить на сайте сая в разделах документации (там найдёте доку для IQ без проблем) и в разделах продуктов (там тоже можно найти презентации, статьи), может это Вам больше подойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 14:15 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
а можно чуть конкретней, чем принципиально он отличается и за счет чего как бы получает такой выйгрыш в скорости. как бы оракл конечно бы тоже расмеялся над таблицей в 500 колонок, создал бы материализед вью, партиции, битмап индексы и получил бы скорость в разы отличающиеся от изначальной таблички ... а за счет чего IQ добивается этого результа ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 00:00 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
млин не заметил второй страницы. Тогда сервер для этой колонки построит оптимизированный FP индекс в зависимости от числа N. т.е. это что-то типа оракловой index organized table ? На диске будет построена таблица соответствий из 100 значений для нашего случая (реальное значение - битовая маска в один байт). а это типа bitmap index ? Да IQ данные хранит по колонкам. Это значит, что данные хранятся вертикально. Например для OLPT базы если взять таблицу из скажем 100 колонок, то запрос вида select col1, col20 from tab_name приведёт к table scan, т.е. поднимутся с диска данные для ВСЕХ 100 колонок. В IQ будут подняты с диска данные только этих двух колонок. ээ ... разве ? имхо точно также если по этим колонкам есть индекс данные возьмутся из 2 индексов, вот если нет индекса то да ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 00:22 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Yo! Тут как бы имеется ввиду, что в IQ в отличие от OLTP TABLE SCAN как бы не возможен, так как на физическом уровне хранения таблиц в обычном понимании нет. Фактически модель хранения данных IQ - это на 90 градусов повернутая модель OLTP. А основной упор самого движка - это максимально снизить число обращений к накопителям, что и достигается засчет другого формата хранения БД и ее сжатия. Плюс, насколько я понял, IQ ориентирован на очень сложные аггрегатные запросы, понятное дело, что в любой OLTP можно было бы на ту табличку хоть на все 570 полей индексов понаделать, но все равно будут 2 диалемы, особенно если в таблице миллионы записей: 1. БД немерянно вырастет 2. Сколько бы индексов не понаделали, все равно запросы к такой БД надо будет писать очень аккуратно, смотреть на план запросов, продумывать, какие индексы нужны, а какие нет, не наглеть и не использовать в запросах то, что терпеть не могут OLTP: OR в соединениях, NOT BETWEEN, NOT EXISTS и т.д. У IQ же совсем другая политика (как раз ее и пытался обьяснить нам всю конференцию Тьерри на различных примерах) - Sybase заявляет, что сама архитектура IQ уже позволяет выполнять любой сложности запросы на больших обьемах данных. Т.е. в качестве примера он приводил фирму в Англии, которая снимает показания о переключениях между телевизионными каналами граждан, вся эта информация запихивается в IQ (прирост БД - террабайт в месяц), а потом просто продает SQL доступ к информации этой базы. Т.е. администраторы фирмы только следят за правильным заливом БД, какие запросы выполняются, по каким обьемам данных, с какой активностью - они просто даже не знают. Согласитесь на нормальном OLTP сервере нормальный администратор просто обязан знать, что лежит в его БД и какие запросы выполняют его многочисленные пользователи, иначе его сервер спокойно смогут положить на лопатки недоброкачественным запросом. Не знаю как Оракл, а вот насчет MSSQL и Sybase ASA и Sybase ASE могу сказать точно - эти СУБД не готовы к тому, чтобы на них можно было держать огромную БД и кучу внешних клиентов, которые самостоятельно без ограничений и уведомлений администратора посылают запросы на выборку и аггрегацию большого числа данных. Думаю Оракл так же на это не способен. В общем конечно лучше бы один раз увидеть, чем сто раз услышать. Однако надеюсь саму идею IQ я обьяснил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 06:23 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
т.е. хранятся только индексы ... интересно но не совсем понял как можно получить выгоду от хранения вдоль, а не поперек - все равно физически данные хранятся последовательно на секторах диска, а то что программер это претстваляет в виде продольной таблицы как бы не должно влиять, нет ? Не знаю как Оракл, а вот насчет MSSQL и Sybase ASA и Sybase ASE могу сказать точно - эти СУБД не готовы к тому а OLAP сервера? имхо это концептуально то же самое - выделеный сервер спецально заточен на суровые запрсы построения OLAP кубов, т.е. и структура бд уже не та что в OLPT а полу агрегирована - да она гораздо больше места занимает - но диски щас дешевле картошки - я на днях не смог купить 36гб сказийник - нет таких маленьких ... т.е. IQ позиционируется как замена OLAP серверу, т.к. позволяет более гипкие возможности ? они там как-то сранивали с OLAPами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 13:27 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
IQ позиционируется как хранилище. Не больше не меньше (как Terradata). Вы можете сколько угодно рассуждать о сдвиге OLTP сервера в OLAP, но это всё "круги на воде". Ведь не зря же люди ставят IQ в качестве хранилища там, где в OLTP стоит Oracle. Зайдите на tpc.org и посмотрите, что показывает тот же Oracle по сравнению с IQ. Их пассы руками по размазыванию данных по куче дисков для увеличения пропускной способности дискового IO всёравно не приводят к желаемому результату. Про Materealized View давайте просто не вспоминать, если учесть, что мы говорим про ad-hoc запросы. Ну и т.д "Когда не стоит использовать IQ ?" его ответ: "Я думаю, когда у Вас все работает на том, что есть и все довольны, то явно не стоит начинать использовать IQ" :) Напоследок ещё раз: IQ - это не OLTP сервер и не OLTP "сдвинутый" в OLAP - это хранилище. Вот и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 14:16 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Догадайтесь с 3-х раз на чём сейчас постороено самое большое в мире хранилище данных? :-) Догадайтесь с 3-х раз что самое дешевое для построения хранилищ? :-) Догадайтесь с 3-х раз что самое экономичное по железу? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 14:41 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Угадайте что такое дешевый слоган. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 14:44 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Дешевый слоган - это когда говорится что-то, что не подтверждено на практике (насколько я это понимаю). Хотя критику признаю. Больше флейма от меня не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 14:50 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
2 Guest, вы работайете в сайбесе? Вы работали с IQ на больших проектах с терабайтными объемами? За объяснения что такое хранилище - спасибо, жаль только, что сногие не могут разделить два понятия база для изменеий и база открытая на чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 15:04 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Попробовал проверить :) На TPC-H тестах IQ появляется только на базах до 300GB и даже в этом сегменте лидер IBM с DB2 и MS SQL Server. Насчет самого большого в мире хранилища - поиск по инету выдал, что самое большое коммерческое хранилище в France Telecom 32TB и стоит на Oracle. http://www.oracle.com/features/solutions/business_intelligence/index.html?1217_db_winterdw.html И еще вопрос, что мешает использованию Materialized Views при ad-hoc запросах? Если данные есть в MV они оттуда берутся, если нет - не берутся, и ведь может быть несколько MV? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 15:09 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Посмотрите на спецификации машин в тэстах или на результаты соимость/производительность. IQ: 48.2 TB cырых данных размещено на 22 TB дискового пространства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 15:15 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
вообщето в tpc-h рулит именно оракл, а IQ максимум на 4-х процах там запустили - ораклу просто не интересно на таких маштабах соревноватся он на 64 соревнуется ... авторПосмотрите на спецификации машин в тэстах или на результаты соимость/производительность. mysql и foxpro лидеры :) авторIQ: 48.2 TB cырых данных размещено на 22 TB дискового пространства. если это каталог пары сотен порно фильмов, то это ни о чем не говорит. нам интересны архитектурные особености а в скоростях мы у более авторитетных источников поспрашиваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 15:51 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
IQ: 48.2 TB cырых данных размещено на 22 TB дискового пространства. Это где написано? В спецификациях теста или где? Можно линк какой-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 15:51 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
www.sun.com Search: Sybase IQ 48.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 16:40 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
Спасибо. Прочитал в IQ Reference Unlike Adaptive Server Anywhere, Adaptive Server IQ does not allow subqueries to appear wherever expressions are allowed. Adaptive Server IQ only supports subqueries as allowed in the SQL-1989 grammar. It does not support Adaptive Server Anywhere’s extensions. Отсюда вопросы. 1. Когда непозволительны подзапросы? 2. Почему поддерживается всего лишь SQL-1989? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:42 |
|
||
|
30 марта в Москве проводиться конференция по Sybase IQ (впечатления)
|
|||
|---|---|---|---|
|
#18+
1. Note In Adaptive Server IQ, subqueries (nested selects) are not allowed in the select list. This is a difference between Adaptive Server IQ and Adaptive Server Anywhere. In Adaptive Server IQ, subqueries can only be used in a WHERE or HAVING clause predicate (one of the supported predicate types). Subqueries cannot be used inside a value expression (for example, in a CASE statement), inside an outer join ON clause, or inside a BETWEEN or LIKE predicate. For more details on the use of subqueries, see “Subqueries in expressions” on page 198 and “Subqueries in search conditions” on page 209. 2. Adaptive Server IQ conforms to the ANSI SQL89 standard but has many additional features defined in IBM’s DB2 and SAA specification, and in ANSI SQL/92. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 17:53 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32464785&tid=2014533]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 127ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...