数据服务:保障数据安全、提升数据价值的利器

04-08把元数据以及在它基础上的五大应用场景:数据发现(数据地图)、指标管理、模型设计、数据质量、成本优化,全部讲完。这部分内容对应的就是数据中台OneData 方法论。学完这部分内容,你已了解OneData方法论在企业内部落地的方法。

数据中台另外一个核心方法论,OneService的实现:数据服务。

服务化在业务系统较多,业务系统化繁为简,实现业务拆分的必经之路(特别微服务概念)。数据中台,服务化意味啥?数据服务到底解决啥问题?

服务化:不同系统之间通过服务方式交互,服务通常以API接口形式存在。

要搞清数据服务解决啥问题,要先知道,没有数据服务,日常数据建设中存在的痛点。

1 数据接入方式多,接入效率低

数据中台加工好的数据,通常以Hive表形式存储在HDFS。如想直接通过数据报表或数据产品前端展现,为保证查询速度,会把数据导到一个中间存储:

  • 数据量少的MySQL , Oracle等DB,部署维护方便、数据量小、查询性能强。如数据量小于500W条记录,建议使用DB中间存储
  • 涉及大数据量、多维度查询的可用GreenPlum,海量数据OLAP有优异性能表现。如数据量超过500W记录,要进行多个条件的过滤查询
  • 涉及大数据量单Key查询,可用HBase。大数据量下,HBase拥有不错读写性能。如超过500W记录,根据K查询V场景。如需要用到二级索引,由于HBase原生不支持二级索引,可引入ES,基于ES构建二级索引和RowKey(HBase中的Key)映射关系,查询时先根据二级索引在ES中找到RowKey,再根据RowKey获取HBase中的Value值。

因为不同的中间存储,涉及的访问API 也不一,所以对数据应用开发来说,每个数据应用都要根据不同中间存储,开发对应代码,如涉及多个中间存储,还要开发多套代码,数据接入效率很低。

而数据服务为数据开发屏蔽不同中间存储,应用开发使用统一的API接口访问数据,大幅度提高了数据应用的研发效率。

数据接入效率低,除了跟对接不同的中间存储有关,还因数据和接口不能复用。

2 数据和接口没有办法复用

数据和接口无法复用示意图

开发“数据应用-经营分析”时,数据开发会基于a表加工c表,然后数据应用开发会把a、b的数据导到“数据应用-经营分析的数据库db1”,然后开发经营分析的服务端代码,通过接口1对web提供服务。

又接到任务开发“数据应用-毛利分析”时,同样要用b表数据,虽然b数据已存在db1,但db1是“数据应用-经营分析”数据库,无法共享给“数据应用-毛利分析”。

经营分析的服务端接口也无法直接给毛利分析用,因为接口归属在经营分析应用中,已经根据应用需求高度定制化。

即使数据重复,不同数据应用之间,在中间存储和服务端接口上,也无法复用。这种烟囱式开发导致数据应用研发效率低。

而数据服务,使数据中台暴露的不再是数据,而是接口,接口不再归属某数据应用,而是在统一的数据服务上。使接口可在不同数据应用之间共享,同时因数据服务具备限流功能,使接口背后数据共享成为可能,解决不同应用共享数据相互影响问题。

当数据应用上线后,进入运维阶段,如这阶段没有数据服务,会咋样?

3 不知道数据被哪些应用访问

故障恢复示意图

张好看是数据开发,某天凌晨接到电话报警:有大量任务异常(对应上图红色表的产出任务)。定位确认问题来源业务系统的源数据库,因一次数据库表结构变更,导致数据中台中,原始数据清洗出现异常,从而影响下游的多个任务。

摆在面前的,是一堆需恢复重跑的任务。可队列资源有限,到底先恢复哪个? 哪个任务最终会影响到老板第二天要看的报表?

虽数据血缘建立表与表之间的链路关系,但表的末端,我们不知道这表被哪些应用访问,所以应用到表的链路关系断的。当某任务异常,我们无法快速判断这任务影响哪些数据应用,也无法根据影响范围决定恢复的优先级,最终导致重要报表没恢复,不重要的报表却被优先恢复。

成本治理中,没有应用和数据的链路关系,也不敢贸然下线数据。

而数据服务打通数据和应用的访问链路,建立从数据应用到数据中台数据的全链路数据血缘关系,等于我们在迷宫中拿到了一个地图,当任何一个任务出现问题,我们都可以顺着地图,找到这个故障影响了哪些应用,从而针对重要应用加速恢复速度。同样,我们也可以放心的下线数据中台中任意一张表。

除不知道数据被哪些下游应用使用,运维阶段,还经常面临数据表频繁重构,也许是数据应用开发最可怕噩梦。

4 数据部门字段变更导致应用变更

数据中台底层模型的字段变更是比较频繁的一个事情,因为本身汇总层的模型也在随需求优化。

“数据应用-经营分析”使用数据中台的ads_mamager_1d这张表的c字段,如果我们对这张表进行了重构,访问字段需要替换成e字段,此时需要数据应用修改代码。这种因为数据中台的数据变更导致应用需要重新上线的事情,是非常不合理的,不但会增加应用开发额外的工作量,也会拖累数据变更的进度。

有了数据服务,就会把数据应用和中台数据解耦,当中台数据表结构变更,只需修改数据服务上接口参数和数据字段的映射关系。无需再修改代码,重新上线数据应用。

5 总结

数据接入和运维过程中,遇到的典型问题,简要分析数据服务为什么能够帮我们解决这些问题。而这些问题会让数据应用使用中台数据效率低下,同时也带来中台数据维护的烦恼。

下讲聊数据服务具备哪些功能,你正准备设计一个数据服务或正做数据服务的产品选型,一定要留意。最后会提供给你一个数据服务实现方案,告诉你数据服务实现的关键设计。

6 FAQ

数据服务解决了数据的安全性的问题,有道理吗?

是的,数据服务可通过许多安全措施来确保数据的安全性。例如,数据服务可以使用加密技术来保护数据,以确保只有授权用户才能访问数据。此外,数据服务还可以实施访问控制和身份验证措施,以确保只有授权用户才能访问数据。因此,数据服务可有效解决数据的安全性问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/47515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【业务功能篇55】Springboot+easyPOI 导入导出

Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 Apache POI 代码实现复杂,学习成本较高。 Easypoi 功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出…

MySQL基础扎实——MySQL中各种数据类型之间的区别

在MySQL中,有各种不同的数据类型可供选择来存储不同类型的数据。下面是一些常见的数据类型以及它们之间的区别: 整数类型: TINYINT:1字节,范围为-128到127或0到255(无符号)。SMALLINT&#xff1…

项目文档管理的基本指南

项目文档是一种关键的项目管理资源,它可以提供清晰度,保证参与项目的每个人都在同一页面上,从而确保项目按时、按预算完成。 本文将讨论项目文档的重要性、如何在项目中使用项目文档以及选择好合适的项目文档管理软件的技巧。 什么是项目文…

代码随想录算法学习心得 49 | 647.回文子串、516.最长回文子序列...

一、最长回文子序列 链接:力扣 描述:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 思…

【C++】开源:Boost网络库Asio配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Asio网络库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次…

Form Generator 扩展子表单组件之表单校验(超详细)

一、form-generator是什么?✨ ⭐️ 🌟 form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的…

【搜索引擎Solr】Apache Solr 神经搜索

Sease[1] 与 Alessandro Benedetti(Apache Lucene/Solr PMC 成员和提交者)和 Elia Porciani(Sease 研发软件工程师)共同为开源社区贡献了 Apache Solr 中神经搜索的第一个里程碑。 它依赖于 Apache Lucene 实现 [2] 进行 K-最近邻…

【Apollo学习笔记】—— Routing模块

Routing模块功能 Apollo的routing模块读取高精地图原始信息,用于根据输入RoutingRequest信息在base_map中选取匹配最近的点作为导航轨迹的起点和终点,读取依据base_map生成的routing_map作为生成topo_graph的,然后通过Astar算法在拓扑图中搜…

SSIS对SQL Server向Mysql数据转发表数据 (一)

开发工具 Visual Stuido 2019 、SSIS、SQL Server 2016、Mysql 8.0.30 1、配置VS2019的添加相应的功能,勾选SQL Server Data Tools,下载就行我用的VS2019版本还需要下载下面几个插件,链接我放在下面了 Microsoft Analysis Services Projects - Visual St…

[linux--->应用层网络通信协议]

文章目录 [TOC](文章目录) 一、应用层通信概念1.协议2.信息接收 二、网络计算器实战应用三、http协议1.基本认识2.宏观理解http3.网站内部跳转4.请求方法5.状态码5.1重定向5.2错误码 6.常见报头7.http会话保持功能8.模拟http协议服务器编程 四、https协议1.加密概念2.加密的作用…

esp32_arduino的开发库安装笔记

1.1 Arduino软件下载与安装 Arduino官网下载地址:https://www.arduino.cc/en/software。 1.2在线安装 选择文件 - 首选项。 在附加开发板管理器网址中添加以下链接中的一个。 (1)Stable release link: https://raw.githubusercontent.com/espressif/arduino-es…

opencv-17 脸部打码及解码

使用掩模和按位运算方式实现的对脸部打码、解码实例 代码如下: import cv2 import numpy as np #读取原始载体图像 lenacv2.imread("lena.png",0) #读取原始载体图像的 shape 值 r,clena.shape masknp.zeros((r,c),dtypenp.uint8) mask[220:400,250:350…

MLagents 多场景并行训练

MLagents多场景并行训练调试总结 摘要 关于Unity MLagents的环境安装已经有了很多的blog和Video,本文针对MLagents的多场景的并行训练,以及在探索过程中出现的问题进行总结。 内容 Unity MLagents 多场景并行训练可以同时设置开多个场景进行并行探索…

账号列表的删除编辑提交

<template><div><plan title"账号列表"><!-- selection-change"handleSelectionChange"添加这个属性就是点击可以得到你想要的value值 --><el-tablestyle"width: 100%":data"list"selection-change"h…

Python 生成随机图片验证码

使用Python生成图片验证码 Python 生成随机图片验证码安装pillow包pillow包生成图片基本用法生成图片验证码 Python 生成随机图片验证码 在写一个Web项目的时候一般要写登录操作&#xff0c;而为了安全起见&#xff0c;现在的登录功能都会加上输入图片验证码这一功能&#xff…

上海VR全景展示,快速了解VR全景拍摄

导语&#xff1a; 随着科技的不断进步&#xff0c;虚拟现实技术的应用日益广泛。在这其中&#xff0c;VR全景图片作为一种数字化助力的全景拍摄方式&#xff0c;正逐渐成为人们关注的焦点。通过数字化技术&#xff0c;VR全景图片能够以360度全方位的视角呈现真实的场景&#x…

功率放大器在电光调制中的应用有哪些

电光调制是一种利用光电效应将电信号转化为光信号的技术。在实现电光调制的过程中&#xff0c;功率放大器作为一个重要的组件&#xff0c;具有对输入电信号进行放大和控制的功能。本文将介绍功率放大器的基本原理、特点以及在电光调制中的应用。 基本原理 功率放大器是一种能够…

小程序 methods方法互相调用 this.onClickCancel is not a function

背景 做了一个自定义的弹出对话窗口&#xff0c;主要是自定义一些文本颜色。 问题 但是点击按钮事件&#xff1a;取消与确认&#xff0c;调用了同一个接口&#xff0c;然后想着走不同方法&#xff0c;需要调用methods其他方法。然后报错了&#xff1a; VM1081 WAService.js:…

Vue style中的 scoped 属性

Vue 中存在 scoped 属性&#xff0c;HTML5中也存在一个 scoped 属性&#xff0c;而且&#xff0c;这两者都是针对 css 样式处理的属性&#xff0c;所以很多文章在 解释 Vue scoped 的时候&#xff0c;都会把两者混为一谈&#xff0c;直接进把 HTML5 scoped 的定义搬到 Vue scop…

QT Http协议

文章目录 前言一、HTTP概述二、HTTP的两种模型1.B/S模型2.C/S模型 三、请求报文和响应报文三、调试软件Postman四、QT中的HTTP类五、使用HTTP类请求数据总结 前言 本篇文章来给大家讲解QT中的Http协议&#xff0c;Http协议主要用于网络中数据的请求和响应&#xff0c;那么这篇…