Технология OLAP и 1С:Предприятие

В среде общения программистов 1С все чаще стали возникать вопросы о технологии OLAP. Первым человеком, соединившим эту технологию с программами семейства 1С:Предпрития стал А. Любимов, разработавший продукт Акселератор (в него входят кубы, обработка выгрузки данных из 1С и OLAP-клиент от фирмы Digital Design - Data Vision Analyzer). Акселератор в настоящее время распространяется его фирмой АТТ. Однако агрессивное продвижение этого продукта Любимовым вошло в историю, и благодаря ему упоминание аббревиатуры OLAP на Территории 1С до сих пор вызывает у некоторых ее обитателей беспричинную ярость: А зря. Технология очень интересная. Итак, OLAP - что, зачем и как.

Технология OLAP и 1С:Предприятие

http://dagpages.virtualave.net/

В среде общения программистов 1С все чаще стали возникать вопросы о технологии OLAP. Первым человеком, соединившим эту технологию с программами семейства 1С:Предпрития стал А. Любимов, разработавший продукт Акселератор (в него входят кубы, обработка выгрузки данных из 1С и OLAP-клиент от фирмы Digital Design - Data Vision Analyzer). Акселератор в настоящее время распространяется его фирмой АТТ. Однако агрессивное продвижение этого продукта Любимовым вошло в историю, и благодаря ему упоминание аббревиатуры OLAP на Территории 1С до сих пор вызывает у некоторых ее обитателей беспричинную ярость: А зря. Технология очень интересная.

Итак, OLAP - что, зачем и как.

Сначала просто расшифруем аббревиатуру. OLAP - On-Line Analytical Processing, то есть анализирование на лету. Такое вот название было придумано для технологии. Кроме названия было придумано 5 принципов OLAP - если принципы не соблюдаются, то как бы и не OLAP это, а так, что-то другое (Гиперкуб, например). Эти принципы чуть ниже. Сначала все-таки неформальное определение так, как его понимаю я. Итак, предназначение этой технологии - давать аналитику (менеджеру, как правило) интересующую информацию со скоростью, которая не будет отставать от его мысли. Здесь имеется в виду и скорость построения отчета, и возможность легко извлечь нужные данные. И принципы следуют именно отсюда. Вот они:

  • предоставление пользователю результатов анализа за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа;
  • возможность осуществления любого логического и статистического анализа, характерного для данного приложения, и его сохранения в доступном для конечного пользователя виде;
  • многопользовательский доступ к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа;
  • многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий (это - ключевое требование OLAP);
  • возможность обращаться к любой нужной информации независимо от ее обЪема и места хранения.

Теперь - ближе к делу. OLAP - это технология, а не программа. Есть решения от Оракл, от других производителей ПО, но куда нам деться от родного Билли Гейтса! Рассмотрим решение от Майкрософт, всеми ругаемой и всеми используемой. Они начали включать OLAP в SQL-сервер с версии 7.0. Там он называется OLAP-Services. В SQL-2000 название почему-то сменили на Analysis Services. Но суть осталась.

Как это выглядит абстрактно - есть куб, имеющий несколько измерений, и заполненный данными. Можно брать срезы по любому набору измерений и смотреть, что внутри. Ничего не напоминает? Не зря один человек, чуть не сделавший на Территории 1С слово OLAP ругательным, называл регистры OLAPом для бедных: Доля правды в этом есть. Но в целом такое утверждение не верно - цели у регистров и OLAP-кубов разные. Первые заточены на быстрое занесение информации и ее получении на один конкретный момент времени, вторые - на максимально удобное извлечение информации. Поместить ее в OLAP-куб - процесс не быстрый:

Теперь - как это реализуется чуть ближе. Итак, имеем какой-то набор таблиц, проще говоря - базу данных. Эта БД называется источником данных (Data source). В одной из таблиц - набор собственно данных. Она называется таблицей фактов (fact table). В кубе может быть только одна такая таблица. Кроме того, может быть любое количество таблиц с данными об измерениях куба. Указав, какие поля содержат данные, а также задав свойства измерений и взаимосвязи между ними, получаем структуру куба. Например, такую:

структура куба

Это - не очень сложный куб. Однако, он дает возможность получать информацию о количестве, сумме, себестоимости (а заодно о вычисленных на их основе прибыли и проценте прибыли) а также об остатках на начало и конец любого выбранного периода. И это в любом разрезе данных по 7-ми измерениям с любым уровнем детализации. И это очень быстро и без помощи программиста. Очень быстро - потому, что все возможные данные на пересечении всех осей рассчитываются заранее. Без помощи программиста - потому, что существует множество клиентских программ для удобного извлечения информации. От безумно дешевого в нашей стране Office 2000 и Office XP до достаточно дорогого, но с мощнейшими возможностями ProClarity:

Рассмотрим представление информации, хранящейся в кубе, с помощью различных программ-клиентов (далее просто клиентов).

Для начала - MS Office (а точнее - Excel). 2000-й рассматривать не буду, потому что избалован нормальными клиентами: Даже по сравнению с малость недоделанной Data Vision Analyzer он выглядит слишком бледно. А вот XP - уже вполне неплохо. Опять же многого не хватает, но при том, что MS office стоит в любом, простите за каламбур, офисе доступность очевидна. На лицензионности я внимание не заостряю. Итак, скриншот:

Список полей сводной таблицы

сводная таблица

При этом мы двойным щелчком можем раскрыть любую раскрываемую позицию (например, год на кварталы и далее - на месяцы и дни), можем добавить сразу за товарами размеры и таким образом увидеть, какой из них более ходовой, можем убрать отбор покупателей по группе "Покупатели" или добавить к отбору еще какую-нибудь группу: можем отсортировать таблицу по сумме или отобрать несколько самых больших (или самых меньших) позиций: Разумеется, можно получить диаграмму. В общем, вполне неплохо.

Второй вариант - Data Vision Analyzer от питерской фирмы Digital Design. Он стоит денег. Однако его возможности все-таки посерьезней, чем у Excel. Очень удобный выбор строк и столбцов, возможность отборов, сортировок, выделения цветом определенных значений: экспорт результата в Excel, управление доступами, журнал регистрации...:

фильтр

структура куба

В общем, очень неплохой клиент c русским интерфейсом, что также плюс. Однако есть у него и недостатки - например, необходимо наличие SQL-сервера для хранения служебной информации. Сортировки и фильтрации можно задать только при подготовке запроса (на уже сформированном отчете, по которому погуляли с помощью детализации или укрупнения, они не срабатывают). Добавление измерений - опять же только при начальном формировании структуры запроса. Включение в отчет, скажем, всех товаров (без групп) при количестве уровней от 2-х - занятие не для слабонервных: Из представлений информации - таблица и диаграмма. Стоимость программы относительно невелика.

А теперь - клиент, который позволяет получить что угодно. ProClarity 3.0.

дерево компиляции

На рисунке - дерево декомпозиции. Сразу можно увидеть, что, кому и когда: те, кто пользовались этим инструментом, ничего другого уже обычно не хотят.

Но и стандартные представления тоже есть, с очень удобным выбором чего бы то ни было: В таблице и диаграмме, как и в дереве декомпозиции, можно детализировать данные, либо углубляясь (drill down) на следующий иерархический уровень (что доступно в любом клиенте), либо подключая новое измерение. Элементарно раскрывается, например, товар по покупателям, причем сразу можно выбрать, на какой уровень попадешь. Все отборы и сортировки можно установить в любой момент. При работе с таблицей выбор измерений для строк и столбцов мне сначала казался немного неудобным, но это прошло. В общем, отличнейший клиент. Действительно позволяет ProЯснить ситуацию :-). Огорчает одно - стоимость. Около 800$ на одно рабочее место. Также может несколько затруднить работу английский интерфейс, но эта проблема в принципе решаема.

Так что в зависимости от используемого клиента можно или просто извлечь нужную информацию без привлечения программиста, или буквально гулять по данным, уточняя любым образом любую позицию, возвращаясь назад на любой уровень и выбирая способ просмотра полученной информации.

А теперь еще один вопрос - как загнать в эту красоту данные из 1С?

Собственно, ничего страшного. Есть два пути - один попроще, другой мне нравится :-).

Первый способ уже применяется довольно многими. На рынке даже есть решения для облегчения этого пути. Как правило, применяется на базах в формате SQL. Но и на dbf тоже работает. Суть в том, что в качестве источника данных используется непосредственно база 1С. Тогда как в качестве таблицы фактов мы используем таблицу какого-либо регистра, устанавливаем связи с таблицами справочников, и вперед. Дешево и сердито. Особенно хорошо при использовании Analysis Services (SQL 2000 ) - создание уровней измерений с помощью parent-child идеально ложится на структуру таблиц 1С. Для SQL 7.0 мы бы получили абсолютно плоские изменения товаров и покупателей, без групп (а это нарушило бы основное требование OLAP).

Плюсы достаточно очевидны - для обновления данных в кубе достаточно запустить процессинг (process) базы данных в OLAP-менеджере. В источнике данных информация всегда актуальна. Минусы - я с трудом представляю, как использовать такой подход на бухгалтерской компоненте и тем более на расчете. Определенно нельзя использовать в качестве измерений перечисления. Нельзя загнать в куб информацию из двух регистров (есть виртуальные кубы, позволяющие обЪединить несколько кубов, но у них свои недостатки). Нельзя создать многоуровневые измерения с использованием нескольких таблиц. Вообще структура куба достаточно жестко определяется структурой БД. А она может и изменятся: Кроме того, куб, разработанный для одной БД с большой долей вероятности не будет работать с другой, даже при аналогичной конфигурации. И вообще сама идея такого подхода основана на использовании недокументированной информации о хранении данных в 1С (человек, не знакомый со структурой файла 1cv7.dd этот подход использовать не сможет).

Второй способ (я использую именно его) - вынесение источника данных в промежуточное хранилище. Обычно это - база данных Access. Можно использовать таблицы SQL. Там создаются таблицы с учетом того, что мы хотим видеть, далее пишется обработка для переноса в это хранилище данных из рабочей базы (пример работы с Access доступен), и уже на основе этого хранилища делается OLAP -куб. Здесь мы имеем полную свободу - например я в одной не любимой мною конфигурации заношу данные в куб продаж не на основе регистров, а на основе расходных накладных, при этом беру только те, у которых покупатель принадлежит к определенной группе. Вот так приходится отсекать именно продажи от всего остального: А еще я добавляю в куб продаж остатки - чтобы увидеть, что, например, мало продавали просто из-за того, что не было товара на складе, или на линейной диаграмме показать остатки и продажи в штуках - легко оценивается запас товара на складе. А показывать остатки приходится на какого-то покупателя: маразм? Нет, просто требование OLAP. Я то просто выкрутился - добавил в таблицу с покупателями фиктивную запись, в таблицу с накладными тоже и отношу все записи информации об остатках в таблицу фактов на них: Готов держать пари, в первом способе такого не добьешься. Формат базы данных при таком способе абсолютно не важен. Есть также принципиальная возможность (я пока только обдумываю, но делать буду определенно) добавлять информацию из внешних источников - например из файла MS Excel определенного формата: там могут быть данные, скажем, о планах на продажи или о затратах на рекламную компанию - сравнение этих данных прямо на месте с информацией о продажах может оказаться очень интересным. Понятно, что подобная гибкость недостижима при использовании первого подхода.

На этом, пожалуй, и все. Разумеется, получился весьма поверхностный обзор, но, надеюсь, я сумел передать основную идею технологии. Очень много различного материала можно найти на сайте www.olap.ru. Также есть обзоры применения OLAP именно на основе данных 1С:Предприятия на сайте компании АТТ - с покупки ее продукта началось, кстати, мое знакомство с технологией.




Ссылки по теме:




Оригинал статьи:

Начать дискуссию

Офис Клерка номинирован на премию Best Office Awards 2024

Объявлены проекты-номинанты премии Best Office Awards 2024. Награждение победителей премии состоится 31 мая в MTC Live Hall финале форума

Офис Клерка номинирован на премию Best Office Awards 2024

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

Алексей Иванов рассказал как блог на Клерке помог компании «Мое дело» выйти из кризиса. В костюме фирмы Adidas

Стратегии монетизации контента на платформе «Клерк» с использованием вебинаров, рассылок и лит-магнитов.

Банки

Покупка жилья в кредит станет более быстрой

Чтобы застройщики быстрее получали финансирование, а участники долевого строительства тратили меньше времени на посещение банков, депутаты предложили разрешить при покупке жилья открывать эскроу-счета удаленно.

Лучшие спикеры, новый каждый день
Инвестиции

Инвестиции в недвижимость: новый ЗПИФ Рентал ПРО от создателей ПНК-Рентал. IPO в конце мая – начале июня

«Можем повторить!» — сказали ребята из «А класс капитал» и решили, что пора выводить на биржу новый фонд. С названием долго не думали. Был ПНК-Рентал для всех, а будет Рентал ПРО для квалифицированных инвесторов. Был фонд с пассивным управлением, а будет фонд с активным управлением. Собрал известную информацию и свои мысли по новому фонду.

Инвестиции в недвижимость: новый ЗПИФ Рентал ПРО от создателей ПНК-Рентал. IPO в конце мая – начале июня
Мошенничество

В сервис заказа такси встроили азартные игры

Злоумышленники использовали агрегатор такси и проводили через него незаконные операции, связанные с выигрышами на ставках и в онлайн-казино.

Криптовалюта

Как и где купить криптовалюту пошаговая инструкция

Биткоин, Эфир, USDT и другие криптовалюты – отличный способ инвестировать в 2024 году. Сегодня ими пользуются не только крипотрейдеры, но и новички. Многие считают, что купить криптовалюту сложно и непонятно, поэтому отказываются от вложений. К счастью, это не так, и сегодня купить криптовалюту в России так же просто, как обменять рубли на доллары или евро!

Как и где купить криптовалюту пошаговая инструкция
Опытом делятся эксперты-практики, без воды
Трудовое право

Роструд назвал основные правовые особенности сезонной работы

По Трудовому кодексу есть особенности регулирования труда работников, занятых на сезонных работах.

Банки

Исламский банкинг будет интересен 90 тысячам компаний

По оценкам Сбера, к 2030 году 30% населения будут составлять мусульмане. Услуги банка, которые не противоречат нормам шариата, заинтересуют 5 млн человек.

Вопросы официального трудоустройства иностранных специалистов. Общая методичка

В рамках указанной статьи вы сможете узнать об основных этапах и нюансах, связанных с официальным трудоустройством иностранных специалистов.

Кабмин направит на поддержку Запорожской и Херсонской областей 4,4 млрд рублей

Деньги пойдут на выплату зарплат сотрудников бюджетных учреждений.

Госзакупки

Самые интересные споры по госзакупкам за 1 квартал 2024 года

ФАС привела обзор судебной практики в сфере госзакупок за 1 квартал 2024 года.

🔥 Акция «Жаркие скидки в любую погоду»! Самые горячие онлайн-курсы «Клерка» за 4 290 рублей до 20 мая

Мы предлагаем самые выгодные цены на онлайн-курсы по учету на маркетплейсах, УСН, ВЭД, финмоделированию, ФСБУ и бухгалтерии с нуля. Только до 20 мая их можно купить за 4 290 рублей!

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Инвестиции

Святой рандом мая. PIKK — акции ПИК

Продолжаю третий сезон святого рандома с покупкой российских акций. Каждый месяц я выбираю одну рандомную акцию из индекса Мосбиржи. Ну как я, делает это святой рандом, он же генератор случайных чисел. Я её потом просто покупаю. Почему? Да потому что какой смысл ручками выбирать акции, если рынок ведет себя непредсказуемо ¯\_(ツ)_/¯

Святой рандом мая. PIKK — акции ПИК
Бесплатно с Трудовые отношения

Сверхурочные в 2024 году: как оплачивать по новым правилам

Порядок оплаты сверхурочных работ закреплен в обновленной ст. 152 ТК во исполнение поручения, которое дал законодателям КС в постановлении от 27.06.2023 № 35-П. Теперь при оплате сверхурочной работы необходим принимать во внимание все компенсационные и стимулирующие выплаты.

Сверхурочные в 2024 году: как оплачивать по новым правилам
Бесплатно с Налоговые проверки

Продажа авто учредителю по цене ниже рыночной: сколько доначислят налоговики

Если организация продает самортизированные активы по низкой цене взаимозависимым лицам, ей доначислят налоги. Разбираем судебную практику.

Продажа авто учредителю по цене ниже рыночной: сколько доначислят налоговики

Что будет с интернетом, мобильной связью, Почтой России, электронными услугами, ИТ: заявления Минцифры

Максут Шадаев перед утверждением на должность министра цифрового развития, связи и массовых коммуникаций РФ назвал основные направления работы и какие вызовы стоят перед Минцифры.

Новое приложение «Ситидрайва» удалили из App Store

Уже установленные приложения будут работать на iOS. Пользователям рекомендуют отключить функцию «Сгружать неиспользуемые».

Платись, платись большая и маленькая: независимо от размера зарплату нужно платить два раза в месяц! 💰«Ночной бухгалтер» № 1684

Даже если ваш сотрудник на неполной ставке получает зарплату размером в несколько тысяч рублей, ее нельзя платить один раз. Даже сотрудник просит. Так Роструд сказал.

Иллюстрация: Вера Ревина/Клерк.ру

Расценки на техобслуживание газового оборудования, возможно, будет устанавливать государство

Регионы предлагают ввести государственное регулирование стоимости услуг по техобслуживанию газового оборудования.

Интересные материалы

Обменники крипты: как выбрать подходящий

Сегодня купить и продать криптовалюту* в России можно несколькими способами: через криптовалютные биржи, P2P-сервисы, криптоматы и обменники, работающие онлайн и офлайн. Последний вариант позволяет проводить сделки анонимно – без отправки своих персональных данных и платежных реквизитов.

Обменники крипты: как выбрать подходящий