一、大数据形式

流行的大数据技术有Hadoop, Storm, Hive、Spark等,这些都是大集群方案,适合有海量规模数据的巨大企业。实际上,流行的大数据技术通常也源自这类头部互联网企业。很多场景下,数据虽然也很多,但小集群甚至无集群就足够处理,远没多到这些巨大企业的规模,也没有那么多的硬件设备和维护人员。这种情况下,就需要轻量级的大数据技术了。

二、SPL国产数据库来了!

轻量级的大数据技术不多,集算器SPL是其中的佼佼者。SPL是开源的大数据JAVA计算库,不仅代码简洁,架构轻便,易于集成,而且提供了高性能存储格式,支持单机并行计算和多机集群计算,可以充分发挥小集群的硬件性能。

2.1 架构轻便

SPL架构轻便,没有复杂的计算框架,也不依赖外部环境,不需要集群时,只要嵌入SPL的jar包就能直接进行计算,不需要启动服务器。SPL的集群计算也没有沉重的中心体系,只要随便找来几台节点机启动SPL服务,可以是配置不同或操作系统不同的PC/Linux/服务器/工作站/笔记本,然后在任意的机器上执行很简单的集群运算代码即可:

A
1 =[“192.168.1.11:8281”,“192.168.1.12:8281”,“192.168.1.13:8281”,“192.168.1.14:8281”]
2 =file(“Orders.ctx”:[1,2,3,4],A1)
3 =A2.open().cursor@m(Client, Amount,
4 =A3.groups(year(OrderDate),Client;sum(Amount))

这段代码即可以完成集群分组汇总,任务拆分汇总的压力远小于计算节点,可以在任意节点\集成环境上执行。

2.2 轻便的JDBC接口

SPL提供了轻便的JDBC接口,方便被JAVA集成。比如将上面的算法存为SPL脚本文件,在JAVA中以存储过程的形式引用脚本文件名:

…Class.forName("com.esproc.jdbc.InternalDriver");
Connection conn =DriverManager.getConnection("jdbc:esproc:local://");
CallableStatement statement = conn.prepareCall("{call groupQuery(?, ?)}");
statement.setObject(1, "2021-01-01");
statement.setObject(2, "2021-12-31");
statement.execute();
...

在大数据计算方面,SPL也有很多高性能的存储机制和算法支持,比大多数使用SQL的大数据平台的性能表现要好很多,需要Hadoop/Spark集群才能完成的运算在SPL中常常用单机就解决了。

2.3 高性能存储格式

SPL提供了名为组表的高性能存储格式。组表经过精心设计,信息存储密度和计算性能高于普通格式;组表默认支持压缩,擅长存储大数据,尤其适合字段值有重复的情况;除了行存,组表也支持列存,适合对宽表的少数字段进行计算的情况,可以大幅提升压缩比和计算性能:

A
1 =file(“Orders.ctx”)
2 =A1.open().cursor(Client,Amount, OrderDate; OrderDate>=arg1 && OrderDate
3 =A2.groups(year(OrderDate),Client;sum(Amount))

2.4 并行计算

SPL组表支持并行计算,只要在cursor函数后面简单添加选项@m,这样可以充分利用多核CPU的性能优势:

A
1 =file(“Orders.ctx”)
2 =A1.open().cursor@m(Client,Amount, OrderDate; OrderDate>=arg1 && OrderDate
3 =A2.groups(year(OrderDate),Client;sum(Amount))

2.5 游标遍历复

大数据计算中的遍历很耗时,SPL支持游标遍历复用,只须对数据遍历一次,就可以计算出多个计算目标:

A
1 =file(“Orders.ctx”).open()
2 =A1.open().cursor(Client, Amount, OrderDate)
3 =channel(A2).groups(year(OrderDate);max(Amount))
4 =A2.groups(Client;sum(Amount))
5 =A3.result()

2.6 预汇总

和许多OLAP Server类似,SPL组表支持预汇总,可预先将常见的几种汇总结果缓存起来,正式计算时根据实际情况直接输出缓存结果,或对缓存结果进行二次计算,从而提升计算性能。比如下面代码即可利用预汇总的数据进行高速计算:

A
1 =file(“fact.ctx”).open()
2 =A1.open().cgroups(dim1,dim2;sum(fact1),sum(fact2))

2.7 关联计算

遇到较小的维表与大事实表进行关联计算的情况,可以把维表全量加载到每个节点的内存中,把大事实表以集群组表的形式存储在多个节点上,之后用内存的维表与外存的事实表进行关联计算,从而提升计算性能:

A
1 =[“192.168.1.11:8281”,“192.168.1.12:8281”,“192.168.1.13:8281”,“192.168.1.14:8281”]
2 =file(“Orders.ctx”:[1,2,3,4],A1)
3 =A2.open().cursor@m(SellerId, Amount)
4 =file(“Employees.ctx”,A2).open().memory()
5 =A2.join(SellerId,A4,Name,Dept)
6 =A5.groups(dept;sum(Amount))

2.8 大主子表关联计算

遇到大主子表关联计算的情况,可以把主表和子表各自以集群组表的形式存储于多个节点,并按关联字段有序存放,计算时就可以使用有序归并的方式进行关联计算,从而提升计算性能:

A B
1 =[“192.168.1.11:8281”,“192.168.1.12:8281”,“192.168.1.13:8281”,“192.168.1.14:8281”]
2 =file(“orders.ctx”:[1,2,3,4],A1) =file(“orderdetail.ctx”,A2)
3 =A2.open().cursor@m() =B2.open().cursor(;;A3)
4 =joinx(A3:m,ID;B3:c,ID)
5 =A4.groups(m.Client;sum(c.Amount))

在大数据计算方面,SPL还支持大维表集群计算,可自定义任务大小,指定并行数量,允许设计高效的执行路径,支持外存容错和内存容错。此外,SPL还支持多种文件、RDB、NoSQL、大数据数据源,并支持数据源之间的混合计算,经常可以省去大数据计算时麻烦耗时的格式转换和出库入库过程。

三、SPL资料

对该国产数据库感兴趣的,可以看我写的两篇简单入门:
像学Excel一样国产SPL数据库,零基础入门(1)
像学Excel一样国产SPL数据库,零基础入门(2)

根据大家放映和需求,我再看是否继续写点入门教程。

下面是官方资料,感兴趣可以去看看:

  • SPL官网
  • SPL下载
  • SPL源代码

有什么轻量级的大数据技术相关推荐

  1. 《Spark大数据分析:核心概念、技术及实践》大数据技术一览

    本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问云栖社区"华章 ...

  2. 大数据技术学习路线,有信心能坚持学习的朋友,从现在开始吧

    如果你看完有信心能坚持学习的话,那就当下开始行动吧! 推荐下我自己建的大数据学习交流群:199427210,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分 ...

  3. 百分点大数据技术团队:乘风破浪 海外数据中台项目实践

    编者按 踏上一带一路的新丝路,北京百分点信息科技有限公司从2016年开拓海外业务,以大数据技术为基础,结合中国先进的数据治国理念,用数据智能推动社会进步.三年时间,百分点海外团队在非洲某国实施大数据项 ...

  4. 【大数据】企业级大数据技术体系概述

    目录 产生背景 常见应用场景 企业级大数据技术框架 数据收集层 数据存储层 资源管理与服务协调层 计算引擎层 数据分析层 数据可视层 企业级大数据技术实现方案 Google 大数据技术栈 Hadoop ...

  5. 大型网站技术架构:核心原理与案例分析 mobi_大数据技术经典学习路线

    如果你看完有信心能坚持学习的话,那就当下开始行动吧! 点击链接加入群聊[大数据学习交流群]:想要在大数据这个领域汲取养分,让自己壮大成长.分享方向,行动以前先分享下一个大数据交流分享资源,欢迎想学习, ...

  6. 《大数据》杂志——大数据技术发展的十个前沿方向(中)

    大数据技术发展的十个前沿方向(中) 吴甘沙 英特尔中国研究院 doi:10.11959/j.issn.2096-0271.2015034 Ten Fronties for Big Data Techn ...

  7. 《大数据》2015年第2期“前沿”——大数据技术发展的十个前沿方向(上)

    大数据技术发展的十个前沿方向(上) 吴甘沙 英特尔中国研究院 doi:10.11959/j.issn.2096-0271.2015023 Ten Fronties for Big Data Techn ...

  8. 干货,主流大数据技术总结

    作者:justcodeit 背景 数据量不断增加,企业需要灵活快速地处理这些数据. 处理器主频和散热遇到瓶颈,多核处理器成为主流,并行化计算应用不断增加. 开源软件的成功使得大数据技术得以兴起. 互联 ...

  9. 大数据应用导论 Chapter1 | 大数据技术与应用概述

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

最新文章

  1. Goolge新AI算法实时生成3D场景 | 可下载
  2. git是航空母舰:ScrumBoard
  3. 赚钱的这些年(上)苦逼
  4. golang 读写文件的四种方式
  5. 【hta版】获取AppStore上架后的应用版本号
  6. el-table-column中格式化判断数据为空则显示指定内容
  7. c语言作业做出金山打字功能,goldmountain.c
  8. msf实战提权windows_ATTamp;CK实战 | 红队评估一(上)
  9. php 类的实现 完整例子
  10. 《Mahout算法解析与案例实战》一一2.3 测试安装
  11. html5 音频事件,HTML5中视频和音频核心事件的相关研究
  12. python输入输出基本点
  13. 联想g510拆键盘的简单方法_联想G510重点笔记本拆机教程.doc
  14. html图片表情怎么搞,学习使用HTML5/CSS3来制作简单的表情动画
  15. 为什么很多开发都要转测试....详谈....
  16. 1553B为什么要加耦合器?
  17. 软件测试 | 期末复习——软件质量概述
  18. TNS-12555: TNS:permission denied
  19. 在线视频插上“大数据翅膀”
  20. H.266/VVC测试软件VTM

热门文章

  1. JVM | JVM基本结构
  2. 记·Windows挖矿病毒应急响应
  3. ubuntu系统apt安装软件提示dpkg被占用的问题
  4. Go:有向图和无向图的结构实现 (附完整源码)
  5. BugKu 妹子的陌陌 [MISC]
  6. Android 热更新框架
  7. java中的事务是什么_java中事务的理解
  8. Rust 五分钟印象
  9. ZZULIOJ1047
  10. 用Python实现十六进制向十进制转换