2009-06-29 4 views
2

У нас есть система, которая генерирует много событий в результате телефонного звонка/веб-запроса/смс/электронной почты и т. Д., Каждое из этих событий должно быть сохранено и доступно для отчетности (для MI/BI и т. д.), каждое из этих событий имеет много переменных и не соответствует какой-либо конкретной схеме.хранилище и отчетность без схемы

Структура документа событий представляет собой список пар ключ-значение (корд = 1 & имя = Пол & Длительность = 123 & почтовый индекс = L21). В настоящее время у нас есть система SQL Server, использующая динамически генерируемые разреженные столбцы для хранения нашего (плоского) документа, из которого у нас есть отчеты, которые работают с данными, по разным причинам я рассматриваю другие решения.

Я ищу предложения системы (открытые или закрытые), которые позволяют нам продвигать эти события (независимо от схемы) и предоставлять отчет и алитики поверх нее.

Я видел Пентахо и Джаспера, но большинство из них, похоже, подключается к системе, чтобы получить данные из нее, чтобы затем сообщить об этом. Я просто хочу, чтобы у меня был доступ к документу и его можно было сообщать.

Столько, сколько я люблю CouchDB, я ищу систему, которая позволяет схеме менее Посылаем данных и отчетности на нем (так же, как Pentaho, Джаспер, SQL Reporting/Analytics Server, и т.д.)

ответ

3

I не думайте, что есть какая-нибудь СУБД, которая будет делать то, что вы хотите, и позволить использовать готовый инструмент отчетности. Аналитические системы с малой задержкой не быстро и легко создавать. Низкая латентность по неструктурированным данным довольно амбициозна.

Однако вам придется сохранять данные в какой-то базе данных.

Я думаю, вам, возможно, придется более внимательно изучить ваш проблемный домен. Вы пытаетесь запустить аналитические отчеты с низкой задержкой или оперативный отчет, который подсказывает некоторые действия в бизнесе при возникновении определенных событий? Для систем с малой задержкой вам нужно быть совершенно беспощадными в отношении того, что представляет собой оперативную отчетность и что представляет собой аналитику.

Редактировать: Отклонить «потенциально оба» мышления, если только бизнес не готов заплатить. Инвестиционные банки и хедж-фонды тратят большие деньги и покупают суперкомпьютеры для «аналитики в режиме реального времени». Это не тривиальное начинание. Это даже менее тривиально, когда вы пытаетесь сделать такую ​​систему и строить ее для больших периодов времени.

Даже в приложениях, таких как SMS-услуги премиум-класса и приложения .com, бизнес часто отступает, когда вы делаете реалистичный анализ объема и стоимости проблемы. Я не могу сказать этого достаточно. Be действительно, действительно безжалостный о требованиях «в реальном времени».

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

Аналитические запросы будут отображать таблицу относительно небольшого передового раздела данных и использовать более эффективные методы на других разделах. Это дает вам данные с низкой задержкой и возможность запуска эффективных аналитических запросов по историческим данным.

Запустите процесс, который перейдет на новый ведущий раздел и консолидирует/индексирует предыдущий раздел.

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

Редактировать 2: Общие поля могут быть кандидатами для настройки в виде измерений в таблице фактов (например, вызывающий, время). Менее распространенные поля - это (предположительно) кодирование. Для эффективной схемы вы можете переместить необязательное кодирование в один или несколько 'junk' dimensions..

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

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

+0

Потенциально, оба - на данный момент существует потребность в низкой задержке (бизнес использует в реальном времени, но мы знаем, что это не так) аналитика и отчетность. Однако оперативно мы можем принимать решения о самых последних действиях в «другой» базе данных, которая очень часто усекается. К сожалению, те же данные, которые доступны для оперативных решений, также должны быть доступны нашим клиентам с помощью аналитики. – Kinlan

+0

На данный момент, я думаю, это будет две фазы. БД (в основном записи о вызовах), предназначенные для хранения данных, которые могут быть, и системы отчетности/аналитики. – Kinlan

+0

Хорошо, круто, спасибо за изменения. Если на данный момент я могу игнорировать аспект реального времени. У нас есть случай, когда факты и измерения могут быть «динамическими» из-за отсутствия лучшего слова - то есть нет фиксированных схем (кроме нескольких общих переменных), поэтому то, что я ищу, - это то, что может обрабатывать это. На данный момент у нас есть одна таблица записей подробных вызовов, каждая строка представляет один вызов, а столбцы представляют переменные, установленные в этом вызове (столбцы которых могут быть динамически созданы и могут не заполняться в 99% случаев) – Kinlan

0

Являются ли эти системы нецелесообразными или это просто, что схемы не определены? Часто ли меняются схемы?

+0

Схема целиком определяется клиентом приложением посредством скриптов, которые мы используем. То есть, вызовы, которые мы делаем, имеют очень высокий шанс, что они будут содержать очень разные столбцы. Очень легко видеть, что мы сделаем 1000+ различных измерений, выполненных в конце телефонного звонка. – Kinlan

+0

Я думаю, что раньше я не работал с такими проблемами. У вас на самом деле есть несколько схем. Даже если для быстрого хранения данных у вас есть простая база данных с ключом/значением, чтобы делать какие-либо отчеты, каждый клиент должен иметь схему и разные схемы для каждого клиента, я полагаю! –

+0

в зависимости от кампании, в которой могут работать клиенты, и «приложений», которые они могут запускать в любой момент, есть схема, но эта схема может существовать только в течение 20 минут, прежде чем клиент изменит ее на основе их требований. – Kinlan

-1

Теперь я думаю, что вижу основные требования. Это онлайн-опрос или опрос по телефону с пользовательскими опросами. Способ справиться с этим требованием состоит в том, чтобы сфокусировать аналитику на клиенте. Никакой онлайн-инструмент не позволит вам изменить настройки схемы за 20 минут.

Я видел этот тип требований раньше, и он сводится к клиенту, желающему сделать некоторую статистику в конкретном опросе. Если вы можете дать им CSV на основе полей (т. Е. С именованными столбцами заголовка) в своем конкретном опросе, они могут импортировать его в excel и открутить его оттуда.

Этот должен быть достаточно простым в использовании из настраиваемой онлайн-системы съемки, поскольку вы должны иметь возможность ознакомиться с конфигурацией обследования. Клиент будет рад, что они смогут играть со своими номерами в Excel, так как им не нужно обходиться вокруг стороннего инструмента. Любой компетентный продавец должен иметь возможность откручивать это для клиента как хорошую вещь. Вы можете использовать spiel вдоль линий «И вы можете использовать знакомые инструменты, такие как Excel, для анализа ваших чисел». (или SAS, если они так наклонены)

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

Обратите внимание, что колеса будут отрываться, если у вас больше данных объемом более 65535 респондентов на один опрос, так как это не поместится на вкладке электронных таблиц. Excel 2007 увеличивает этот предел до 1048575. Однако опросы с таким объемом ответа, вероятно, будут в меньшинстве. Одним из возможных способов решения проблемы является предоставление возможности получения случайных выборок данных, которые достаточно малы для работы в Excel.

Редактировать: Я не думаю, что существуют другие решения, которые достаточно гибки для этого типа приложений. Вы описали священный Грааль статистики опроса.

Я все еще считаю, что основная стратегия - дать им дамп данных. Вы можете предварительно упаковать его в некоторой степени, используя автоматизацию OLE, чтобы построить сводную таблицу и доставить что-то частично переваренное. API для сводных таблиц в Excel немного волосатый, но это, безусловно, вполне возможно. Я написал код VBA, который программно создает сводные таблицы в прошлом, поэтому я могу сказать из личного опыта, что это возможно сделать.

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

Вы можете получить некоторый пробег от R (www.r-project.org), так как вы можете создать фреймворк, который позволяет импортировать данные и генерировать индивидуальные отчеты с небольшим количеством R-кода. Это не инструмент для конечных пользователей, но ваша клиентская база звучит так, как будто они хотят, чтобы в любом случае они были законсервированными отчетами.

+0

Это близко, это система IVR, которая может запускать любой скрипт, а не только опросы.Например, базовый скрипт может измерять до 500 переменных из вызова, включая время ответа на запрос для вопроса, результат вопроса и т. Д. На базовом уровне да, мы уже предоставляем таблицу результатов CSV, но с жестко закодированными столбцами (это действительно неуправляемо), схема Entity Value не работает, поэтому мы обесценили ее - вот почему мы установили динамические столбцы SQL Server (через разреженные столбцы), и я пытаюсь определить, есть ли другие решения :) – Kinlan

+0

И другой момент заключается в том, что (без грубости наших клиентов) заключается в том, что они либо не могут анализировать данные, которые мы уже представляем, и мы должны управлять отчетностью для них в обобщенной форме; или они просто не хотят манипулировать экспортом CSV, который мы уже предоставляем. – Kinlan

+0

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

Смежные вопросы