Знакомство с установкой и предварительным использованием отечественной облегченной BI-платформы CBoard

внешний интерфейс SQL продукт maven

задний план

Из легких BI-инструментов, с которыми мне приходилось сталкиваться, мой любимый — MS Power BI.

Причины лайков грубы и прямолинейны:

  • Он поставляется с облегченным инструментом ETL Power Query, который особенно полезен в сценариях, когда хранилище данных несовершенно;

  • Метод визуального моделирования, перетаскивание, что видишь, то и получаешь;

  • Мощный DAX может не только определять меры, но и писать расширенные запросы, такие как циклы;

  • Встраивайте веб-приложения через Embed, плавно интегрируя их в собственные приложения;

Для личного использования, я думаю, это идеальный инструмент. Однако в корпоративных приложениях текущая версия Power BI имеет ряд недостатков. Для меня самым невыносимым моментом является то, что данные нужно полностью импортировать в файл PBI, прежде чем их можно будет использовать (предусмотрен официальный режим Direct Query, который поддерживает только некоторые источники данных).

Итак, я искал легкий продукт BI с открытым исходным кодом, который прост в использовании. Хотя я пробовал Superset, Metabase и другие известные продукты, я всегда чувствую, что есть различные неудобства. Недавно видел продукт отечественной разработкиCBoard, После простого использования я чувствую, что это просто потрясающе. Хотя в CBoard все еще есть различные недостатки, я все же думаю, что его стоит попробовать.

Подготовительные и монтажные работы

JDK1.8

немного

Maven 3

Проект CBoard должен быть скомпилирован с помощью maven, поэтому сначала установите maven.

# 解压maven
cd /usr/local
tar zxvf apache-maven-3.3.9-bin.tar.gz

# 设置环境变量
vi /etc/profile #增加下列配置

export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${MAVEN_HOME}/bin:${PATH}

# 配置好maven仓库,这里推荐一个阿里云的maven镜像
vi /usr/local/apache-maven-3.3.9/conf/settings.xml

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

PhantomJS 2

PhantomJS 2.1+ требуется для использования функций экспорта и почты Kanban.

# 需要依赖的包,主要是fontconfig-devel
yum install -y gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel

# 用phantomjs去截取中文页面可能会出现乱码的情况,安装字体可以解决
yum install -y bitmap-fonts bitmap-fonts-cjk

# 解压
tar xvf phantomjs-2.1.1-linux-x86_64.tar.bz2

# 创建软链接
ln -sf /usr/local/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs

Скачать исходный код

Используемая версия 0.4.2

git clone https://github.com/yzhang921/CBoard.git
git checkout branch-0.4.2

Инициализировать метаданные

Хранилище метаданных текущей версии (0.4) поддерживает только MySQL и Oracle, поэтому сначала используйте MySQL. Официальный предоставляет два примера файлов для инициализации демо-контента, или вы можете использовать пустую базу данных, чтобы создать ее самостоятельно. На этот раз создан с нуля, потому что демо-библиотека уже опробована.

create database cboard;
use cboard;
source sql/mysql/mysql.sql;

Изменить файл конфигурации

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

  • Информация о подключении к метаданным (в данном случае это библиотека MySQL cboard)
  • Конфигурация почтового сервера (задача таймера для экспорта канбан-досок)
vi src/main/resources/config.properties

Выберите язык отображения платформы по умолчанию — китайский.

vi src\main\webapp\org\cboard\Settings.js
# 修改参数为cn
// CBoard settings
var settings = {
    preferredLanguage: "en" // 可选值en/cn: cn切换中文
}

Поскольку зависимости исходного кода включают драйвер JDBC SQLServer по умолчанию, но этот драйвер отсутствует в общедоступном репозитории Maven. Моя среда использования не включает базу данных SQLServer, поэтому удалите следующие зависимости в pom

vi pom.xml
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.0</version>
</dependency>

Скомпилируйте исходный код

mvn clean package

развертывать

  • Скопируйте CBoard\target\cboard.war в каталог веб-приложений tomcat

  • начать кот

  • Имя пользователя и пароль для входа по умолчанию: admin/root123

Использование CBoard

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

источник данных

CBoard поддерживает различные источники данных (JDBC, Kylin, Saiku и т. д.), но в настоящее время мы чаще всего используем JDBC. Заполните параметры в соответствии со стандартным форматом строки подключения JDBC.Как показано на рисунке ниже, я использую PostgreSQL в качестве хранилища данных.

image-20180718103546409

набор данных

Набор данных в CBoard — Cube. Таким образом, процесс создания набора данных — это также процесс проектирования измерений, уровней и показателей.

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

Шаги для разработки набора данных следующие:

image-20180718105633495

  1. Предоставьте оператор SQL, чтобы получить результат звездной модели, здесь я использую представление напрямую.
  2. Если указан интервал в реальном времени, то этот набор данных будет обновляться автоматически.Если я использую функцию времени в SQL для получения данных в течение 5 минут, мне нужно установить здесь цикл обновления.
  3. Все поля результата запроса, которые являются кандидатами на параметры и показатели.
  4. Измерение поддерживает как одно измерение (например, дату на приведенном выше рисунке), так и иерархическое измерение (например, YQMD на приведенном выше рисунке).Любой, кто понимает OLAP, знает разницу.
  5. В столбце индикатора способ расчета указывать не нужно, то есть предоставляются только поля, а функции агрегации не предусмотрены. В этом также отражается облегченная идея дизайна.Действие по выбору агрегатной функции определяется при ее использовании.Преимущество в том, что количество индикаторов станет меньше.
  6. Необязательные выражения могут выполнять простые вычисления, такие как сумма (A)/количество (B), но не могут выполнять сложные операции, такие как годовые отношения.
  7. Установка общих условий фильтрации очень удобна при последующем построении диаграмм.

графический дизайн

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

image-20180718112334658

Канбан-дизайн

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

На следующем рисунке показан канбан на этапе проектирования и на этапе отображения соответственно, вы можете видеть, как элементы в канбане соответствуют позициям

image-20180718113011108

image-20180718113018611

задача на время

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

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

сожалеть

В версии, которую я тестировал (0.4.2), я также обнаружил несколько недостатков, которые, я надеюсь, можно исправить в последующих версиях.

  • Такие операции, как годовое сравнение, не могут быть заданы непосредственно в наборе данных. Для облегченного BI это требование высокое, и на данный момент я знаю, что есть только два метода MDX и DAX, которые могут напрямую устанавливать сложные индикаторы в слое Cube.
  • Перетаскивание еще не реализовано в канбан-дизайне, поэтому некоторые детализированные макеты реализовать невозможно. Хотя недавно добавленная полноэкранная панель мониторинга смогла реализовать макет перетаскивания (я не использовал эту функцию подробно).
  • Функция экспорта/почты не может быть экспортирована в соответствии с фильтром, установленным на плате. В тесте электронные письма, которые я экспортировал каждый раз, были полным содержимым набора данных, и я не нашел способа экспортировать только часть данных. Я не знаю, неправильная ли у меня поза.