jydata/README.md

30 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 九源大数据智能分析系统
九源大数据智能分析系统jydata在Apache Spark的基础上构建了一套以性能为中心的高效数据处理系统。
一方面实现了一套基于C++的RDD编程接口和高性能大数据算子库以支持高性能大数据应用的编写
另一方面提出了动静态结合的计算图使得在容错能力上等同Apache Spark。
同时,在数据预处理、图计算、机器学习等领域典型应用上进行了测试,取得了多个指标的性能优势。
该系统目前已支持TPC-DS中所有99个查询且在相同环境下相比Apache Spark SQL达到了3.0倍以上的加速比。
该系统可以降低大数据处理的整体延迟、并可节省大数据处理的成本;
同时能够无缝部署在现有Apache Spark环境中部署简单。因此大数据智能分析系统具有显著的应用前景。
大数据智能分析系统支持x64和aarch64架构已在国产鲲鹏和飞腾服务器完成验证。
![jydata](https://osredm.com/repo/jiuyuan/jydata/raw/branch/master/images/jydata.png "jydata")
jydataSQL通过在C++上实现DataFrame编程接口融合jydata过程式编程框架与原生SQL执行引擎。jydataSQL的原生SQL执行引擎采用代码生成器替换的方法将SparkSQL的代码生成器替换成jydataSQL的代码生成器。具体而言SparkSQL的代码生成器面向的是Tungsten执行引擎而jydataSQL的代码生成器面向的是jydata。这种构建原生SQL执行引擎的方式可以在对齐SparkSQL的查询能力的基础上原生加速SparkSQL。
![jydataSQL_workflow](https://osredm.com/repo/jiuyuan/jydata/raw/branch/master/images/jydataSQL_workflow.png "jydataSQL_workflow")
jydataSQL分成两个模块分别是编程接口与SQL执行引擎。
![jydataSQL_architecture](https://osredm.com/repo/jiuyuan/jydata/raw/branch/master/images/jydataSQL_architecture.png "jydataSQL_architecture")
jydataSQL提供原生的、基于C++实现的DataFrame编程接口整合了jydata引擎提供的过程式编程能力与SQL执行引擎提供的关系型数据分析能力用户可以根据负载特性在通用但难编程的过程式与易编程但有限的关系型之间自由选择。jydataSQL同时还兼容JDBC/ODBC与控制台接口该接口并非jydataSQL实现而是由于复用了SparkSQL的Catalyst优化器从而复用了它的编程接口。
jydataSQL还提供原生的SQL执行引擎。在原有的Spark模块架构中SparkSQL通过Catalyst查询优化器将多种编程接口所编写的程序翻译成物理计划。物理计划在通过SparkSQL代码生成器进行算子融合后执行在Tungsten引擎上。而jydataSQL将原有的SparkSQL代码生成器替换成jydataSQL代码生成器将物理计划整体变换成C++代码后交由jydata引擎执行。jydata引擎包含用C++实现的高性能算子库并提供低开销的Spark整合。
这种架构设计在利用原生编译获得高性能特性的同时保留了SparkSQL的优化器以达成功能复用并保留了Spark核心以支持大数据需要的高可扩展、低开销容错。这使得jydataSQL不仅在性能方面较SparkSQL有优势在功能方面还能与SparkSQL对齐。
## 部署文档
[部署文档](https://www.osredm.com/jiuyuan/jydata/tree/master/ProjectDeploy.md "部署文档")