Существуют ли какие-либо структуры хранилища данных?

У меня есть много данных MySQL, из которых мне нужно генерировать отчеты. В основном это исторические данные, поэтому они не будут сильно меняться, но они легко весят 20-30 гигабайт и, как ожидается, будут расти. В настоящее время у меня есть коллекция PHP-скриптов, которые будут выполнять сложные запросы и выводить файлы CSV и Excel. Я также использую phpMyAdmin с закладками запросов. Я вручную редактирую их, чтобы изменить параметры. Объем данных растет, и количество людей, которым нужен доступ к ним, также растет, поэтому я стараюсь улучшить эту ситуацию.

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

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

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

Так, где хорошее место, чтобы начать?

7 ответов

Решение

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

WikipediaDataWarehouseArticle

  • Уровень оперативной базы данных
    Исходные данные для хранилища данных - нормализовано для ведения данных только в одном месте

  • Уровень доступа к данным
    Преобразование исходных данных в слой информационного доступа.
    Инструменты ETL для извлечения, преобразования, загрузки данных в хранилище попадают в этот уровень.

  • Информационный уровень доступа
    • Структура данных, облегчающая отчетность
    Данные здесь не ведутся. Это просто отражение ваших исходных данных
    Следовательно, денормализованные структуры (содержащие дублированные, но систематически полученные данные)
    как правило, наиболее эффективны здесь
    • Инструменты отчетности
    Как вы на самом деле разрешаете своим пользователям доступ к данным
    • предварительно консервированные отчеты (простые)
    • более динамичные методы доступа к слайсам и кубикам

Доступ к данным для отчетности и анализа, а также инструменты для отчетности и анализа данных
попасть в этот слой. И различия Inmon-Kimball о методологии проектирования,
обсуждаемые позже в статье в Википедии, касаются этого слоя.

  • Уровень метаданных (облегчает автоматизацию, организацию и т. Д.)

Бросьте свой собственный (low-end)
За очень небольшую стоимость из кармана, просто признавая необходимость денормализованных структур, можно купить те, которые не используют его, с некоторой эффективностью

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

  • Microsoft (платформа нашей фирмы из 110 сотрудников)
  • SAP
  • оракул
  • IBM

BiMarketStateArticle

На этом этапе моя фирма использует некоторые возможности ETL, предлагаемые службами интеграции SQL Server (SSIS), и некоторое альтернативное использование открытого источника, но на практике требуется лицензия на продукт Talend в "уровне доступа к данным", денормализованной структуре отчетности. (реализовано полностью в базовой базе данных SQL Server), а также службы отчетов SQL Server (SSRS) для значительной автоматизации (в зависимости от ваших навыков) создания предварительно определенных отчетов. Обратите внимание, что "отчет" SSRS - это просто (масштабируемая) конфигурация / спецификация XML, которая отображается во время выполнения с помощью механизма SSRS. Такие варианты, как экспорт в файл Excel, являются простыми.

Серьезная приверженность (требуется значительная человеческая приверженность)
Обратите внимание, что нам еще предстоит использовать возможности интеллектуального анализа данных / динамического среза / нарезания кубов в SQL Server Analysis Services. Мы работаем над этим, но сейчас сосредоточены на улучшении качества очистки данных на "уровне доступа к данным".

Я надеюсь, что это поможет вам понять, с чего начать.

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

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

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

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

Наряду с такими инструментами, как Kalido и Wherescape RED (которые делают одно и то же совершенно разными способами), многие из платформ ETL теперь имеют хорошую встроенную поддержку для ослиной работы по реализации - компонентов SCD и т. Д. И отслеживания происхождения.

Хотя лучше всего рассматривать все это как инструменты, которые будут использоваться в руках вас, ремесленника, они делают некоторые простые вещи даже проще (или даже тривиальными), некоторые сложные вещи легче, но некоторые вещи просто мешают ИМХО;) Изучите методологию и принципы сначала и получите хорошее представление о них, а затем вы узнаете, какие инструменты применять из своего пакета и когда...

Некоторое время он не обновлялся, но есть хороший пакет Ruby для хранилищ данных /ETL под названием ActiveWarehouse.

Но я бы проверил продукты Пентахо, как Ник упоминал в другом ответе. Он должен легко обрабатывать объем данных, которые у вас есть, и может предоставить вам больше способов нарезать и нарезать кубики ваших данных, чем вы могли себе представить.

Наилучший фреймворк, который вы можете получить в данный момент - это Anchor Modeling
Это может выглядеть довольно сложно из-за его общей структуры и встроенной возможности для сбора данных.
Также методика моделирования совершенно отличается от ERD.
Но вы в конечном итоге с SQL-кодом для генерации всех объектов БД, включая представления 3NF и:

  • вставка / обновление обрабатываются триггерами
  • запросить любую точку / диапазон в истории
  • разработчики приложений не увидят базовую модель привязки 6NF.

Технология с открытым исходным кодом и на данный момент не имеет себе равных.

Если у вас возникнет вопрос AM, вы можете задать этот тег для моделирования якорей.

Кимбалл является более простым методом для хранения данных.

Мы используем Informatica для перемещения данных, но по умолчанию она не выполняет такие вещи, как индексирование.
Мне нравится идея Wherescape RED, как инструмента DW и использования связанных серверов MS SQL для устранения необходимости в инструменте ETL.

Другие вопросы по тегам