精华内容
下载资源
问答
  • 近年来,大数据概念早已在国内银行业中大规模普及,越来越多的企业开始尝试借助大数据技术的力量,来推动企业内部与外部的创新。但是,由于大数据与传统技术的理念与...近线数据服务平台,是大数据技术在银行业中的一
    iStock_000049758618Medium-690x360.jpg

    近年来,大数据概念早已在国内银行业中大规模普及,越来越多的企业开始尝试借助大数据技术的力量,来推动企业内部与外部的创新。但是,由于大数据与传统技术的理念与技术差异,导致很多银行和企业在实施大数据战略的过程当中,遇到各种各样的问题。因此,如何使用正确的方法和步骤运用大数据技术,是众多金融服务机构在试水大数据技术时首先遇到的难题。

    近线数据

    近线数据服务平台,是大数据技术在银行业中的一类平台性应用。其核心的理念在于,以大数据技术为基础,将全量数据从离线与近线系统中统一复制到近线平台,使得该平台保存企业中全量核心数据。近线数据服务平台的业务价值目标包括“离线数据近线化”与“近线数据瘦身”。

     

    离线数据近线化:银行中的离线数据一般包括2年或以上的历史数据。当这些数据不需要被在线或近线系统访问时,它们会被从生产库卸载并被存放于磁带或光盘库等静态介质中。一般来说,当行内人员需要访问这些数据时,需要花费大量的精力和时间找到并将这些数据恢复到临时访问环境。而离线数据近线化,则是借助大数据海量存储空间以及对这些数据的计算能力,将原本无法被直接访问的数据,以相对低廉的成本做到近线化,对行内行外人员提供历史数据查询检索服务。

    近线数据瘦身:很多银行的近线数据存储在ODS或数仓中。而随着业务规模的扩大,企业一方面需要不断对近线数据进行归档,另一方面需要不断对这些系统进行扩容。而以传统关系型数据库为基础的ODS或数仓的扩容成本相当高昂,因此,以大数据分布式计算存储为平台,将部分ODS或数仓的功能转移至近线数据平台,可以实现对当前ODS或数仓系统的瘦身。

    除了“离线数据近线化”与“近线数据瘦身”两大业务目标外,近线数据服务平台的搭建围绕着初期投入小、见效快、以及安全可靠三大目标建设。

     

    近线数据平台

    近线数据服务平台的整体架构包括“近线数据归档区”、“固定模式访问区”、“自由查询数据区”以及“数据加工调度区”四大模块。

    近线数据平台.png

    典型近线数据平台架构图

    近线数据归档区:其中,近线数据归档区作为外部数据在近线数据平台中的拷贝,除了作为数据源提供给数据加工调度区进行加工外,还承载着对关键业务数据的归档功能。业务数据一旦进入近线数据归档区,便无法通过任何方式进行改变。因此,该区域可以替代传统磁带的部分功能。

    数据加工调度区:数据加工调度区作为另外三大数据存储区的衔接层,一方面负责对近线数据归档区中的数据进行加工、清洗、去范式化等操作,以提供给固定模式访问区进行定制化查询;另一方面则负责将自由查询数据区中不存在、或被删除的数据在访问时动态地实时复制到指定区域。

    固定模式查询区:固定模式查询区则提供对银行内外部应用的固定查询。例如,对于ECIF、回单等模式较为固定的查询业务,完全可以通过数据加工调度区将原始归档数据定期去范式化并构建索引,来满足银行对历史数据在线检索查询的需求。去范式化后的宽表数据可以被存储在固定模式查询区,以独立的硬件和网络满足高并发对外业务的查询功能,保证自由查询与离线分析对该区域的业务不会造成任何影响。

    自由查询数据区:自由查询数据区则是近线数据归档区的子集,包含近线数据归档区内全部表的定义以及每个表的全部或部分数据。该区域的数据可以开放给行内用户进行自由查询分析,并通过数据加工调度区动态识别需要访问表的数据范围,并动态地将不存在于自由查询区内的数据从近线数据归档区进行复制。该区域与近线数据归档区进行隔离的目的在于,确保任何数据访问均不会对已经归档的数据造成影响。同时,当该数据区空间占用较多时,可以通过脚本将不常访问的表中的数据清除以释放空间。

    通过近线数据服务平台的归档与自由查询区,企业可以实现对传统离线与近线数据的近线化与瘦身操作。同时,固定模式查询区甚至可以将这些数据提供给银行对最终用户的应用。譬如,银行可以从这四个方面实现以近线数据平台为基础的应用创新:

    1)离线数据近线化:业务系统数据同意归档、历史交易流水在线查询等;

    2)自由查询:行内自助报表系统、司法查询系统等;

    3)生产系统瘦身:数仓与ODS瘦身、T+0用户实时资产视图;

    4)分布式影像平台:影像凭证管理、远程开户录像等。

     

    SequoiaDB巨杉数据库,结合Spark大数据技术,能够满足近线数据服务平台端到端的搭建工作。SequoiaDB提供的分布式框架满足分布式、高可用、高性能、易维护等特性,同时其多维分区、灵活索引、双引擎内核、以及标准SQL支持等特性为企业级近线数据服务平台奠定了最佳的数据存储与计算基础。




    展开全文
  • 国际科学数据服务平台 - csdb

    千次阅读 2014-01-15 12:20:49
    国际科学数据服务平台 http://datamirror.csdb.cn/ 登录| 注册| 科学数据库 - csdb" TITLE="国际科学数据服务平台 - csdb" /> 首页 产品列表 数据检索 数据服务 共享成果 ...
    国际科学数据服务平台

    “第一届用户大会”成功召开

    国际科学数据服务平台 <wbr>- <wbr>csdb
    镜像数据简介
        本平台引进的国际原始数据资源。目前已经引进的数据资源包括
    MODIS、 LANDSAT、 EO-1、 SRTM、 ASTER GDEM、 NCAR,根据... 详细>>
    国际科学数据服务平台 <wbr>- <wbr>csdb
    国际科学数据服务平台 <wbr>- <wbr>csdb
    数据产品简介
        在镜像数据及数据中心存档数据的基础上,利用国内外权威的数据处理方法或数据中心自行研发的数据处理方法加工生产... 详细>>
    国际科学数据服务平台 <wbr>- <wbr>csdb
    国际科学数据服务平台 <wbr>- <wbr>csdb
    数据模型简介
        面向多领域科研需求,基于通用的数据模型,充分利用本站超级计算资源,为用户提供可定制的数据产品加工,用户通过在线定制.. 详细>>
    国际科学数据服务平台 <wbr>- <wbr>csdb
    国际科学数据服务平台 <wbr>- <wbr>csdb
      更多>>
    国际科学数据服务平台 <wbr>- <wbr>csdb
    更多>>
    国际科学数据服务平台 <wbr>- <wbr>csdb
    更多>>
    常见问题网站地图使用说明意见反馈
    版权所有:中国科学院计算机网络信息中心·科学数据中心 备案序号:京ICP备05036949号 
    地址:北京市海淀区中关村南四街4号 邮编:100190 
    联系电话:010-58812534 E-Mail:data@cnic.cn
    展开全文
  • 工业互联网:4 数据平台

    千次阅读 2018-11-25 15:53:33
    虽然提到物联网,很多人脑海中第一个闪现的是传感网络,但实际上,如果你读过前几章就会发现,实际上所谓物联网,获得表征物体的数据是关键,而表征物体数据的获取办法很多,并不见得要另外加装传感网络——这一点在...

    4    数据平台
    为什么会有物联网的数据平台呢?从某种程度上说,数据平台才是最具物联网特色的东西。虽然提到物联网,很多人脑海中第一个闪现的是传感网络,但实际上,如果你读过前几章就会发现,实际上所谓物联网,获得表征物体的数据是关键,而表征物体数据的获取办法很多,并不见得要另外加装传感网络——这一点在工业领域尤为明显。这是因为,因为工业领域自动化控制的需求,实际上很多关于机器的数据已经被获取了,只不过,这些数据暂时还局限在直接控制机器的控制系统中,没有被更大内涵的系统所用于更广泛的目的罢了。既然物联网的而核心在于表征物体的数据的使用,那么数据平台位于核心地位也就顺理成章了。

    数据平台还有一个使其成为物联网核心商业模式和产品形态的潜质:数据平台是最容易产品化的。没错,虽然不同的业务对数据的最终利用方式千差万别,而不同行业现场对数据的采集获取手段也千差万别,但是数据的获取、存储和基本处理逻辑却是惊人的相似。

    4.1    数据收发方式
    在第1章中,我们把数据分为以下几类,从平台的角度上看,其手法方式一般也不同。
    4.1.1    时序数据
    时序数据是物联网数据平台的基本数据,也是物联网之区别于普通的面向人的联网应用的地方。时序数据的特点是,一般是均匀的数据流。也就是说,对于一个物体、设备,一旦开始发送数据,则一般是按照一定的采样周期发送的均匀、持续的数据。但是这并不是说物联网就没有一般面向人的互联网那种数据峰值-估值的变化。就以工业互联网为例,因为多数工厂是白天工作,所以很明显白天的日常工作时间端,比如说从8点到18点之间,数据处于一个高位的平台,因为一般这个时候设备都在上电运行。但是这种高位相对难以出现尖峰,因为设备时序数据一般都是均匀采集并发送到平台的。但是这也造成了另外一个问题:类似电网的峰谷差,我们在构建数据平台的时候,计算能力和带宽也必须按照预测的峰值来设计。对于油气管道之类的物联网,这个数据峰谷差可能基本上是不存在的,因为油气、城市水网等系统是全天24小时都处于工作状态的,其相关的数据也一直在向平台提交,而且和水网、油气的负载没有关系。但是对于离散制造业,一般是白天大家都在加工,所有的机器都在提交数据,而晚上只有少部分工厂在轮班工作,才会提交数据。总之,在构建数据接收模块乃至整个服务端的时候,物联网系统所服务的业务和客户的特点需要加以考虑。

    时序数据在出现的时候一般是一个均匀的数据流。借鉴实时数据库的实现方式,我们在接收过程中要考虑数据在内存中的缓存,以防因为云端系统的算力问题丢失数据。所幸的是,目前大多数数据库都具有这种缓存能力。

    另外需要注意的一点就是数据的重发。数据重发是数据平台和设备端之间的互动。当网络通道出现问题的时候,设备端可能会选择丢弃数据,但更好的实现方法也许是在就地存储未能发送到服务端的数据,并在网络信道畅通后集中发出。这样的策略虽然无法缓解数据的实时性所面临的挑战,但至少保证了数据在时间轴上的完整性。考虑到物联网服务端很多应用四基于统计和分析的,这种对数据完整性的保障经常是值得投资的,甚至是必须的。

    4.1.2    事件数据
    类似设备告警等数据是偶发的,虽然也带有时间戳,但是其一般没有特别的规律。此类数据的接受对及时性和完整性都非常强调,因为一个没能及时收到或者干脆被丢失的报警数据可能是致命的。当然也未必需要过度地追求,因为很多场合下并没有那么糟糕:现场的自动化控制系统还有第一道防线。也正是如此,在设计自动化系统的时候,必须要注意不能因为有更上一个层次的物联网系统而有任何的疏忽;而将原本属于自动化系统的安全保障工作转移到物联网系统中,更是不可原谅的错误。

    4.1.3    指令数据
    指令数据主要是从服务器发送到设备的。可能并不带时间戳,但是建议最好是带有,因为有时指令的有效性和时间可能有关系:互联网并没有保证数据包按照你预想的次序到达的能力,如果你的应用中很强调这一点就要自己建立识别指令次序或指令发出的时间的机制,以便抛弃过期的指令,或者按照正确的次序来执行指令。

    4.1.4    文件数据
    文件类数据是双向的,但是一般不强调及时性。只要文件被完整无误地传递即可。FTP等现成的协议很多,所以此类数据一般并不需要过多关注。但是无论如何,“无误”还是要关注的,起码的校验,如MD5,还是有必要的。

    4.1.5    媒体数据
    实际上为了配合组建完整的业务平台,有时还要加上媒体数据。主要是视频、音频的采集。此类数据,尤其是视频数据,实际上已经有很完善的解决方案。但是之前一般是在安防等领域应用的,并不太被理解为物联网数据。但是最近几年,随着AI识别等技术的应用,从视频图像中自动识别设备状态也成为一项设备故障诊断技术,所以此类数据也开始和物联网平台发生关联。比如某数控机床厂商开发的关于断刀的在线诊断,就是在加工中心中附加一个摄像头采集实时视频上传到服务器,由服务器判断是否发生了刀具断裂的事故。一旦系统判定发生断刀,会立即向加工中心发送停机指令以防止故障影响的进一步扩大。

    4.2    数据存储
    当然是采用各种数据库来实现。此时的选项其实很多。无论是SQL类关系型数据库还是NoSQL类菲关系型数据库都有自己的用武之地。典型的情况是将二者结合,两个数据库分别存储不同的数据类型,以期达到整个系统的最优化。物联网业务目前在各类企业中都还处于较新的业务,所以不确定性较大,数据库内部架构也可能会因此发生持续的调整。因此在设计关系型数据库表结构的时候要有一定的预见性,或者采用某些对此类情景有设计考量的数据库。

    4.3    数据模型
    为什么要提到数据模型?主要是我们要考虑到进一步的数据整合、交换和业务开发的过程。实际上数据模型在非物联网业务中已经开始了应用,因为大家都在力图寻找一种可以对不断变化的业务具有一定自适应能力的系统。而一个具有一定自解释能力的数据模型对开发普适的数据处理工具至关重要。以制造业为例,OPC UA协议就包含了一个可以自定义数据模型的机制,但是遗憾的是其并没有为各行业提供标准或者流行的模型。这种模型一般是某个企业、行业协会甚至国家标准组织来定义并在一定范围内执行的。而MTConnect协议则自带了一个建议的标准的机床模型,使得开发机床联网系统的时候,做一个可以对接不同厂商的机床的系统成为一种可能。

    数据模型方面的工作迄今为止还是需要各行业不断努力去完善。

    4.4    数据整合
    数据整合的发起者实际上是上层的应用平台的各类业务逻辑,虽然人们因为这个过程叫做数据整个而将其归为数据平台。当然,这么做的原因也因为数据整合虽然与具体的业务逻辑息息相关,但实际上是可以抽象为各种可配置的算法和自动触发的服务的。市场上这种面向开开发者的物联网平台,其核心技术之一,如果不是最核心的技术的话,就是各种数据自动处理的引擎。这些引擎有的可以在人机界面上进行配置,类似工业自动化中广泛使用的组态软件,也有的只是一系列的API,需要采用某种开发语言去调用。而后一种情况下,开发者往往会在应用平台为数据整合提供一个自己定义的配置界面。

    4.5    数据平台的计费
    较早出现的数据平台一般采取虚拟机销售的方式。所以实际上是按照虚拟机的配置来收费的。虚拟机上的服务无论你是否使用、使用的量如何,并不影响费用的计算。而随着可配置化的数据整合引擎的出现和各类功能的服务化,越来越多的物联网平台开始采用按照服务收费的,更加细的粒度的收费模式。
    4.6    数据平台案例
    实际上,很多互联网背景的物联网平台基本上都是数据平台模式。如Amazon的AWS云。国内一些电信运营商的物联网平台,如中国移动的OneNET也是。此类业务的运营主体的特点是自身并没有可最终交付的物联网业务,但是具有网络带宽、计算能力等资源,另外业务层面追求规模,所以一般会走这条道路,也往往只能走这条道路。

     

    上一篇:工业物联网:3 网络层(2)

    下一篇:工业物联网:5 业务平台

    展开全文
  • 基于PB级海量数据实现数据服务平台,需要从各个不同的角度去权衡,主要包括实践背景、技术选型、架构设计,我们基于这三个方面进行了架构实践,下面分别从这三个方面进行详细分析讨论:一、实践背景该数据服务平台...
        

    基于PB级海量数据实现数据服务平台,需要从各个不同的角度去权衡,主要包括实践背景、技术选型、架构设计,我们基于这三个方面进行了架构实践,下面分别从这三个方面进行详细分析讨论:

    一、实践背景

    该数据服务平台架构设计之初,实践的背景可以从三个维度来进行说明:当前现状、业务需求、架构需求,分别如下所示:

    二、当前现状

    收集了当前已有数据、分工、团队的一些基本情况,如下所示:

    1、数据收集和基础数据加工有专门的Team在做,我们是基于收集后并进行过初步加工的基础数据,结合不同行业针对特定数据的需求进行二次加工的。

    2、数据二次加工,会集成基础数据之外的其它有业务属性的数据,比如引入第三方POI数据等。

    3、原始数据每天增量大约30~40TB左右。

    4、计算集群采用Spark on YARN部署模式,大约400个节点。

    5、所有数据各种属性、行为信息,都是围绕大约40亿的移动设备ID进行很多倍膨胀,比如每天使用微信App的设备的行为信息。

    6、参与该平台的研发人员,对实际数据业务需求了解不会非常深入,因为跨多个行业及其不同数据需求的变化较快。

    三、业务需求

    另外,实现的该数据服务平台,需要满足当前的基本数据业务需求,主要包括使用平台的人员特点,需要支撑的各种基本数据需求,经过梳理,如下所示:

    1、平台初期面向内部业务人员使用,几乎没有技术背景。

    2、40亿+的移动设备大表,包含各类设备ID及其设备属性,需要提供批量匹配功能:给定一类或多类设备ID的批量文件,从大表中获取到匹配上的设备信息(ID及多个属性信息)。

    3、对PB级数据进行各种快速探索,输入各种过滤条件,如地域(国家/省/市/区)、地理围栏(地图圈选/上传文件/直接输入)、使用的App及分类(安装/活跃)、时间范围(日/周/月)、POI及分类等等,理论上不限制条件个数,经验值最多在5~6个左右。

    4、输出主要包括明细信息、多维度统计(画像)、图表(热力图)等。

    5、平台提供的数据服务,都是批量模式的计算,所以需要为用户提交的数据作业,给予准确的状态变化反馈。

    6、有小部分面向开发人员的需求:将在数据平台Web系统操作进行的数据匹配、提取、探索等操作,进行服务化以供其他系统中的服务调用。

    四、架构需求

    在未来业务模式变化的情况下,能够非常容易地扩展,并尽量复用大部分核心组件。同时,还要面向开发人员复用数据平台的数据业务服务,以增加平台利用率,间接产出数据价值。考虑如下一些当前需要以及未来可能演变的架构需求:

    1、定义作业和任务的概念:作业是用户为满足一次业务需要而提交的数据获取请求,最终输出想要的数据结果;任务是为满足输出一个作业结果,从逻辑上拆分成的基本计算单元。一个作业由多个任务的计算组合而完成。

    2、对于一个作业输入的多个过滤条件,如果作为一个单独的计算任务,根本无法在PB量级的数据上输出结果,所以需要将作业拆分成多个任务进行分别计算,最后输出结果。

    3、对用户作业状态的管理,具有一定的业务含义,基本不能在公司级别进行复用,具体涉及内容包括:排队、组成作业的任务列表管理、作业优先级管理。

    4、任务是最基本的计算单位,设计能够协调整个任务计算的架构,可以分离出任何业务状态,实现为无状态的任务计算架构,在公司级别可以复用,比如大量基于Spark的计算可以抽象为任务计算。

    5、由于时间范围条件跨度需要支持几年(如1~3年),计算依赖的数据量级在TB甚至PB级别,所以一定要通过预计算的方式压缩数据,并能提供支持快速计算的方式。

    6、预计算可以使用Spark计算集群,每天通过控制计算所需资源进行大规模ETL处理。

    7、ETL处理,迫切需要一个简单、轻量的ETL作业调度系统,可以从开源产品中甄选。

    8、采用原生Spark计算基本无法为平台上用户提供快速计算的体验,可能会考虑列式分布式数据库,或基于Bitmap结构的分布式计算系统。

    9、面向开发人员,部分涉及业务相关内容的模块,第一阶段可以通过硬编码方式处理业务逻辑,后续第二阶段可以基于对业务流程的熟悉来进行改造,抽取通用业务逻辑规则,构建能够快速交付业务功能的模块。

    10、对平台架构进行分解,分离有状态和无状态模块,分离带业务属性和不带业务属性的模块,保持模块轻量易于随架构演进进行改造、升级、维护。

    五、技术选型

    技术选型,主要从如下几个方面进行考虑:

    5.1、数据存储

    5.1.1、原始数据存储

    数据量级达到PB级,所以,作为整个数据服务平台的最初输入数据,我们称为数据服务平台的原始数据,后续简称原始数据,这些原始数据是直接存储在HDFS文件系统中,根据时间的维度,分为小时数据、日数据、月数据。这样,可以根据数据计算需要,按照小时、日、月进行加工处理,能够在可允许的计算资源配额和计算时间范围内完成处理。
    另外,根据每天大约30~40TB的增量数据,原始数据采用parquet格式压缩存储,我们进行二次加工的输出仍然是以parquet格式存储。

    5.1.2、分布式关系数据存储

    对于PB级的数据,想要在数据服务平台中快速为用户提供数据服务,根据业务特点,存储在适合快速加载、快速计算的分布式数据存储系统中。
    快速加载,必然要对数据进行特殊格式处理,并在一定程度上压缩数据,这样才能减少数据加载时间。可以很容易想到,使用支持列式存储的分布式数据库。比如Vertica分布式数据库就是一款支持列式存储的MPP数据库。Vertica是HP开发的商用分布式数据库,同时也发布了开源的免费社区版本,不过社版本有一定限制:只支持1TB原始数据、3节点集群规模。如果变通一些,可以通过Vertica社区版本进行改造以支持解除3个节点集群规模和1TB存储的限制,不过要在分片逻辑控制、分片数据一致性方面做更多工作,尤其是面向上层应用提供单一的统一存取视图是非常必要的。因为列式存储支持计算时只加载用于计算的列,故而能够达到快速加载的目的。
    快速计算,首先要求计算能够并行化,那么数据就应该分片存储,使数据计算本地化。Vertica自然能够实现数据的并行计算,我们在前期使用过程中验证了,对于从40亿+的大表中批量匹配出任意信息(匹配ID,以及ID对应的关联表中的其它明细信息),效率非常好,基本分钟级便可以输出匹配结果。
    我们也对开源不久的MPP数据库Greenplum进行了调研,它原生支持分布式架构,支持列式和行式两种存储,自然具有Vertica对应的列式存储的优势,又不需要手动对分片进行管理控制,但性能要比Vertica差一些。然而,Greenplum数据库能够支持数组类型,支持多种编程语言的UDF,结合我们之前做过很多有关Bitmap的实践,采用开源的RoaringBitmap,能够很好的基于Greenplum实现快速的Bitmap计算。

    5.1.3、消息存储

    消息存储,主要是用来解耦后台多个较重的系统之间的通信。因为本身这类系统比较重,如果采用RPC调用的方式进行通信,某个系统进行升级,会导致依赖于该系统提供服务的其它系统管理更多的特殊情况处理。而采用消息机制,使得各个系统之间不需要关注交互系统处理状态,而对消息交换只需要关注消息的生成和消费。
    这样,我们可以随时对系统进行改造、升级、Bug修复重启等操作,而不会使整个平台陷入不可控的状态。消息中间件,我们选择使用RabbitMQ。

    5.2、数据处理

    数据处理,主要包括原始数据ETL处理、应用数据计算两大类:

    5.2.1、原始数据ETL处理

    基于HDFS存储的数据,最方便最高效的技术方案,自然是使用Spark计算集群来对数据进行ETL处理。我们基于原生的Scala编程语言来开发各种ETL程序,实现数据清洗、抽取、转换操作。

    5.2.2、应用数据计算

    数据服务平台中,面向用户的应用数据计算,基于Greenplum数据库支持的SQL语言来实现数据处理,并基于Java编程语言来实现整个应用服务的开发。

    5.3、ETL作业调度

    数据处理需要进行大量的ETL计算,管理各种计算任务之间的依赖关系及其调度,我们采用了非常轻量的Azkaban调度系统。

    5.4、业务元数据管理

    业务元数据,主要用于支撑数据服务平台Web UI上面的各种业务条件选项,比如,常用的有如下一些:

    (1)移动设备机型、品牌、运营商、网络、价格范围、设备物理特性

    (2)应用名称、包名、哈希值

    (3)应用分类

    (4)地域信息,如国家、省份、城市、区县

    (5)POI名称、地址

    (6)POI分类,包括一级分类、二级分类

    这些元数据,有些来自于基础数据部门提供的标准库,比如品牌、价格范围等,可以从对应的数据表中同步或直接读取;而有些具有时间含义的元数据,需要每天通过ETL处理生成,比如应用信息;POI数据需要从外部抓取,并进行处理,一般每个月更新一次。
    这些元数据,为支撑应用计算使用,被存储在MySQL数据库中;而对于填充页面上对应的条件选择的数据,则使用Redis存储,每天/月会根据MySQL中的数据进行加工处理,生成易于快速查询的键值对类数据,存储到Redis中。

    5.5、数据服务

    数据服务,主要支撑后台的数据应用,全平台采用标准的REST接口风格来定义,主要使用Spring Boot来快速开发对应的接口。

    5.5.1、离线批量服务进行REST接口封装

    还有一点我们需要遵循的是,任何具有复杂的数据处理逻辑的服务,都通过一层REST接口进行封装,将全部的离线批量服务后置。这样得到一个聚合服务的REST接口层,该层主要负责定义和管理接口的各个请求、响应参数,REST接口不变,而对应的数据处理逻辑可以根据实际情况进行调整,以后对存储或计算方案进行升级改动,都不影响使用上层REST接口调用方。

    5.5.2、Greenplum服务网关

    比如,我们采用Greenplum数据库,在Greenplum前面增加了一层Greenplum服务网关,对于任何需要访问Greenplum数据库的应用,必须通过与Greenplum服务网关进行交互,而不是直接去访问Greenplum数据库。理想状态下,Greenplum服务网关可以实现为无状态的服务网关,通过Nginx做反向代理实现HA,这样后续因为业务变更,可以非常平滑地进行变更和升级,而不影响依赖于Greenplum服务网关的业务接口调用。

    5.5.3、微服务

    除了数据服务平台内部进行服务调用,最外层通过Web界面的风格,只需要拖动或选择可视化组件,实现对非技术背景的业务用户进行数据提取和分析,未来我们还要将全部的服务暴露到外部(数据服务平台所属部门之外的其它部门,以及公司外部),最大化数据服务的价值。
    微服务部分,我们选择了Spring Cloud来快速构建微服务。

    5.6、UI展示

    UI层主要根据我们开发人员的技术背景,使用Vue来构建面向业务用户的数据服务Web系统。

    六、架构设计

    整个数据服务平台的架构设计,如下图所示:

    640

    如上图所示,对应的各个核心子平台及其服务,下面将分别详细说明:

    6.1、数据服务Web系统

    数据服务Web系统是面向用户使用的,主要通过可视化业务组件的方式,将数据服务暴露出来,方便业务用户使用。同时,该系统提供用户权限管理的功能,可以设置用户权限,主要包括业务用户和管理用户。
    数据服务Web系统的设计,如下图所示:

    640

    该系统的设计比较容易,核心的思想就是前端和后端分离。前端定义的各种可视化组件,都是根据不同业务线的需求,经过梳理分类,将需求频度较高的抽象出来,做成业务功能组件。后端服务包括两类:一类是业务元数据服务接口,包括各种需要在页面展示的数据项,如设备机型、地域、应用、POI等;另一类是作业管理服务接口,主要负责管理作业相关内容,如作业查询、保存等。

    6.3、业务作业调度平台

    业务作业调度平台是整个数据服务平台最核心的子平台之一,设计该平台主要考虑除了当前支撑面向业务用户需求之外,还要能够很好的扩展以支持其他业务部门开发人员对服务的使用。该平台的架构,如下图所示:

    640

    该平台主要负责作业的解析编排、排队、调度。
    作业编排采用调用外部编排服务的方式,主要考虑的是编排需要根据业务的一些属性进行实现,所以将易变的业务部分从作业调度平台分离出去。如果后续有对编排逻辑进行调整和修改,都无需操作业务作业度调度平台。
    排队,支持多队列排队配置,比如根据当前及其未来的发展趋势,需要具有面向业务用户的业务队列、面向开发人员的服务队列,而这两种队列所负责的作业调度的SLA是完全不同的,业务队列中的作业每天可能成百上千个,而服务队列在初期对于每个业务线只需要每天调用一次或多次(正常会严格限制服务调用数量),初期从作业量上来看这两个作业容量的比例大概是8:2,通过队列来隔离调度,能够更好地满足具有不同需求的用户。
    调度,是对作业、以及属于该作业的一组任务进行调度,为了简单可控起见,每个作业经过编排后会得到一组有序的任务列表,然后对每个任务进行调度。这里面,稍有点复杂的是,作业是一级调度,任务是二级调度,但是要保证属于同一个作业的任务能够按照先后顺序被调度运行。所以,作业是排队的基本单位,在每一个排队单元中,要包含作业ID、任务个数、作业状态,同时为能够控制任务正确调度,也需要包含当前调度运行中任务ID、运行中任务状态,可见任务是调度运行的基本单位。被调度运行的任务会发送到RabbitMQ中,然后等待任务协调计算平台消费并运行任务,这时作业调度平台只需要等待任务运行完成的结果消息到达,然后对作业和任务的状态进行更新,根据实际状态确定下一次调度的任务。
    另外,还有几个点需要注意:第一,被调度运行的任务需要进行超时处理;第二,控制同时能够被调度的作业(实际上运行的是作业对应的某个任务)的数量;第三,作业优先级控制。

    6.4、任务协调计算平台

    任务协调计算平台也整个数据服务平台最核心的子平台之一,它是无状态的,除了能够支撑我们的数据服务平台,如果有其它想要接入的任务,都可以通过该平台协调来运行。该平台的架构,如下图所示:

    640

    该平台的设计是主从架构,Master和Slave之间通过RPC调用进行通信,通信层使用了Netty网络通信框架。Worker可以根据实际计算任务的压力,进行水平扩展。
    Master负责控制从RabbitMQ中拉取任务消息,然后根据Worker节点的资源状况进行任务的协调和调度,并将Worker上作业完成的信息发送到RabbitMQ,供上游业务作业调度平台消费从而控制更新作业的运行状态。同时,Master管理注册的Worker状态、Worker资源状态、Worker上运行的任务的状态。
    Worker是实际运行任务的工作节点,它负责将任务调度到后端的计算集群,或者调用数据处理服务来实现任务的运行。由于任务都是批量处理型计算任务,所以Worker要管理任务的提交,以及对已提交任务运行状态的异步查询(轮询)。

    6.5、Greenplum REST服务网关

    Greenplum REST服务网关,直接与Greenplum数据库进行交互,这样起到保护Greenplum数据库的作用。因为实际Greenplum数据库集群的计算容量有限,不能无限支持很高并发,所以通过控制并发来加快每个计算任务。该REST服务网关的设计,如下图所示:

    640

    上图中,通过排队机制来保护Greenplum,并进行任务的调度运行,所以该服务是有状态的。而且,该服务具有一定的业务特征,根据不同的数据需求,需要对接口以及SQL进行调整,最好的方式是将业务接口与任务计算分离:业务接口层可以将调用任务保存到Redis队列中,实现接口层的冗余部署和平滑升级,然后作为消费的任务处理服务直接消费Redis队列中的任务,提交到Greenplum数据库计算。

    6.6、数据微服务平台

    数据微服务平台,主要考虑复用已存在的数据服务,以及支撑数据服务的核心组件,如业务作业调度平台、任务协调计算平台等,为面向开发人员使用的服务调用,通过服务接口的方式暴露出来。数据微服务平台的架构,如下图所示:

    640

    该平台主要基于Spring Cloud构建,使用Eureka作为服务注册中心。由于整个数据服务平台是以离线计算为主,没有高并发、服务降级的、调用链跟踪等需求,所以并没有完全使用Netflix OSS中大部分组件,如Zuul、Hystrix等。如果后续需要,可以非常容地集成进来。
    鉴权网关,是所有调用微服务平台的外部调用方的入口。为了保证整个微服务平台的正常运行,通过用户、时间(调用期限)、调用频率等限制调用方。比如某些业务线的应用需要使用微服务平台的服务,由于对方业务可能下线,而服务程序没有下线,仍然持续调用我们平台服务,这会对微服务平台资源造成浪费。另外,也避免了服务调用方测试、调试,对整个微服务平台造成不可控的状况。
    上图左面,服务注册中心及其以上部分,是整个微服务平台的核心部分,我们在构建该平台时,也考虑了接入非微服务的组件。比如热力图服务,数据是需要批量处理生成,而访问时是同步调用的,所以在数据服务平台的Web部分提交的作业,如果是热力图类型,会调用微服务平台的热力图服务异步生成数据,而用户可以在Web系统中查看热力图(如果未生成则提示正在生成中);对其它上层数据应用也可以直接调用微服务平台的热力图服务生成数据,并下载对应数热力图据。

    6.7、其它服务/系统

    其它服务/系统比较简单,所以这里只是简单说明一下:
    Java REST服务网关:要对某些从Greenplum数据库中计算得到的数据,需要进行再加工处理以满足实际业务,如热力图数据生成和压缩等,将这些服务封装成REST风格接口调用。
    Spark REST服务网关:对于需要对HDFS上指定数据集处理,生成需要的结果数据,使用Spark开发程序,同时将Spark计算作业封装成REST风格接口调用。
    数据ETL调度系统:使用开源的Azkaban调度系统,实现所有ETL作业的统一调度。
    数据采集服务:根据数据业务需要,从网上或其它渠道采集数据,比如通过高德API采集POI数据等。

    七、架构总结

    通过上面的架构设计实践,我们总结一下实践的经验,如下所示:

    (1)底层数据处理引擎,可能会随着业务的发展,以及新技术的更迭,我们会有更多选择,所以在数据处理引擎之上,设计一层REST服务,实现上层应用与底层数据处理引擎解耦和。

    (2)多个相对较重的服务,如业务作业调度平台、任务协调计算平台,它们之间通过消息解耦和,能更好的降低各个服务的复杂性,以及因为变更对双方造成的影响。

    (3)系统架构分解,要考虑将有状态和无状态的部分分离,甚至在某个服务中,也有必要将有状态和无状态的部分进行分离。

    (4)业务部分和非业务部分的分离,这样能够适应业务需求的变更,持续对业务部分进行更新升级,而非业务部分可能是相对稳定的。

    对于无状态的服务,我们可以通过冗余部署多个服务实例,再通过反向代理的方式实现服务的高可用,甚至在演进为微服务架构时也比较容易做到。对于有状态的服务,因为单个服务需要维护状态新,所以实现高可用的思路是,启动多个实例,但是同一时刻只有一个是Active服务可以操作状态,而其它实例作为Standby服务,需要通过一种机制来监听并发现Active服务的可用性,然后在其失败时能切换到Standby服务,比如常用的Zookeeper等。


    原文作者:时延军;原文地址请点击阅读原文进行查看!

    送给每一位用心看完的小伙伴!

    640

    两本书中一本从留言区抽取,一本从“抽奖助手”中抽!

    送书规则

    1、本次活动还是在评论区随机抽取一名幸运吃瓜群众!

    2、截止日期:2018年01月25日23时00分,幸运的小伙伴名单评论区留言会置顶,获奖的小伙伴请在一个工作日内在公众号界面联系我,发送手机号、姓名、收货地址,逾期则认为放弃处理;


    640

    重要的事情是:一共两本,一本从留言区选,一本从抽奖助手选!

    最近热文阅读:

    1、四张图带你了解Tomcat系统架构

    2、三条路线告诉你如何掌握Spring IoC容器的核心原理

    3、面试必备技能:JDK动态代理给Spring事务埋下的坑!

    4、漫画区块链,一文带你秒懂她!

    更多精彩,从关注《Java后端技术》公众号开始!

    640?

    展开全文
  • IaaS PaaS SaaS DaaS基础设施即服务平台服务、软件即服务数据服务详解 维基百科的解释如下 Infrastructure-as-a-Service(缩写:IaaS),基础设施即服务:是提供消费者处理、储存、网络以及各种基础运算资源...
  • 大数据开发平台-数据同步服务

    万次阅读 2017-09-21 13:38:35
    至于大数据开发平台数据同步服务,加上了限定词,那当然是进一步把业务的范围限定在了和数据平台业务相关的一些组件和应用场景之下了。 大数据平台数据同步服务业务场景 讨论场景之前,先来看一下数据同步的目的,...
  • 数据平台建设

    万次阅读 2020-12-09 22:09:19
    - 数据质量层次不齐 - 数据交换和共享困难 - 缺乏有效的管理机制 - 存在数据安全隐患
  • 但是分布在不同的系统,各个业务系统从这些数据库中取数据的需求和情况越来越多,已经形成了难以维护管理的“蜘蛛网”,需要建立统一的数据管理和访问平台,便于统一维护和管理,提供“一站式”的数据访问服务。...
  • 上次写的《大数据环境下互联网行业数据仓库/数据平台的架构之漫谈》一文,已是一年前的事了,经过一年的沉淀与公司业务的发展,大数据平台的架构也有所演进,本文简单介绍了架构更新的部分。 整体架构 数据采集 ...
  • 先大概列一下互联网行业数据仓库、数据平台的用途: 整合公司所有业务数据,建立统一的数据中心;提供各种报表,有给高层的,有给各个业务的;为网站运营提供运营上的数据支持,就是通过数据,让运
  • 工业互联网平台面向制造业数字化、网络化、智能化需求,基于海量数据构建采集、汇聚、分析的服务体系,能够支撑工业互联网企业制造资源泛在连接、弹性供给、高效配置,有效助力制造企业提高产品质量、生产效率和服务...
  • 工业互联网平台是面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析的服务体系,支撑制造资源泛在连接、弹性供给、高效配置的工业云平台。其本质是通过构建精准、实时、高效的数据采集互联...
  • 2010年左右,还是在上学的时候,学过一门课程叫《数据仓库与数据挖掘》,那还是属于传统数据的时代,我们会讨论什么是数据仓库?什么是数据集市?数据仓库和数据库有什么区别?等等,当我还在苦苦学习这些之时,...
  • 近年来,大数据处理与分析已经成为全球性问题,引起欧美各国政府和产业界高度重视,美国政府于2012年3月率先发布了《大数据研究与发展计划》,Google, Amazon、Facebook、IBM、EMC、SAP等国际领先互联网和仃公司都...
  • 两种模式的数据服务解决方案

    千次阅读 2018-12-06 16:37:32
    前置机/前置库模式数据服务解决方案交换平台模式数据服务解决方案 [TurboDX应用] 对于一个数据提供部门来说,通常的数据服务模式有几种:一是通过Web Service等方式提供请求/响应式数据服务;二是通常前置机/前置库...
  • 开源数据分析平台Countly

    千次阅读 2018-01-29 15:48:31
    Countly是一站式的数据分析平台,可同时跟踪移动和网络用户。Countly的齐全功能适合自部署或私有云。Countly也是开源产品,可个性化以适合不同行业的数据分析需求。 同时Countly提供免费的社区版和收费的商业版,...
  • mmTrix大数据分析平台构建实录

    千次阅读 2016-03-30 09:05:28
    数据分析中,有超过90%数据都是来自于非结构化数据,其中大部分的是日志,如运维、安全审计、用户访问数据以及业务数据等,但随着互联网快速的发展,数据规模也是水涨船高,从早前的GB级到现在的TB级,甚至PB级也...
  • 需要跨网络:从阿里云服务器上的数据库,通过网闸使用ftp传文件的方式,将数据同步到业主的专网中;阿里云跟业主专网不能直连; 定时数据增量同步,具体同步哪些表,需要可配置; 节约工作量,最大限度上不改变...
  • FMQ数据交换平台

    千次阅读 2013-05-17 10:53:49
    FMQ数据交换平台是一款构架在[[FMQ]](文件&消息队列)基础上的、易使用、易管理、高效率的中心控制分布式应用整合平台,...FMQ数据管理平台由后台服务、管理配置工具以及平台API接口组成,主要提供如下功能: == 文
  • 数据平台投标方案模板

    千次阅读 2017-04-07 19:20:31
    随着信息化程度的加深,以及移动互联网、物联网的崛起,人们产生的数据急剧膨胀,传统的数据处理技术难以支撑数据大量的增长和处理能力。经过近几年的发展,大数据技术逐步成熟,可以帮助企业整合更多的数据,从海量...
  • 联通数据能力开放平台介绍

    万次阅读 2018-10-11 15:04:37
    1.概述:2017年9月25日,联通大数据有限公司(定位:大数据对外商业应用的集中运营主体与大数据产业拓展的合资合作...2.数据能力开放平台-提供开放数据平台,支持数据模型;3.风控平台-提供风控数据验证评分;4.沃...
  • 数据分析平台

    万次阅读 2016-02-18 13:46:13
    新时期对数据中心资源整合的重新定义“大数据”。
  • 数据分析平台搭建指南

    万次阅读 2018-10-16 00:58:06
    先来谈谈企业搭建大数据分析平台的背景。1、搭建大数据平台离不开BI。在大数据之前,BI就已经存在很久了,简单把大数据等同于BI,明显是不恰当的。但两者又是紧密关联的,相辅相成的。BI是达成业务管理的应用工具,...
  • 2020版中国开放数据(Open Data)及政府数据开放平台汇总 北京市 北京市政务数据资源网 ...56家单位、1147类数据集、7653...上海市政府数据服务网 http://www.data.sh.gov.cn/home!toHomePage.action 开放数据项总量32312...
  • 2015年《促进大数据发展行动纲要》明确提出“要引导培育大数据交易市场,开展面向应用的数据交易市场试点,探索开展大数据衍生产品交易,鼓励产业链各环节的市场主体进行数据交换和交易,促进数据资源流通,建立健全...
  • WSO2 Data Services Server (详情见官网) 很多应用程序背后使用异构的数据...WSO2数据服务服务器使SOA开发变得特别容易,提供了一个简单易用的平台:集成化的数据存储、创建复合数据视图、托管不同来源的数据(比
  • 全国重要地质钻孔数据服务平台 主要是查看历史钻孔信息,数据量较多,可看钻孔柱状图。但不能获取钻孔坐标,显得有点鸡肋。 地质云 中国地质调查局出品,需要注册账号,受账号权限限制下载数据困难,可在...
  • 平台 物联网 概念 数据挖掘技术

    万次阅读 2019-04-09 16:41:25
    【关键词】云平台 物联网 概念 数据挖掘技术 物联网是现代科学技术发展的产物,它的出现给信息产 物联网在现实生活中已经被普遍运用,其涉及的领域包 景观照明管控、老人护理、花卉栽培、敌情侦查、 1 云平台...
  • 如何设计实时数据平台(下篇)

    千次阅读 2018-07-23 11:16:47
    导读:实时数据平台(RTDP,Real-time Data Platform)是一个重要且常见的大数据基础设施平台。在上篇(设计篇)中,我们从现代数仓架构角度和典型数据处理角度介绍了RTDP,并探讨了RTDP的整体设计架...
  • 旗下聚合数据平台是国内领先的移动数据服务商,为智能手机开发者,网站站长,移动设备开发人员及图商提供原始数据API服务的综合性云数据平台。包含手机聚合、网站聚合、LBS聚合三部分,其功能类似于Google APIS。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 670,938
精华内容 268,375
关键字:

互联网数据服务平台