Microsoft PowerPivot представляет собой надстройку к анонсированному корпорацией табличному процессору Excel 2010. Мое внимание программа привлекла прежде всего тем, что с ее помощью можно работать с гораздо большими массивами данных, чем в самом Excel. К примеру, мне удавалось загружать и просматривать таблицы, содержащие более 3,9 млн. строк — это в четыре раза больше предельного для Excel значения. При этом прокрутка таблицы осуществлялась так же легко, как если бы речь шла о документе всего из нескольких сот строк.
Если вы при работе с электронной таблицей упираетесь в ограничение на число строк, это, как правило, означает, что для решения вашей задачи лучше подошла бы СУБД. Однако для человека, привыкшего иметь дело с редактором таблиц, не так-то просто отказаться от любимого инструмента.
PowerPivot радует не только скоростью работы с длинными таблицами — этот бесплатный продукт еще и очень эффективно обеспечивает связь между рабочими книгами Excel и одной или несколькими базами данных. Я с помощью драйвера ODBC привязывал таким образом данные из Access, из “плоских” (бесструктурных) файлов и из MySQL.
В PowerPivot реализован новый язык для составления реляционных выражений — Data Analysis Expressions (DAX). Он напоминает имеющиеся в Excel средства для работы с функциями, но при этом гораздо лучше подходит для задач, ориентированных на использование баз данных. К примеру, DAX может работать с целыми столбцами или даже таблицами, а не только с диапазонами или отдельными ячейками, что избавляет от необходимости перетаскивать формулы через всё пространство таблицы, когда требуется переопределить диапазоны после внесения изменений в данные.
Тестировавшиеся мною версии PowerPivot и Excel 2010 еще не завершены, и я при работе несколько раз натыкался на шероховатости. В ряде случаев встроенные в таблицу данные оказывались испорченными, были проблемы и при работе с MySQL.
Однако после устранения этих недочетов PowerPivot станет действительно мощным инструментом, полезным как для ИТ-администраторов, стремящихся обеспечить пользователям более гибкий доступ к корпоративным данным, так и для бизнес-аналитиков, желающих работать в привычной программе, но с большими объемами информации. Добавлю также, что в PowerPivot есть средство интеграции с SharePoint (я его не тестировал), упрощающее коллективный доступ к аналитическим данным.
PowerPivot в лаборатории
Тестирование PowerPivot проводилось в бета-версии Excel 2010 на виртуальной машине под управлением 64-разрядной версии Windows 7. Вообще-то и у PowerPivot, и у Excel 2010 существуют 64-разрядные версии, но я использовал при испытаниях 32-разрядные версии обеих программ. Бета-версии этих продуктов можно получить по адресу соответственно microsoft.com/office/2010 и powerpivot.com. Если вы решили установить не весь набор приложений Office 2010, а только Excel, то вам нужно инсталлировать также “Общие средства Office” (Office Shared Features), без которых PowerPivot не сможет нормально функционировать.
Для испытаний я взял выборку из базы данных Access и таблицы Excel из проекта Codeplex. Кроме того, я взял с сайта OpenSecrets.org данные о финансировании кампании, проводимой Центром за ответственную политику, и импортировал их в MySQL.
После инсталляции PowerPivot в “ленте” Excel появилась новая вкладка для этого плагина. С ее помощью можно открыть отдельное окно для работы с PowerPivot, и там имеются собственные элементы управления для импортирования и обработки данных. При этом среда самой программы Excel никуда не исчезает. PowerPivot “живет” внутри рабочей книги Excel, вместе с данными. Эти данные могут включать таблицы и сводные диаграммы, которые, в свою очередь, могут либо заполняться информацией из PowerPivot, либо поставлять информацию через связанные таблицы.
В PowerPivot есть удобный мастер для закачки внешних данных из СУБД, плоских файлов и других источников. Я подключал свою тестовую таблицу к базе данных Access, переходя к нужному ACCDB-файлу, и затем либо выбирал объект из списка таблиц и представлений в СУБД, либо использовал SQL-запрос. При работе со списком можно выбирать таблицы вместе с фильтрами, определяющими правила включения записей.
При осуществлении аналогичных операций с данными из MySQL (это делалось через драйвер ODBC, который был у меня уже установлен и сконфигурирован в Windows) всё поначалу шло примерно так же — надо было указывать мышью и нажимать кнопку. Но когда я задействовал графическое средство для выбора таблиц и фильтров, программа стала выдавать сообщения об ошибке. С помощью SQL-запросов я все же смог задать требуемые условия, но это оказалось несколько сложнее, чем с помощью мастера.
После импортирования набора данных в PowerPivot каждая таблица заняла свое место на соответствующей вкладке с ярлыком внизу окна, как и у обычных таблиц рабочей книги. Я без труда добавлял новые таблицы и представления с данными из различных источников. Столь же легко можно было удалять любые из добавленных таблиц, а также создавать отношения между таблицами — в последнем случае надо было щелчком выделить столбец в таблице на одном конце отношения, а затем в диалоговом окне указать таблицу и столбец на другом конце этого отношения.
В справочных материалах PowerPivot имеется учебник, и с его помощью мне удалось привязать таблицы с данными о продажах велосипедов некоей фиктивной компании к таблицам о продажах в целом по отрасли. Столь же легко я визуализировал данные таблиц с использованием функций PivotCharts и Slicers, обеспечивающих наглядное представление числовых данных для анализа.