Jump to content

Кубы (OLAP-сервер)

Оригинальный автор(ы) Стефан Урбанек [ 1 ]
Первоначальный выпуск 27 марта 2011 г .; 13 лет назад ( 27.03.2011 )
Стабильная версия
1.1 / 2 июля 2016 г .; 8 лет назад ( 2016-07-02 )
Репозиторий github /DataBrewery /кубики
Написано в Питон
Операционная система Кросс-платформенный
Тип ОЛАП
Лицензия МОЯ лицензия [ 2 ]
Веб-сайт кубики .databrewery .org

Cubes — это легкий с открытым исходным кодом набор инструментов многомерного моделирования и OLAP для разработки приложений для создания отчетов и просмотра агрегированных данных, написанных на языке программирования Python, выпущенный под лицензией MIT .

Cubes предоставляет аналитику или любому конечному пользователю приложения «понятный и естественный способ составления отчетов с использованием концепции кубов данных – многомерных объектов данных».

Первоначально проект разрабатывался для Службы государственных закупок Словакии Впервые Cubes был публично выпущен в марте 2011 года . . [ 3 ] Cubes 1.0 был выпущен в сентябре 2014 года и представлен на конференции PyData в Нью-Йорке. [ 4 ]

  • OLAP и агрегированный просмотр (по умолчанию — ROLAP)
  • логическая модель OLAP-кубов в формате JSON или предоставленная из внешних источников
  • иерархические измерения (атрибуты, имеющие иерархические зависимости, например категория-подкатегория или страна-регион)
  • несколько иерархий в измерении
  • арифметические выражения для вычисления производных показателей и агрегатов
  • локализуемые метаданные и данные

Cubes способен обрабатывать большие объемы данных и сложные запросы. Согласно обзору TechTarget, Cubes может обрабатывать «объемы данных в сотни миллионов строк» ​​и «сложные запросы и вычисления, требующие многоуровневого агрегирования и динамического подмножества». Кроме того, в обзоре отмечается, что Cubes хорошо подходит для небольших организаций или групп, которым не требуется сложность и масштабируемость решений OLAP корпоративного уровня. [ 5 ]

Логическая концептуальная модель в Cubes описывается с использованием JSON и может быть предоставлена ​​либо в форме файла, пакета каталогов, либо от внешнего поставщика модели (например, базы данных). Базовыми объектами модели являются: кубы и их меры и агрегаты, измерения и их атрибуты, иерархии. Логическая модель также содержит сопоставление логических атрибутов с их физическим расположением в базе данных (или другом источнике данных).

Пример модели:

{
    "cubes": [
        {
            "name": "sales",
            "label": "Our Sales",
            "dimensions": [ "date", "customer", "location", "product" ],
            "measures": [ "amount" ]
        }
    ]
    "dimensions": [
        {
            "name": "product",
            "label": "Product",
            "levels": [
                {
                    "name":"category",
                    "label":"Category",
                    "attributes": [ "category_id", "category_label" ],
                },
                {
                    "name":"product",
                    "label":"Product",
                    "attributes": [ "product_id", "product_label" ],
                }
            ]
        },
        ...
    ]
}

Операции

[ редактировать ]

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

Пример интерфейса Python:

import cubes

workspace = Workspace("slicer.ini")
browser = workspace.browser("sales")

result = browser.aggregate()

print(result.summary)

Cubes предоставляет нетрадиционный OLAP-сервер с HTTP- запросами и JSON ответов API . Пример запроса для получения «общей суммы всех контрактов с января 2012 г. по июнь 2016 г. по месяцам»:

http://localhost:5000/cube/contracts/aggregate?drilldown=date&drilldown=criteria&cut=date:2012,1-2012,6&order=date.month:desc

Ответ выглядит так:

{
    "summary": {
        "contract_amount_sum": 10000000.0
    },
    "remainder": {},
    "cells": [
        {
            "date.year": 2012,
            "criteria.code": "ekonaj",
            "contract_amount_sum": 12345.0,
            "criteria.description": "economically best offer",
            "criteria.sdesc": "best offer",
            "criteria.id": 3
        },
        {
            "date.year": 2012,
            "criteria.code": "cena",
            "contract_amount_sum": 23456.0,
            "criteria.description": "lowest price",
            "criteria.sdesc": "lowest price",
            "criteria.id": 4
        },
...
    "total_cell_count": 6,
    "aggregates": [
        "contract_amount_sum"
    ],
    "cell": [
        {
            "type": "range",
            "dimension": "date",
            "hierarchy": "default",
            "level_depth": 2,
            "invert": false,
            "hidden": false,
            "from": ["2012", "1" ],
            "to": ["2015", "6" ]
        }
    ],
    "levels": {
        "criteria": [ "criteria" ],
        "date": [ "year" ]
    }
}

Простой интерфейс HTTP/JSON позволяет легко интегрировать отчеты OLAP в веб-приложения, написанные на чистом HTML и JavaScript .

Сервер Slicer содержит конечные точки, описывающие метаданные куба , которые помогают создавать универсальные приложения для создания отчетов. [ 6 ] которым не обязательно заранее знать структуру модели базы данных и концептуальные иерархии.

Сервер Slicer написан с использованием Flask (веб-фреймворка) .

РОЛАП и SQL

[ редактировать ]

Встроенный SQL- сервер платформы обеспечивает функциональность ROLAP поверх реляционной базы данных. Кубы содержат генератор запросов SQL , который преобразует запросы отчетов в инструкции SQL. Генератор запросов учитывает топологию и выполняет только схемы «звезда» или «снежинка» соединения, необходимые для получения атрибутов, необходимых аналитику данных.

Серверная часть SQL использует набор инструментов SQLAlchemy Python для построения запросов.

См. также

[ редактировать ]
  1. ^ Стефан Урбанек — создатель Cubes and Data Brewery.
  2. ^ «DataBrewery/cubes/blob/master/LICENSE» . Гитхаб . Проверено 21 февраля 2015 г.
  3. ^ Государственные закупки Словакии, проведенные Transparency International Словакия.
  4. ^ Обзор Cubes 1.0 на PyData NYC 2014 (видео) .
  5. ^ «OLAP-сервер Cubes с открытым исходным кодом подходит для бизнес-пользователей» . ПоискБизнесАналитика . Проверено 28 марта 2023 г.
  6. ^ Средство просмотра кубов
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0ecd4230986a5e37728d0a1647be548a__1688967360
URL1:https://arc.ask3.ru/arc/aa/0e/8a/0ecd4230986a5e37728d0a1647be548a.html
Заголовок, (Title) документа по адресу, URL1:
Cubes (OLAP server) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)