数据中台建设方案-基于大数据平台

article/2025/9/12 18:07:11

数据中台建设方案

-基于大数据平台-

1数据中台建设方案

1.1 总体建设方案

1.2大数据集成平台

1.3大数据计算平台

1.3.1数据计算层建设

计算层技术含量最高,最为活跃,发展也最为迅速。计算层主要实现各类数据的加工、处理和计算,为上层应用提供良好和充分的数据支持。大数据基础平台技术能力的高低,主要依赖于该层组件的发展。

本建设方案满足甲方对于数据计算层建设的基本要求:

利用了MapReduce、Spark 、MPP 、Zookeeper、Yarn、HBase、Mahout 等开源组件和技术;实现了实现各类数据的加工、处理和计算,为上层应用提供良好和充分的数据支持;并且提供了更高效的列式数据库Hyperbase、跨内存/闪存/磁盘等介质的分布式混合列式存储Holodesk、一体化的机器学习平台Discover和拖拽式图形界面工具Midas。可以给甲方后续建设提供更丰富、更多样性的选择。

1.3.1.1分布式数据仓库

Transwarp Inceptor是一个企业级数据仓库,最下面是存储层接口层,Inceptor可将存储在分布式列存、文本/列存/事务表、Hyperbase、Search、DB2、Oracle中的数据,通过提供的对应驱动层,进入到执行层。在执行层中,Inceptor提供了混合负载调度器SLA Scheduler和分布式执行引擎。在编译层提供了各种编译器和优化器,以及元数据服务。最上层提供完整的交互访问接口和各类安全管控。

Spark是Map/Reduce计算模式的一个全新实现。Spark的创新之一是提出RDD(Resilient Distributed Dataset)的概念,所有的统计分析任务是由对RDD的若干基本操作组成。RDD可以被驻留在内存中,后续的任务可以直接读取内存中的数据,因此速度可以得到很大提升。Spark的创新之二是把一系列的分析任务编译成一个由RDD组成的有向无环图,根据数据之间的依赖性把相邻的任务合并,从而减少了大量的中间结果输出,极大减少了磁盘I/O,使得复杂数据分析任务更高效。从这个意义上来说,如果任务够复杂,迭代次数够多,Spark比Map/Reduce快100倍或1000倍都很容易。基于这两点创新,可在Spark基础上进行批处理、交互式分析、迭代式机器学习、流处理,因此Spark可以成为一个用途广泛的计算引擎,并在未来取代Map/Reduce的地位。

Inceptor可以分析存储在HDFS,HBase或者Holodesk分布式缓存中的数据,可以处理的数据量从GB到数十TB,即使数据源或者中间结果的大小远大于内存,也可高效处理。另外也通过改进Spark和YARN的组合,提高了Spark的可管理性。这些使得Inceptor成为目前真正适合企业生产环境7x24小时部署的Spark衍生产品。同时星环不仅仅是将Spark作为一个缺省计算引擎,也重写了SQL编译器,提供更加完整的SQL支持。

同时,星环通过改进Spark使之更好的与HBase融合。星环基于HBase的产品叫做Hyperbase,通过结合Inceptor,可以为HBase提供完整的SQL支持,包括批量SQL统计、OLAP分析以及高并发低延时的SQL查询能力,使得HBase的应用可以从简单的在线查询应用扩展到复杂分析和在线应用结合的混合应用中,大大拓展了HBase的应用范围。这两个产品的组合使得星环在市场上处于领先地位。

SQL语法支持

标准SQL语句支持

TDH提供ANSI SQL2003语法支持以及PL/SQL过程语言扩展,并且可以自动识别HiveQL、SQL2003和PL/SQL语法,在保持跟Hive兼容的同时提供更强大的SQL支持。减少系统迁移和新应用开发成本。支持SQL2003语法,支持TD SQL语法,支持Oracle PL/SQL和IBM DB2 SQL/PL存储过程。

由于现有的数据仓库应用大都基于标准SQL,对于客户,现有应用也大量使用了PL/SQL,要从现有数据库系统迁移到Hadoop,标准SQL以及PL/SQL的支持显得尤为重要。TDH可以支持标准SQL以及PL/SQL,支持复杂的数据仓库类分析应用,使得从原有数据库系统迁移到Hadoop更为容易,可以帮助企业建立高速可扩展的数据仓库和数据集市。

Inceptor支持以下SQL要求:

支持创建数据库、删除数据库、配置数据库的容量

支持创建表、删除表、增加表字段

支持创建、修改、删除视图CREATE/DROP/ALERT VIEW

支持表数据类型包括所有的结构化数据类型如整形、字符串、浮点型、布尔型、二进制、时间类型等,文档数据类型如XML,JSON,BSON,以及针对图片类文件的LOB类型;

支持创建索引、删除索引;

支持所有类型的表的连接,支持表的集合运算包括求并集、求交集、求差集,支持多层的SQL嵌套查询,支持 IN/Not IN/Exists/Not Exists 等复杂查询

支持字符串、日期等常用操作函数

支持最大值、最小值、平均值等聚合函数,支持常用Oracle函数,

支持select into、insert into、merge into 功能

支持完整的增删改语法,具体包括支持单条或者多条插入,支持单条更新和用子查询更新,支持从表中删除数据,支持Merge Into功能。

支持子查询 (sub-query factoring),包括非同步子查询(Non-correlated Sub-query)和同步子查询(Correlated Sub-query),支持子查询的多层嵌套。

支持在 where clause 子句使用同步和非同步subquery (包括IN 和 NOT IN)

支持在From clause子句中使用非同步subquery

支持 Having clause子句使用非同步subquery

支持 Select list里面使用同步和非同步 subquery

支持 WITH AS 语法,并可在系统运行中实时决定是否选择物理化 WITH AS来加速查询

支持 Inner JOIN, Outer JOIN (Left Outer JOIN, Right Outer JOIN, Full Outer JOIN), Implicit JOIN, Nature JOIN, Cross JOIN,SELF JOIN, Non-equi JOIN(JOIN条件可以是不等式),Map JOIN,left semi join 和 left anti semi join

支持 union, intersect, except操作,并且他们可以作为top level operator

支持 in 、between 以及运算符(+ - * )直接操作 subquery

具备较完整的事务处理支持(包括嵌套事务),支持BEGIN TRANSACTION, END TRANSACTION, COMMIT, ROLLBACK操作,支持自治事务

支持基于预定义维度的数据查询,支持简单查询、组合查询、模糊查询等。

支持标准DDL,DML,事务处理,支持SQL 2003 等,支持SQL子查询及窗口函数。

支持基本数据类型、复杂数据类型、with as 子句、同步子查询、相关子查询、嵌套子查询,窗口函数、聚合函数、类型转换、集合函数、操作符、Oracle PL/SQL过程扩展,HiveQL。

支持数据累加、统计、关联、比对、去重等各种常见的数据分析场景。

支持标准SQL的方式来访问Hadoop生态系统中的其他组件模块,如Hive、Hbase、hdfs中的文件,并能跨数据源做关联查询和分析。

TDH平台全面支持HiveQL、SQL2003标准等,可以有效支持数据仓库中常用的数据立方统计(CUBE/ROLLUP)、窗口聚合统计、嵌套(nested)/同步(correlated)子查询、子表定义和操作,这些功能无法用HiveQL有效实现。

TDH平台提供了对SQL2003标准最全面的支持,最大程度方便用户开发基于Hadoop平台的应用和现有应用的迁移。

Inceptor中对于SQL的相关支持可参见下表:

函数支持

聚合函数

count, sum, avg, min, max, variance, var_pop, var_samp, stddev_pop, stddev_samp, covar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric, collect_set, collect_list, ntile

窗口函数

sum, avg, min, max, count

dense_rank, group_max, group_min, group_sum, rank, row_number

类型转换函数

binary, cast(expr as <type>)

UDTF

explode, inline, json_tuple, parse_url_tuple, posexplode, stack

集合函数

size, map_keys, map_values, array_contains, sort_array

其他功能函数

to_card_15_to_18(15位身份证号转18位)

数据类型支持

基本

数据类型

TINYINT, SMALLINT

INT, INTEGER, BIGINT

BOOLEAN

FLOAT, DOUBLE

DATE, DATETIME, INTERVAL

TIMESTAMP

STRING

BINRAY

VARCHAR, VARCHAR2

DECIMAL,DECIMAL(no.,no.), DEC(no., no.)

NUMERIC(no.,no.),NUMBER(no., no.)

复杂

数据类型

LIST

MAP

STRUCT

UNION

WITH AS语句、嵌套查询支持

WITH AS定义子表

SQL’92的WITH AS语句

WITH DEPT_COSTS AS --查询出部门的总工资

(SELECT D.DNAME,SUM(E.SAL)DEPT_TOTAL

FROM DEPT D, EMP E

WHERE E.DEPTNO = D.DEPTNO

GROUP BY D.DNAME),

AVE_COST AS --查询出部门的平均工资,在后一个WITH语句中可以引用前一个定义的WITH语句

(SELECT SUM(DEPT_TOTAL) / COUNT(*) AVG_SUM FROM DEPT_COSTS)

SELECT *

FROM DEPT_COSTS DC

WHERE DC.DEPT_TOTAL >

(SELECT AC.AVG_SUM FROM AVE_COST AC) --进行比较

嵌套

子查询

子查询在FROM子句中

SELECT employees.employee_number, employees.name

FROM employees

INNERJOIN (SELECT department, AVG(salary) AS department_average

FROM employees GROUPBY department) AS temp

ON employees.department = temp.department

WHERE employees.salary > temp.department_average;

子查询在WHERE子句中

SELECT e.name, e.salary, e.department FROM employess e

WHERE e.employee_id = (SELECT MIN(employee_id) FROM employess)

子查询在SELECT子句中

SELECT employee_number, name,

(SELECT AVG(salary) FROM employees) AS department_average

FROM employees;

子查询在HAVING子句中

SELECT department_id, manager_id FROM employees

GROUP BY department_id, manager_id

HAVING department_id =

(SELECT max(department_id) FROM employees x )

ORDER BY department_id;

子查询、窗口函数、Rollup扩展支持

CORRELATED SUB-QUERY

相关/同步子查询

子查询在WHERE子句中

SELECT employee_number, name

FROM employees AS Bob

WHERE salary = ( SELECT AVG(salary) FROM employees WHERE department = Bob.department);

子查询在SELECT子句中

SELECT employee_number, name,

(SELECT AVG(salary) FROM employees WHERE department = Bob.department) AS department_average

FROM employees AS Bob;

子查询在HAVING子句中

SELECT department_id, manager_id FROM employees

GROUP BY department_id, manager_id

HAVING department_id =

(SELECT department_id FROM employees x

WHERE x.department_id = employees.department_id)

ORDER BY department_id;

窗口

聚合函数

OVER子句

SELECT SalesOrderID, CustomerID,OrderDate, TotalDue,

SUM(TotalDue) OVER (PARTITION BY CustomerID) AS CustomerTotal,

SUM(TotalDue) OVER() AS GrandTotal,

AVG(TotalDue) OVER (PARTITION BY CustomerID) AS AvgCustSale

FROM Sales.SalesOrderHeader OuterQuery

ORDER BY CustomerID;

Group By扩展

Rollup 生成简单的GROUP BY 聚合行以及小计行或超聚合行,还生成一个总计行

SELECT a, b, c, SUM ( <expression> ) FROM T GROUP BY ROLLUP (a,b,c); 会为 (a, b, c)、(a, b) 和 (a) 值的每个唯一组合生成一个带有小计的行。 还将计算一个总计行。

Cube生成简单的GROUP BY 聚合行、ROLLUP 超聚合行和交叉表格行

SELECT a, b, c, SUM (<expression>) FROM T GROUP BY CUBE (a,b,c);

会为 (a, b, c)、(a, b)、(a, c)、(b, c)、(a)、(b) 和 (c) 值的每个唯一组合生成一个带有小计的行,还会生成一个总计行。

多种数据访问形式支持

CLI命令行支持

大数据计算服务提供基于Beeline的命令行终端接口,通过JDBC连接大数据计算服务控制台,用户可以通过Beeline,使用SQL语言,对大数据计算服务中的数据进行检索、查询、关联等分析操作。

标准化API接口

平台对上层应用提供各种开发接口,包括JAVA API接口,REST接口,JDBC/ODBC接口以及R语言等接口。通过这些接口,平台上层应用可以通过平台开放的JAVA API进行二次开发,可以完全支持常见的应用开发框架,如Hibernate, mybatis。平台开放的API完全兼容Hadoop生态圈的所有组件的API,同时提供额外并行算法库的Java API给上层应用调用;平台上层应用开发人员可以通过平台开放的REST API接口,对接平台作业调度工具或HUE图形化界面等,进行作业创建和管理;平台上层应用开发人员可以通过平台开放的标准JDBC/ODBC接口,使用SQL语言交互式查询和分析数据平台的海量数据;平台上层应用开发人员可以使用R语言接口进行交互式数据挖掘探索。

平台提供的主要开发接口描述如下:

数据接口

接口描述

接口使用对象

JDBC/ODBC接口

TDH支持标准的SQL形式访问数据,提供ANSI SQL2003语法支持以及存储过程语言支持。使得复杂的数据仓库、数据集市应用可以快速落地到TDH平台。

上层应用开发人员

REST接口

TDH支持通过REST接口对接Transwarp Manager、HDFS、YARN、Hyperbase、Inceptor、OOZIE、HUE等服务。

上层应用开发人员

Java API接口

TDH支持通过JAVA API编程接口对接HDFS、YARN、Kafka、、flume、sqoop、Hyperbase、Inceptor等服务。

上层应用开发人员

R接口

提供RStudio Web图形化开发界面,通过R语言调用并行算法库,并可通过并行化算子二次开发并行化算法。

上层应用开发人员

SQL开发辅助工具

Waterdrop是为开发人员和数据库管理人员提供的数据库管理工具,它可进行跨平台管理,可作为Inceptor SQL客户端,除了Inceptor还支持并兼容其余多种数据库。它具有有四个功能模块:DatabaseNavigator、SQL Editor、SQL Executor、Data Viewer/Eidtor,分别用来帮助用户实现数据库管理、SQL编辑、SQL执行、数据操作这四项功能。

Waterdrop提供一个类似Eclipse的环境,用户可以通过Waterdrop连接Inceptor并在之上做数据库开发。

Waterdrop的开发环境如下:

操作系统/数据库支持度

Waterdrop支持的操作系统有:Windows(32/64位),Linux(32/64位),Mac OS X(64位),Solaris(32位)

Waterdrop支持连接的数据库有:

Inceptor


http://chatgpt.dhexx.cn/article/Trlsp9oJ.shtml

相关文章

2021-03-04 大数据课程笔记 day43

R星校长 机器学习03【机器学习】 主要内容 数字聚类案例TF-IDF算法微博营销案例逻辑回归算法音乐分类案例 学习目标 第一节 数字聚类案例 1. K-means 找中心点和数据点分类例子 import numpy as np #将每行数据放入一个数组内列表&#xff0c;返回一个二维列表 def loa…

文本挖掘之文本聚类(MapReduce)

刘 勇 Email&#xff1a;lyssymsina.com 简介 针对大数量的文本数据&#xff0c;采用单线程处理时&#xff0c;一方面消耗较长处理时间&#xff0c;另一方面对大量数据的I/O操作也会消耗较长处理时间&#xff0c;同时对内存空间的消耗也是很大&#xff0c;因此&#xff0c;本文…

solr 自聚类实现

参考官网&#xff1a;https://lucene.apache.org/solr/guide/6_6/result-clustering.html 最近用到solr自聚类的&#xff0c;先简单介绍如下&#xff1a; 1、配置文件 主要配置文件必须配置如下内容&#xff1a; <lib dir"${solr.install.dir:../../..}/contrib/cluste…

《学术小白的学习之路 06》自然语言处理之 数据预处理、Jieba分词和文本聚类

本文主要是学习参考杨秀璋老师的博客,笔记总结。 原文链接 文章目录 书山有路勤为径&#xff0c;学海无涯苦作舟&#xff08;行行代码要手敲&#xff09;零、吃水不忘挖井人一、数据预处理&#xff08;分词-清洗-特征提取-权重&#xff09;二、中文分词2.1 中文分词技术2.2 Jie…

kmeans实现文本聚类

需求 拿到的需求是输入n个文本,对文本进行聚类,由于这些输入不能通过历史数据进行训练,所以这个主要就是用无监督学习来解决。 kmeans 谈到聚类就会想到kmeans,它的核心思想是给定的K值和K个初始质心将样本中每个点都分到距离最近的类簇中,当所有点分配完后根据每个类簇的…

PS放大图片而不模糊的操作方法

1、使用ps打开图片&#xff08;原始图片200*200&#xff09;&#xff0c;正常情况下ctrl “” 放大图片&#xff0c;图片会变模糊&#xff0c;如下&#xff1a; 原始图片&#xff1a; 放大之后&#xff1a; 明显模糊了。 2、右键图层&#xff0c;选择复制图层…

使用PS制作放大镜效果

&#xff08;撰写时间&#xff1a;2019年5月7日 作者&#xff1a;陈景鸿&#xff09; PS的的放大镜也就是将模糊的东西能够看得清楚&#xff0c;也是一款神奇的东西&#xff0c;制作放大镜有两种效果&#xff0c;一种是将图片发大&#xff0c;一种是将图片变得清晰&#xff0c…

使用PS中的创建剪贴蒙版来做放大镜

使用PS中的创建剪贴蒙版来做放大镜 &#xff08;写作时间&#xff1a;4月15日 作者&#xff1a;陈铭军&#xff09; 首先随便找一张建筑物照片导入PS&#xff0c;其他照片也可以做。 然后“Ctrl”“J”或者鼠标右键点击背景图层复制两次。激活背景副本&#xff0c;在上方的菜…

ps一些基本操作

调整图片、图层大小 点击矩形 画出需要缩小/放大的矩形框ctrlt&#xff0c;缩小/放大矩形框点击图像—画布大小&#xff0c;修改画布大小

ps基础 工作区面板 放大镜 抓手 移动工具

20191110笔记 ps 又叫做编辑软件又称为 编辑对象:像素图 点阵图 位图 ps基础-设置工作区 工作区 是设计师在使用ps时自定义的工作面板组合,方便提升工作效率 工具栏 选项栏 色板 历史纪录 颜色 图层 ps基础-图片的放大 缩小 切换 移动 放大镜 ctrl 放大镜 ctrl-…

ps把图片无损放大的方法

工作中我们当遇到图片编辑修改方面的问题时&#xff0c;我们都习惯用PS软件进行处理。如果想要将图片放大&#xff0c;第一想到的也是用PS软件&#xff0c;但是PS放大后的图片会变得很模糊&#xff0c;于是很多人问&#xff1a;ps怎么把图片无损放大&#xff1f; 其实PS是没有…

ps 做放大镜效果

1 随意打出你想做出效果的文字或应用图片 2.复制一层文字图层&#xff0c;将复制的文字图层栅格化后用椭圆选框工具在你想要放大的地方画一个正圆 3.滤镜——扭曲——球面化 参数可以根据自己调节 4.再新建一个图层&#xff0c;在原来的正圆选框上 编辑 ——描边&#xff0c;…

ps怎么放大图片保持清晰度?

作为一名上班族学会PS软件是非常有必要的&#xff0c;可以帮助我们将图片改成我们需要的样子&#xff0c;如格式转换&#xff0c;修改图片大小等。但是大家有没有发现&#xff0c;使用PS软件将图片放大后&#xff0c;图片会变得很模糊&#xff0c;不像原图那样清晰了&#xff0…

ps图片放大后模糊怎么办?

ps图片放大后模糊怎么办&#xff1f;说到如何将图片放大&#xff0c;相信大家想到最多的方法就是用ps软件进行放大&#xff0c;ps是一个比较强大的图片编辑软件。但是大家同样也发现了一个问题&#xff0c;就是用ps将图片尺寸进行放大后&#xff0c;图片的清晰度会降低&#xf…

ps图像放大后变清晰和文字模糊变清晰

1.使ps图像放大后变清晰 正常直接拉伸图片&#xff0c;图片会变得十分模糊 点击图像&#xff0c;重新采样改为保留细节2.0 减少杂色拉到 100 然后图片就会变得清晰 2.使ps中文件的文字变清晰 首先ctrlshiftu去色&#xff0c;然后用笔分别吸取黑白两个地方就能调回来 但是文字…

制作局部区域放大效果(每天一个PS小项目)

原图如下所示&#xff1a; 按住Ctrl点击通道中黑白放大镜&#xff0c;将放大镜选出来&#xff1a; 按CtrlC复制&#xff0c;点击猫的面板&#xff0c;按CtrlV粘贴&#xff1a; 按CtrlJ复制一个背景&#xff0c;点击放大镜图层&#xff0c;按CtrlT更改尺寸&#xff1a; 选择…

【Ps问题】PS旋转功能会让图片乱飞的解决方法

问题描述&#xff1a;PS软件的旋转功能【R】每次旋转后图片都不在视口中心 解决办法&#xff1a; 首选项-工具-勾选过界 这样就会使旋转以窗口中心为圆心&#xff0c;不会乱飞

Photoshop:PS如何实现放大图片不模糊

Photoshop&#xff1a;如何实现放大图片不模糊 设备&#xff1a;Mac&#xff08;11.6&#xff09; 工具&#xff1a;Photoshop&#xff1a;cc2021 开发需求&#xff1a;实现放大图片不模糊 正如博主简介中写的&#xff1a;不会画画的游戏策划不是一个好的程序猿&#xff01…

ps图片放大模糊怎么变清晰?

ps图片放大模糊怎么变清晰&#xff1f;作为一名职场人士&#xff0c;或多或少都会用ps进行一些简单的操作&#xff0c;例如修改图片尺寸&#xff0c;更改图片的格式等等&#xff0c;我想大家在用ps修改图片尺寸大小时都遭遇过一个相同的问题&#xff0c;就是将图片放大后出现变…