задний план
Из легких 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 в качестве хранилища данных.
набор данных
Набор данных в CBoard — Cube. Таким образом, процесс создания набора данных — это также процесс проектирования измерений, уровней и показателей.
В отличие от других платформ BI, CBoard не нужно указывать таблицы измерений и таблицы фактов, а напрямую использует результаты звездообразной схемы, полученные операторами запроса. Как легковесный BI, думаю, этот метод очень подходит.Прямая польза в том, что нет необходимости полагаться на топическую модель слоя хранилища данных, и даже в сценариях без звездной модели можно использовать SQL для получения данных , и корректировать оператор SQL в любое время в соответствии с изменениями спроса.
Шаги для разработки набора данных следующие:
- Предоставьте оператор SQL, чтобы получить результат звездной модели, здесь я использую представление напрямую.
- Если указан интервал в реальном времени, то этот набор данных будет обновляться автоматически.Если я использую функцию времени в SQL для получения данных в течение 5 минут, мне нужно установить здесь цикл обновления.
- Все поля результата запроса, которые являются кандидатами на параметры и показатели.
- Измерение поддерживает как одно измерение (например, дату на приведенном выше рисунке), так и иерархическое измерение (например, YQMD на приведенном выше рисунке).Любой, кто понимает OLAP, знает разницу.
- В столбце индикатора способ расчета указывать не нужно, то есть предоставляются только поля, а функции агрегации не предусмотрены. В этом также отражается облегченная идея дизайна.Действие по выбору агрегатной функции определяется при ее использовании.Преимущество в том, что количество индикаторов станет меньше.
- Необязательные выражения могут выполнять простые вычисления, такие как сумма (A)/количество (B), но не могут выполнять сложные операции, такие как годовые отношения.
- Установка общих условий фильтрации очень удобна при последующем построении диаграмм.
графический дизайн
Дизайн диаграммы очень прост, как и разработка сводной таблицы EXCEL, перетаскивание строк, столбцов, индикаторов и тонкая настройка предварительного просмотра. Вы можете быстро приступить к работе, имея опыт использования сводных таблиц, как показано ниже.
Канбан-дизайн
Я считаю, что в текущей версии Канбан-дизайн является большим недостатком. Поскольку нет операции перетаскивания WYSIWYG, процесс проектирования канбан-доски всегда кажется немного неудобным. Практика CBoard состоит в том, чтобы разделить страницу на строки, а затем разделить столбцы в каждой строке и разместить несколько диаграмм в одной строке, указав ширину столбцов. Этот метод может достичь грубого дизайнерского замысла, но он бесполезен для некоторых изысканных дизайнов.
На следующем рисунке показан канбан на этапе проектирования и на этапе отображения соответственно, вы можете видеть, как элементы в канбане соответствуют позициям
задача на время
Временные задачи могут отправлять содержимое канбан-доски по электронной почте в фиксированное время, что очень практично. Одна проблема, которую я обнаружил, заключается в том, что отправляемые данные канбана игнорируют параметры уровня канбана и используют только параметры уровня набора данных и диаграммы.
Настройка задачи на время очень проста, и здесь я не буду делать скриншоты.
сожалеть
В версии, которую я тестировал (0.4.2), я также обнаружил несколько недостатков, которые, я надеюсь, можно исправить в последующих версиях.
- Такие операции, как годовое сравнение, не могут быть заданы непосредственно в наборе данных. Для облегченного BI это требование высокое, и на данный момент я знаю, что есть только два метода MDX и DAX, которые могут напрямую устанавливать сложные индикаторы в слое Cube.
- Перетаскивание еще не реализовано в канбан-дизайне, поэтому некоторые детализированные макеты реализовать невозможно. Хотя недавно добавленная полноэкранная панель мониторинга смогла реализовать макет перетаскивания (я не использовал эту функцию подробно).
- Функция экспорта/почты не может быть экспортирована в соответствии с фильтром, установленным на плате. В тесте электронные письма, которые я экспортировал каждый раз, были полным содержимым набора данных, и я не нашел способа экспортировать только часть данных. Я не знаю, неправильная ли у меня поза.