|
vertica тестирование
|
|||
---|---|---|---|
#18+
Добрый день. Дошли наконец руки попробовать вертику. На виртуалку SLES11 SP1 (8VCPU/12GB RAM) поставлена vertica 6.1.3 community edition, создана тестовая база, создана и залита табличка LINEITEM из TPC-H на 300M записей. Гоняю (через vsql) q1.sql из TPC-H (фуллскан без предиката по l_shipdate) : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
При первом запуске и чтении с диска (150-160 MB/sec) выполняется за 35-36 сек. При последующих запусках и чтении из кэша (disk i/o нет совсем) выполняется за 21-22 сек. При этом утилизируется CPU порядка 450-500% (из 800% доступных), в nmon'е видно, что работают 5-6 VCPU. Решил посмотреть, что будет с проекциями. Прогнал q1.sql через Database Designer, он создал проекцию : Код: sql 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.
Теперь она используется в плане : Код: sql 1. 2. 3. 4. 5. 6. 7.
....но время выполнения из кэша стало 65-70 сек. :(( и при этом как-будто отключился параллелизм (работает только один VCPU) Сделал Код: sql 1. 2. 3.
и рестартил базу, но все равно тоже самое. Если дропнуть проекцию, то рантайм возвращается на 21-22 сек. Подскажите, плз, что делаю не так. Может какие параметры базы/ресурс-пула'ов/etc подкрутить надо ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 14:33 |
|
vertica тестирование
|
|||
---|---|---|---|
#18+
150 МБ/сек ? Что за железо ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 00:24 |
|
vertica тестирование
|
|||
---|---|---|---|
#18+
Привет. А DDL таблички то какой? И как часто данные повторяются в столбцах, которые не участвуют в группировках? А то дизайнер так проекцию сделал, как будто там одни дубли значений полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 21:50 |
|
vertica тестирование
|
|||
---|---|---|---|
#18+
ASCRUSПривет. А DDL таблички то какой? И как часто данные повторяются в столбцах, которые не участвуют в группировках? DDL вот такой : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
По распределению других колонок примерно как-то так : Код: sql 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.
Еще заметил, что если добавить к верхнему запросу простой предикат а-ля Код: sql 1.
То время выполнения одинаковое с фулсканом, а вот если на этот запрос с предикатом сделать DBD-ом проекцию, то отлетает за 3 сек. Но ведь на каждый фильтр проекций-то не наделаешься.... А 6.1.3 CE можно как-то проапгрейдить на 7.1.1 CE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 17:28 |
|
vertica тестирование
|
|||
---|---|---|---|
#18+
Проапгрейтить можно. Лучше сделать апдейт пошагово сначала на 7-ку, потом 7.1. В доке описано как запустить не инсталл, а апдейт, база нормально переведется. Если в базе уже что то ценное, то лучше сделать бакуп перед апдейтами. Если места для бакупа особо нет, то можно сделать hard-link бакуп прямо на самом кластере, потом если все будет нормально, папку с ним удалить на всех нодах. По поводу запроса: а по колонкам l_tax, l_discount, l_quantity, l_extendedprice каково распределение ? Сама проекция вполне верна и план запроса нормальный (GROUPBY PIPELINED гораздо шустрее и менее ресурсоемкий, чем GROUPBY HASH), Но смущает сортировка по этим фактовым полям и тип кодировки RLE. Попробуйте убрать их из сортировки проекции, переделав ее: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Еще такой момент - сколько серверов в кластере 1, 3 или больше ? Если серверов от 3, то надо сделать не "UNSEGMENTED ALL NODES", а "SEGMENTED BY HASH(ПоляОпределяющиеУникальностьЗаписи) ALL NODES KSAFE 1". P.S. На каждый запрос проекцию создавать не надо. Если например по этой табличке часто идет серия запросов с фильтрацией по L_SHIPDATE, то значит создаем проекцию с сортировкой по этому полю (или же вообще супер проекцию сразу с такой сортировкой и создаем), дальше все запросы, которые режут выборку по этой дате уходят на такую проекцию и выполняются моментально, если выбирается небольшой интервал. Вертика по проекции сразу же ограничивает круг записей, дальше уже на малом объеме записей для MPP и оптимизация дальнейшая особо не нужна, все и так выполняется влет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 13:42 |
|
|
start [/forum/topic.php?fid=48&msg=38806295&tid=1856867]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 254ms |
total: | 402ms |
0 / 0 |