Идея статьи
Статья написана для аналитиков. Как правило, такие люди имеют дело с постоянным потоком данных, отражающим какие-то аспекты работы предприятия (физические продажи, финансовые потоки, производство, показатели работы вспомогательных подразделений, etc...).
Эти данные необходимо:
Накапливать. Причём процесс накопления желательно автоматизировать.
Обеспечивать к ним удобный и рациональный способ доступа. Одно дело, когда к этим данным должен получать доступ один человек, а что, например, делать, когда есть группа аналитиков, которые должны одновременно получать доступ к этому массиву накопленных данных?
Преобразовывать, агрегировать, то есть создавать на основе первичных накопленных данных некие полезные для организации отчёты. Желательно иметь механизм получения доступа к этим отчётам со стороны всех заинтересованных лиц. Процесс автоматизации приготовления таких отчётов тоже весьма актуален.
Контролировать целостность и обеспечивать резервирование на случай сбоя.
По-сути, аналитик или их небольшой коллектив обеспечивает весь этот, приведенный выше, жизненный цикл информации. В зрелых крупных организациях на этот цикл выделяются серьёзные ресурсы, как людские, так и материальные. Там всё по-взрослому, дорого, сложно и красиво. Этот идеальный вариант я не рассматриваю. Мне интересен больше вариант, когда аналитическая служба проходит этап становления, когда нет ничего, когда вам не дадут никаких серьёзных денег ни на какие излишества, как в плане оборудования, так и в плане программного обеспечения. Куды крестьянину аналитику податься? С чего начать? Какие возможности существуют? Для этих счастливых людей моя статья.
Допущения
Предполагается, что ваша организация не поскупится на покупку для аналитиков приличных персональных компьютеров. Моя рекомендация (на март 2015) следующая:
Процессоры серии Intel Core i5 или i7
Оперативная память минимум 4 Гб, но настоятельно рекомендую 8 Гб
Жёсткие диски 1, а лучше 2 по 1 Тб (7200 rpm), кроме этого очень желательно иметь твердотельный SSD диск 120-200 Гб, чтобы установить на него операционную систему. Компьютер станет дороже на 70 USD, а работать будет в 4 раза быстрее.
Видеоадаптер - интегрированный на материнской плате
Материнская плата - берите ASUS, MSI, не самое дешевое и не самое дорогое
Корпус ПК - что-то приличное, тихое типа THERMALTAKE. Можно ориентироваться на похожие готовые конфигурации от HP или Lenovo, но скорее всего выйдет чуть дороже. Зато гарантия и всё такое...
Операционная система - сейчас без вариантов будет Windows 8.1. Рекомендую покупать Windows 8.1 Профессиональная 64-разрядная.
Монитор - не столь критичен, но не берите ничего менее диагонали в 22''. Думаю, за 250-300$ вы купите прекрасный монитор.
В итоге, если не сильно экономить, то всё это выльется в сумму в районе 1200-1400 USD. Конечно, в начале аппаратура не настолько критична и вы вполне сможете начать работать и на ПК за 900 USD.
Купите себе нормальный легальный офис. Рекомендую оформить подписку на Office 365 профессиональный плюс, который стоит сейчас 600 руб/мес на пользователя (в год получается 7200 руб без НДС). Слово "плюс" означает, что в данный выпуск встроены новейшие инструменты для Excel PowerPivot, PowerQuery, PoverView, PoverMap. Например, в выпуске Office 365 бизнес премиум их нет и доустановить их нельзя.
Обратите особое внимание, что у нас и операционная система, и офис должны быть 64-разрядные. Это позволит офису использовать большое количество оперативной памяти, которое установлено на нашем компьютере. В противном случае он смог бы использовать не более 2 Гб.
Предполагаю, что в вашей организации есть некая учётная система (в подавляющем числе случаев 1С), из которой вы так или иначе можете извлекать первичные данные. Какие способы экспорта данных теоретически существуют, мы будем обсуждать ниже.
Экспорт данных из учётной системы
Желательно, как можно чётче понимать, что вы хотите получить из учётной системы (УС). Составьте список полей (колонок), которые вы ожидаете получить. Подумайте о конечных отчётах, чтобы потом не оказалось, что для какого-то важного отчёта у вас не хватает исходных данных.
-
Необходимо также понимать, что информация в УС хранится в виде отдельных таблиц. Например, счёт-фактура, как правило, хранится минимум в двух разных таблицах. Есть таблица, в которой хранится атрибуты уровня счёт-фактуры, такие как номер документа, дата, номер клиента, тип клиента, форма оплаты и т.д., а есть таблица в которой хранятся строки счёт-фактуры с атрибутами: код товара, количество товара, цена товара, скидка. Вот перед вами 2 возможных варианта импорта данных из УС:
Эти 2 варианта адресуют к таким понятиям, как реляционная модель и нормализация данных. С точки зрения последующей работы с данными я вам рекомендую первый вариант (2 таблицы), к тому же там нет избыточности данных - ваши таблицы будут занимать меньше места.
-
Кроме этого существует проблема справочников.
Опять первый вариант предпочтительней - подумайте, что произойдёт, если вы в УС измените название товара.
Предполагается, что экспорт данных из УС вы производите периодически: раз в день, раз в неделю или раз в месяц, подгружая данные только за истекший период с момента последней загрузки. Справочники можно обновлять по мере необходимости.
Учитывая все эти моменты, необходимо переговорить с администратором, отвечающим за УС. Пусть предложит и настроит (покажет) вам самый удобный вариант экспорта.
-
Большинство серьёзных систем поддерживают следующие варианты экспорта:
-
Текстовый файл с разделителями (в частности CSV файл).
Обратите внимание, что файл не должен содержать, по возможности, никакого мусора: названий отчётов, элементов рамок таблиц, форматирования, пустых строк, разбивки по страницам и т.п. Первая строка должна содержать имена полей, последующие - записи таблицы. Разделителем между полями как правило являются запятая (CSV формат), символ табуляции. В CSV формате текстовые строки заключаются в двойные кавычки, так как внутри таких строк тоже могут встречаться запятые.
Плюсы: не имеет ограничений на количество строк
Минусы: наличие промежуточного объекта в виде текстового файла.
Если в текстовом файле не удалось избавиться от мусора, то для автоматизации процесса придётся писать программу, которая бы приводила текстовый файл к тому состоянию, которое нам нужно, в противном случае такой файл мы не сможем без проблем проимпортировать ни в Excel, ни в Access, никуда.
-
Excel файл
Плюсы: данные заведомо корректно разбиты на столбцы и ячейки. Как правило, в таких файлах нет лишнего мусора. На Excel файл можно легко сослаться из другого Excel файла, а Access может открывать его в режиме присоединенной таблицы (linked table).
Минусы: если экспорт поддерживается в файл формата Excel 97 - 2003, то там есть ограничение на количество строк - не более 65536 строк. Если это формат Excel 2007, то тогда - до 1048576 строк на листе.
-
XML файл.
Продвинутый способ экспорта. С разбегу им воспользоваться не удастся, поэтому рекомендую для начала что-то попроще.
-
Использование программного интерфейса доступа к данным.
Предпочтительным для MS Office является интерфейс ADO, но можно работать и с другими: ODBC, OLEDB, DAO.
Плюсы: нет никаких промежуточных звеньев в виде файлов.
Минусы: необходимы навыки VBA программирования + знание объектной модели ADO
-
PowerQuery
Относительно новая технология от Microsoft (MS Office 2010 & 2013), которая облегчает подготовку и извлечение информации из разных источников. Созданный запрос может быть использован повторно.
Накопление данных
-
MS Excel
Нормальный вариант, если данных относительно не много. Для формата файла Excel 2007 на листе может хранится 1048576 строк. Я пробовал работать с подобными файлами. Excel при этом работает нормально. НО - забудьте про формулы рабочего листа! Откажитесь от формул вообще. Только данные.
Всё-таки Excel хранит данные достаточно расточительным способом и, когда их много, работать становится некомфортно. Многие операции будут занимать непривычно много времени. Вот тут и могут сыграть ключевую роль то, что мы обсуждали в разделе про программно-аппаратную часть ПК. Сочетание 64-разрядной ОС, 64-разрядного офиса, 8 Гб оперативки на борту, быстрого процессора, SSD накопителя помогут вам комфортно работать с такими таблицами.
Принимая решение хранить данные в Excel, вы должны понять, как быстро увеличиваются в размере ваши данные. Например, если за 1 месяц у вас идёт приращение условно в 50000 строк, то можно грубо утверждать, что лимита в 1000000 строк вы достигнете через 20 месяцев, а если организация бурно развивается, то и раньше. Очевидно, что Excel вам не подходит.
Если вы наивно думаете, что можно просто разбить данные по годам и хранить их на разных листах (файлах), то, поверьте, что после того, как вы так сделаете, вы проклянёте всё. Нет, сделать так безусловно можно, но вот жить с этим будет тяжеловато. На каждый отчёт вы будете тратить больше сил, чем хотели бы. И вечерами, которые вы будете проводить на работе, вы не раз с тоской вспомните это неудачное решение. А вернуться и переделать всё крайне сложно - это уже надо провести на работе весь свой отпуск, ибо придётся переделать все отчёты.
Запомните, что разбивать однородные данные по любым причинам - самое последнее дело. Например, вы анализируете продажи. Вот есть у вас таблица для хранения счетов, скажем, она называется Invoices. Так вот не существует в природе хороших причин, чтобы вместо одной таблицы Invoices иметь 2 и более. Ни временные периоды (Invoices2012, Invoices2013,...), ни география (InvoicesCenter, InvoicesSouth, ..), ни даже формальная юридическая принадлежность к разным юрлицам (я имею в виду, что если вы занимаетесь отчётностью для нескольких юрлиц, имеющих одного хозяина) не являются вескими причинами для разделения аналитических данных.
-
MS Access
Когда вы начинаете подозревать, что в среднесрочной перспективе вам возможностей Excel по хранению данных будет не достаточно, то смело отказывайтесь от него в пользу баз данных. Тут 2 варианта: Microsoft Access и Microsoft SQL Server Express. Первый входит в пакет MS Office, а второй распространяется бесплатно, так как является урезанной версией Microsoft SQL Server.
Если в случае Excel вы бы в прямом смысле слова мучались с файлами размером 100-200 Мб, то MS Access открывает перед вами возможности по хранению данных с лимитом в 2 Гб на одну базу данных. А если вам его будет не хватать, то можно начать растаскивать свои таблицы по нескольким базам данных.Предположим у вас весь объём данных распределяется следующим образом: таблица A занимает 1 Гб, остальные таблицы занимают суммарно 1 Гб. Так вот Таблицу А можно отселить в отдельный MDB/ACCDB файл и она вольна будет расти дальше до лимита в 2Гб. Обращаться из основной, исходной базы данных к таблице А можно легко через совершенно прозрачный механизм прилинкованных таблиц.
-
MS SQL Server Express
MS Access прекрасное и привычное многим средство работы. Однако, когда речь заходит про преодоление предела в 2 Гб или про эффективную групповую работу с базой данных, то MS Access с треском проигрывает MS SQL Server. Кстати парадоксальная ситуация: за MS Access вы платите деньги, а более мощная БД MS SQL Server Express распространяется бесплатно. О какой групповой работе я говорю? Вот несколько сценариев:
Несколько сотрудников одновременно и независимо друг от друга разрабатывают отчёты на основе одних и тех же данных.
Необходимо, чтобы вводимые разными операторами данные были сразу же в режиме онлайн видны всем участникам процесса. В качестве примера представьте себе систему онлайн бронирования билетов. Теоретически можно сделать подобное и на MS Access, выложив БД на файловый сервер, доступный всем операторам, но это будет очень ненадёжно, а по медленным каналам данным это будет скорее всего вообще неприемлемо.
Повышенные требования к надёжности, доступности и безопасности данных. В этих смыслах Access также не конкурент MS SQL Server.
SQL Express самоограничен следующим: использует только 1 физический процессор или 4 логических ядра, использует только 1 Гб оперативной памяти, для сервиса Reporting Services использует до 4 Гб оперативной памяти, размер всех баз данных сервера ограничен величиной 10 Гб. Express хорош тем, что устанавливается на клиентские версии ОС, в частности Windows 7 или Windows 8. Существуют следующие выпуски SQL Express (я предпочитаю вариант с дополнительными сервисами):
Я вам рекомендую версию 2012, так как по ней больше русскоязычной документации, она лучше изучена в IT сообществе.
Манипуляция данными
Мы обсудили, где данные могут храниться, теперь обсудим, при помощи чего мы ими можем манипулировать.
Наиболее универсальное средство для преобразования данных - это, безусловно, сводные таблицы Excel. Построить сводную таблицу мы можем, как на основе данных, хранящихся в Excel, так и на основе данных из баз данных (MS Access / MS SQL Server). Начиная с MS Office 2013, Excel поддерживает так называемую модель данных, может связывать таблицы по ключевым полям и на этой основе строить сводные таблицы. Хотя использовать эту возможность Excel есть смысл только, если данные хранятся в Excel, так как БД обладают более продвинутыми возможностями по связыванию таблиц и созданию запросов.
Если данные хранятся в БД, то имеет смысл часть работы делать при помощи запросов к БД (чтобы не тащить в Excel большое количество записей), а тюнинг делать сводными таблицами или обычными формулами рабочего листа (уже частично агрегированных данных).
В современных выпусках офиса существует такой инструмент, как PowerPivot. Это по функционалу почти те же сводные таблицы, но оптимизированные для анализа очень больших массивов информации - десятки и местами сотни миллионов записей (на хорошем железе). Безусловно, такие массивы данных существуют только на очень крупных предприятиях. Функционал PowerPivot даже местами слабее, чем у обычных PivotTables, поэтому я думаю, что в данном обзоре уделять много внимания им не стоит. Скажу только, что для MS Office 2010 Professional вы можете скачать надстройку Power Pivot бесплатно, а, начиная, с MS Office 2013 эта надстройка встроена в офис, но встроена она только MS Office Professional Plus (как 365, так и 2013). По сути, PowerPivot представляет из себя Run time версию MS SQL Server. PowerPivot настолько хорошо умеет сжимать данные, что даже десятки миллионов записей могут занимать на диске считанное количество мегабайт.
Публикация отчётов
Подготовив отчёт, вы должны его отправить заказчику. Нам с вами желательно, чтобы отправка отнимала у нас минимальное количество сил и времени, а заказчику было бы удобно работать с предоставленными отчётами.
Что мы можем отправить?
Самое глупое, что может быть - это готовить отчёты в виде PowerPoint презентации со слайдами в графическом виде. Это означает, что вы должны сначала сделать отчёты, скажем, в Excel, а потом ещё и перенести таблицы и слайду в презентацию. Очень не рекомендую.
Чуть лучше - готовить PowerPoint презентацию со слайдами, которые ссылаются на соответствующие диаграммы и таблицы Excel и вам достаточно только обновить связи и файл с презентацией будет готов к отправке. Но в любом случае у нас наличиствует промежуточное звено в виде файла PowerPoint, которое, вообще говоря, вам только мешает.
Гораздо более интересный вариант, когда вы отправляете Excel файл, который сделан так, что он ничем не хуже слайдов PowerPoint. Таким образом мы избавляемся от промежуточного звена.
А можно сделать так, чтобы Excel файл при открытии просто обновлял свои результирующие таблицы из БД MS SQL Server Express. Для этого безусловно нужно, чтобы и заказчик, и ваш SQL сервер находились внутри локальной сети компании, плюс надо настроить систему доступов к вашей БД.
Как доставлять отчёты?
Ручная отправка отчётов по электронной почте. Самый распространенный вариант. У вас есть группы рассылки и вы в ручном режиме осуществляете рассылку со своего компьютера.
Автоматизированная рассылка по электронной почте. Тоже самое, но за вас всё делает программа/скрипт. Этот вариант потребует от вас серьёзного изучения программирования или помощи коллег из отдела IT.
Не обязательно рассылать информацию. Можно, например, иметь внутри компании Web или SharePoint сервер, куда вы будете просто выкладывать свежие файлы, а если ваши файлы могут сами себя обновлять, то и выкладывать ничего не потребуется. Заказчики будут самостоятельно заходить на эти сервера и брать оттуда отчёты. Этот вариант также можно довести до полной автоматизации.
Резервирование
Необходимо периодически осуществлять резервное копирование вашего хранилища данных и системы вспомогательных файлов, чтобы не потерять её после аппаратного или программного сбоя. Частота копирования определяется временем, которое у вас будет на восстановление работоспосбоности, чтобы не оказать пагубного воздействия на бизнес процессы на предприятии.
Лучше всего, чтобы копирование осуществлялось автоматически, ночью или утром перед формированием очередных отчётов. Хранить надо не одну копию за прошлый день, а несколько, например, вчерашняя копия + копия недельной давности + копия месячной давности.
Копирование файлов можно осуществлять на второй жёсткий диск, который может быть установлен на ваш ПК, но это не защитит вас от пожара, затопления, кражи, вредоносного кода, так как под воздействием неблагоприятных факторов окажутся оба диска. Лучше всего копировать информацию по сети на другой компьютер, находящейся в другом помещении, хотя бы в метрах 20-30 от вашего (на случай пожара). Можно, конечно, купить флэшки, но не факт, что на них всё уберётся, да и полной автоматизации тогда не выйдет - флэшки надо будет вставлять / вынимать руками + велик риск утраты такого носителя информации. Лично я бы выбрал копирование на другой ПК. Проконсультируйтесь со своим IT специалистом по деталям. Можете задавать конкретные вопросы мне. И чуть не забыл - к легальному офису прилагается такое приложение, как OneDrive + 1 Тб пространства на серверах Microsoft. Это тоже отличный способ резервирования данных, если у вас не режимное предприятие :)
P.S. Вы не представляете, как тяжело писать обзорные статьи. Вижу, что эта статья не совершенна, а если начать её улучшать, то, пожалуй, выйдет книга. Однако, продолжаю настаивать, что в качестве отправной точки тут сосредоточено масса полезного для начинающего аналитика. Надеюсь, что хоть немного вам помог.
Читайте также:
|