- Аналитические и
технологические обзоры - Возможности и преимущества
- Демонстрации
- Документация и техническое описание
- Лицензии и сертификаты
- Примеры внедрения
- Технологический справочник
- Уголок разработчика
- Caché Newsgroup
- Free Caché e-Learning
- Скачать Caché
Аналитические и технологические обзоры
Измерение производительности в реальных условиях
Резюме
В реальных условиях работы было произведено испытание приложения, загружающего данные в хранилище для последующего анализа. Для проведения этого сравнительного испытания один из модулей приложения, построенного на базе Oracle, был воссоздан средствами Cache ObjectScript. Для точного воспроизведения функциональности исходного модуля средствами Cache понадобилось лишь около 40 человеко-часов. В ходе испытаний модуля, построенного на базе Cache, время исполнения конкретных задач фиксировалось и сравнивалось с существующими показателями. Приложение на базе Cache работало в пять раз быстрее: ему понадобилось лишь 286 минут для загрузки и фильтрования данных, в то время как приложение под Oracle затрачивало на выполнение тех же задач 1441 минуту.
Введение
Meralco Corporation, крупная филиппинская электроэнергетическая компания, для работы со своим хранилищем данных в настоящее время пользуется продуктами Oracle. Каждый месяц в хранилище загружается большой объем текстовых данных, которые затем фильтруются и предоставляются для анализа. Желая улучшить работу своего хранилища данных, Meralco обратилась к Digital Dimensions, Inc. - дистрибутору Caché - высокопроизводительной СУБД, разработанной корпорацией InterSystems. Meralco предоставила Digital Dimensions и InterSystems возможность воссоздать модуль Field Order своего приложения извлечения, преобразования и загрузки данных в хранилище (ETL: Extract, Transform, Load) в рамках системы, построенной на базе Caché, дабы сравнить скорость работы Caché и Oracle.
Модуль Field Order
Модуль Field Order компании Meralco, построенный на базе Oracle 8i, предназначен для ввода данных из сгенерированных на местах текстовых файлов, и создания двух таблиц: измерений и фактов для последующего использования в целях анализа данных и составления отчетов. Для решения этой задачи он выполняет следующие операции:
- Большое количество создаваемых на местах файлов (ordenes.txt и gcahorde.txt) загружаются в две предварительные таблицы: ORDENES и GCAHORDE. В приложении на базе Oracle это осуществляется при помощи Oracle SQL*Loader.
- Таблица GCAHORDE фильтруется и создается таблица GCAHORDE_FILTERED.
- При помощи пакетов и хранимых процедур Oracle из таблиц GCAHORDE_FILTERED и ORDENES создается таблица измерений - DD_FIELD_ORDER.
- При помощи пакетов и хранимых процедур Oracle из таблиц GCAHORDE_FILTERED и ORDENES создается таблица сведений - DF_FIELD_ORDER.
Воссоздание модуля Field Order средствами Caché
Так как Caché поддерживает доступ к данным средствами ODBC и JDBC, многие приложения, предназначенные для работы с реляционными БД, могут быть с минимальными усилиями приспособлены для работы с базами данных Caché. Исключениями являются приложения, которые, как модуль Field Order компании Meralco, активно используют в своей работе хранимые процедуры. При переводе реляционного приложения на Caché такие хранимые процедуры, как правило, приходится воссоздавать в виде программ на языке Caché ObjectScript. Специалисты установили, что в таком случае быстрее будет воссоздать функциональность модуля Field Order средствами Caché ObjectScript, нежели адаптировать существующую программу. Дополнительным преимуществом такого подхода стало то, что новый модуль на базе Caché может использовать возможность предварительной фильтрации текстов при их импортировании. Так как данные из исходных файлов gcahorde.txt фильтруются по мере их добавления в БД, отпадает необходимость в отдельном Caché-модуле, который бы реализовывал отдельный этап фильтрации. При содействии Meralco компания InterSystems создала версию модуля Field Order на базе Caché. Эта задача потребовала около 40 человеко-часов времени разработчиков, знакомых с Caché.
Результаты
Версии модуля Field Order, работающие под Caché и Oracle 8i, обрабатывали один и тот же набор текстовых файлов с данными. Фиксировалось время, необходимое каждой из версий для выполнения различных задач. Модуль под управлением Caché работал в 4-23 раза быстрее, чем таковой под управлением Oracle, в зависимости от типа выполняемой задачи. Сводные результаты сравнительного тестирования представлены ниже.
Задача |
Oracle |
Caché |
Отношение затраченного времени |
||
Затраченное время |
Количество записей |
Затраченное время |
Количество записей |
||
Загрузка ORDENES |
138 мин. |
927857 |
6 мин. |
927857 |
23:1 |
Загрузка и фильтрование |
245 мин. |
90349 * |
23 мин. |
90349 |
10:1 |
Создание таблицы |
168 мин. |
1018216 |
24 мин. |
1018216 |
7:1 |
Создание таблицы |
890 мин. |
1018216 |
233 мин. |
1018216 |
4:1 |
Общее время загрузки |
1441 мин. |
|
286 мин. |
|
5:1 |
* в результате фильтраци 13 396 510 записей было загружено 90349 записей.
Заключение
В ходе сравнительного испытания хранилища данных в реальных условиях, Caché работала в пять раз быстрее, чем Oracle при выполнении операций загрузки и фильтрования данных. Для воспроизведения функциональности исходного приложения для Oracle средствами Caché понадобилось лишь 40 человеко-часов.
