从数据整理到业务计算的最佳工具

1 概要

数据整理是为业务人员进一步分析数据或进入 BI 系统前最重要的环节。随着数据时代的到来,数据来源越来越多样 (文件、大数据平台、数据库…),为数据整理带来了很多挑战。在企业里数据通常是由 IT 人员负责,统一组织数据抽取、数据变换和加载数仓的流程,即 ETL,之后再提供给业务人员或可视化系统,数据从 Raw Stage 到 Refined Stage 再到 Production Stage 三个阶段才能最终拿来使用,整个过程纳入自动化管理。然而,实际上这种集中式的自动化处理流程,每增加一个数据需求都要依赖 IT 人员和 ETL 专属软硬件,冗长的数据开发周期、公用的 ETL 软硬件随着需求的增多越来越耗时,都让业务人员不能及时感知数据的变化(比如,销售部门想获得进行了某项促销活动前后的销售情况变化信息)。

imagepng

因此,脱离专属人员和设备,另辟蹊径开展敏捷数据整理,为数据驱动的业务部门提供有力支撑变得越来越重要。即数据从 Raw Stage 到 Refined Stage 后直接被业务人员用于桌面分析或导入 BI 系统后的自助分析。

数据导入 BI 系统后,BI 系统的自助部分只是在多维分析和关联查询这两个层面满足业务需求,从经验上看,最好情况也就能解决 30% 左右的问题而已,剩下 70% 左右或更多的需求,比如找出“销售额占到一半的前 n 个客户,并按销售额从大到小排序”,都会涉及到多步骤有过程的计算。而过程计算完全超出 BI 产品的设计目标,甚至可以不被认为是数据分析,但却是用户特别希望解决的问题。碰到这类问题,通常还是导出数据由业务人员自己用 Excel 等做桌面分析,但是,Excel 并不擅长处理多层次数据的关联运算,而且数据量大了也撑不住,在许多应用场景无法胜任。这类问题还是需要技术人员才能解决,SQL 难以处理有过程计算,Java 做结构化运算代码冗长、不易复用和维护,python(pandas)/R 的定位是数学风格的统计分析,虽然提供了 dataframe 对象用于处理结构化数据,但是还不够像 SQL 那么简单直观,易学易用。

那么,有没有用一种工具,既能敏捷的整理数据,又能轻松应对复杂的业务计算呢?润乾集算器的目标,就是为普通技术人员提供从数据整理到业务计算最便捷的途径,具备以下特性满足这类技术需求。

1. 连接性

能够连接各种数据源

  • 文件(CSV,JSON,Excel…)

  • 大数据平台(Hive,HDFS,MongoDB…)

  • 云平台(AWS Redshift,AWS S3,Azure ADLS)

  • 数据库(Oracle,DB2,Mysql,PostgreSQL,TD…)

  • 应用(Salesforce,Tableau Server…)

2. 易用性

  • 即装即用
    无需安装额外的依赖工具包

  • 分步处理
    避免 SQL 式嵌套和单向式管道处理,每步结果可以随时引用,复杂问题化整为零

  • 易理解、易复用
    易理解的必然是容易学习和掌握的;
    用最少和直观的脚本来解决问题,整理过程一目了然,雷同问题很少改动即可复用

  • 核心操作完备
    数据整理的核心操作是 Structuring、Enriching、Cleaning

  • 调试方便
    不能只靠输出来调试程序,支持单步、断点等高级调试模式

  • 模块化开发
    任务按模块拆分,并能集中整合形成处理流程

3. 大数据
单机处理能力,支持 GB 规模、方便的数据分段、多线程 / 多进程并行计算、外存计算
多机处理能力,支持 TB 规模、灵活的数据分布、分布式计算

4. 集成性
报表集成,已完成的数据整理脚本,可与报表工具集成,作为报表数据源,运行结果直接为报表提供数据。
ETL 集成,已完成的数据整理脚本,可与 ETL 工具集成,被 ETL 调度后自动运行,将临时的数据整理,纳入日常批处理。

2 连接性

imagepng

集算器能从各种数据源中获取数据,根据用户需要仍在不断添加中。

3 易用性

  • 简洁编程环境

网格编程

imagepng

集算器使用网格式编程,和在 Excle 表格里写表达式类似。在单元格里书写集算器脚本 SPL(Structured Process Language),单元格内 SPL 执行的结果赋值给单元格地址,单元格地址作为变量名后续直接引用。代码按单元格顺序,先从左到右、后由上到下。
集算器 SPL 是专门为处理结构化数据设计的 DSL(Domain Specific Language),不像通用语言,目标范围涵盖一切,通过短时间练习就能轻松掌握。分步式处理、中间结果引用,面对复杂需求比 SQL 更容易实现。数据结构简单、语法简洁,比 Python 更容易学习,更容易使用。

调试轻松

imagepng

  • 敏捷数据整理

总览

imagepng

获取

详情参见 从数据整理到业务计算的最佳工具

结构化

  • 清除
  • 提取
  • 转化
  • 组合

详情参见 从数据整理到业务计算的最佳工具

清理

详情参见 从数据整理到业务计算的最佳工具

导出

详情参见 从数据整理到业务计算的最佳工具

4 大数据

详情参见 从数据整理到业务计算的最佳工具

5 集成性

详情参见 从数据整理到业务计算的最佳工具

6 对比 Python 和 SQL

详情参见 从数据整理到业务计算的最佳工具