BI平台对比
Tableau:
- 数据可视化:Tableau以其强大的数据可视化功能著称,能够处理百万级数据,具有传统内存中解决方案的速度优势。
- 数据抓取和处理能力:虽然Tableau的数据可视化功能强大,但在数据抓取和数据处理能力上较为欠缺,处理速度较慢,需要依赖其他ETL工具。
- 功能:Tableau以其强大的数据可视化和分析能力著称,支持多种图表类型和复杂的数据源连接。其拖拽式操作和丰富的图表库使得非技术背景的用户也能轻松创建动态交互式图表和仪表板。
- 易用性:Tableau的操作界面直观,用户可以通过拖拽操作进行数据分析,全球范围内的用户社区提供了丰富的资源和案例分享。
- 数据连接能力:支持多种数据源,包括关系型数据库、云服务和电子表格等。
- 可视化效果:Tableau的可视化效果在行业内是标杆性的存在,能够轻松创建从简单图表到复杂可视化大屏的各种图表。
- 用户评价:广受数据分析师的欢迎,尤其在市场营销和数据分析领域表现优异
帆软(FineBI):
- 数据可视化处理和智能分析:FineBI通过简单的拖拽操作即可实现各种维度和形式的分析,支持多种数据源和中间件独立部署或嵌入式部署,功能强大且易于使用。
- 多端适配性:FineBI支持传统电脑端、移动端和pad端的使用,满足不同场景下的需求。
Smartbi:
- 智能化分析:Smartbi在最新版本中加入了数据模型、指标模型、自助分析和对话式分析等功能,具备较高的智能化水平。
- 兼容性和扩展性:Smartbi支持多种数据源和数据仓库,能够进行复杂的关联分析和多维
有篇文章对5家国内BI厂商做了功能一览
多种数据源支持
对多数据源的支持成为了基本要求
1、要支持MySQL、Oracle、等SQL数据库。
2、要支持大数据,如Hive、Presto、CK、SparkSQL等。
3、要支持文件,csv、txt、excel等。
垮数据源关联分析
1、手工在Excel软件VLOOKUP关联两张sheet
这个是每个业务人员的基本功,在数据量较小时适用。
-
lookup_value:要查找的值。例如,如果要查找某个员工的姓名或编号,这个值就是姓名或编号。
- table_array:查找的区域。这个区域包含了你想要查找的数据以及你想要返回的数据。通常是一个表格或数据范围。
- col_index_num:返回的列数。这是你想要从查找区域中返回的列号。例如,如果查找区域的第一列是姓名,第二列是工资,而你想要返回工资,那么列号就是2。
- range_lookup:查找方式。如果设置为TRUE或省略,VLOOKUP将执行近似匹配,这可能返回多个值中的第一个。如果设置为FALSE,VLOOKUP将执行精确匹配,只返回完全匹配的值
2、入仓到同一数据源再进行关联
需要平台和开发支持,如定时将不同数据源的数据(mysql/oracle等)入仓到大数据,再进行关联查询并创建结果表。
Tableau推出的自助垮数据源联接
先看看Tableau手册的-创建联接
-
若要创建联接,请连接到相关的一个数据源或多个数据源。请参见连接到数据。
这些可以位于同一数据源中(例如数据库中的表或 Excel 电子表格中的工作表)或不同的数据源中(这称为跨数据库联接)。如果使用跨数据库联接合并表,Tableau 会对画布中的表和数据网格中的列进行着色,以向您表明数据所来自的连接。
注意:并非所有数据源都支持跨数据库联接,包括已发布的 Tableau 数据源。若要合并已发布数据源,请编辑原始数据源以原生包含联接或使用数据混合。
-
将第一个表拖到画布上。
请注意,如果此时拖出第二个表,将形成关系。
-
从菜单中选择“打开”或双击第一个表以打开联接画布(物理层)。
双击关系画布上的表将打开联接画布
-
双击或将另一个表拖到联接画布。
如果下一个表完全来自另一个数据源,请在左侧窗格中的“连接”下,单击“添加”按钮(在 Web 制作中为
)以将新连接添加到 Tableau 数据源。选择该连接后,将所需表拖到联接画布。
-
单击联接图标可配置联接。通过从数据源中使用的可用表之一中选择字段、选择联接运算符并从添加的表中选择字段来添加一个或多个联接子句。
注意:通过单击将鼠标指针悬停在联接子句右侧时显示的“x”,您可以删除不需要的联接子句。
-
完成后,关闭联接对话框和联接画布。
Tableau垮数据源联接的评价
1、对业务人员使用非常直观友好。
2、有服务端版和客户端版。
3、关联查询功能强大。
比如远程大数据一张表,关联本地上传一个csv文件,选择内关联,选择好左右字段甚至函数组装好where,关联计算并输出一张表格,还可以再进行group by+having汇总计算。
4、数据都在内存中计算,对资源要求要。
在互联网、电商场景,经常需要分析到SKU等明细级别,此时服务器资源不够用。
海量版垮数据源自助联接方案设想
1、数据连接要支持到Tableau现有功能
多个表进行数据连接,支持内连接、左连接、右连接、外连接。
表要建立数据字典,给用户的表名和字段信息都是中文。
条件支持自选择。
2、大数据API-指定sql运行大数据etl任务创建表
public Result doEtlJob(String sql, int timeout, int retryCount)
3、大数据API-指定表名和数据创建表
public Result doUploadData(String tableName, List<List<Object>> columnNames, List<List<Object>> dataList)
4、大数据API-指定表名和文件创建表
public Result doUploadData(String tableName, List<List<Object>> columnNames, File file)
5、大数据API-指定SQL执行查询
public Result doQuery(String sql, int timeout, int retryCount)
6、SQL解析工具类
(1)解析表结构
// 根据数据源名称+表名解析表结构
public List<TableColumn> descTable(String dataSourceName, String tableName)
(2)根据配置动态生成查询SQL
public static String genSql(String tableName, List<String> selectColumns, List<TableWhere> where, List<String> groupBy, List<String> orderBy, String[] limit)
例如下图,可以拉选配置筛选条件指定等于某个值。
效果:
select t.vendor_code, t.vendor_name / select *
from po_vendor
where vendor_name (= != in not in is null) value
and vendor_code (= != in not in is null) value
海量版垮数据源联接交互流程
界面可以参考Tablea,Teable是内存计算版,海量数据使用异步在大数据计算,用户在界面提交后,应该马上返回“已提交成功,任务ID: x”,并发送一个消息。然后由定时任务去订阅消息并处理SQL。
1、报表执行查询并创建临时表
2、上传excel并创建临时表
3、表关联生成SQL查询并创建临时表
作者:黎法良