目录
前言
数据流转是持续的、不断变化的,我们应当善用这些数据特点来发挥最大价值。
在大数据和实时数据技术出现之前,数据的流转相对简单,整个过程类似于工厂的生产线。要么是将数据从相对静态的数据库移动到数仓中的适当位置,要么是将数据以一种标准化的方式在数据库和应用程序之间移动。
与过去相比,当前环境是多对多的场景,例如来自流式、批处理或微批处理的各类数据,被多个应用程序所消费。大规模数据的处理操作也不再遵循传统数据所走的线性路径,而更像是一个城市交通网格(即共享资源的网络)。
此外,由于各方(甚至是第三方)分别管控数据来源和应用,一旦模式或语义不可避免地发生变化时(即数据漂移),则会对数据下游的应用(分析或交互)造成严重干扰。
鉴于现代化数据的动态特性,我们需要从操作的角度出发,必须每天进行管理并随着时间的推移不断迭代。在当下,企业必须基于不断变化的特性来构建架构,并持续监视和调整其数据流转系统的性能。
一、11个最佳实践
下面我们分享一下数据集成的11个最佳实践:
1、尽量避免手工编码
虽然编写定制代码将数据从源头导入到数据仓库中早已是司空见惯的事,但是鉴于大数据的动态特性,这种做法是危险的。此类操作会在数据流处理中是被证明非常容易出错和难以维护,一旦数据模式发生微小的变化,则会导致数据管道丢失数据或完全失败。除此以外,还存在下述问题:
- 缺少数据管道的监控: 由于检测工具必须显式地设计在其中(通常没有遵循),因此数据流可能成为黑箱。
- 扼杀组织敏捷性: 底层编码将导致组件间的耦合更加紧密,使基础设施难以升级。
目前,现代化的数据处理系统可以在数据源、中间处理系统(如Kafka等消息队列)和数据仓库之间建立无代码的即插即用连接。您可以从此类系统中得到灵活性、可见性和独立升级数据处理组件的能力。如果您担心定制化或可扩展性问题,这些工具一般会通过支持强大的表达式语言或插入自定义代码的能力来增强其内置连接器。
Tapdata Real Time DaaS 就是一款基于数据即服务(DaaS)架构理念的现代数据集成系统,具备异构数据实时同步、批流一体数据融合、自助式 API 发布等核心功能,可帮助企业无代码快速连接孤岛系统,构建敏捷型的实时数据服务平台,能够为联机分析处理(OLAP)业务提供实时数据输入和为交互式业务(OLTP)提供实时的数据服务。Tapdata Real Time DaaS 核心优势是“全链路实时”:基于CDC方式实时采集;实时流式建模;亚秒级真实时分析;增量数据校验;高并发查询毫秒级响应。适用于企业统一数据管理、实时数据中台、实时数据库同步、业务系统升级与加速等多个场景。
2、由业务驱动并减少对 Schema 规范的依赖
虽然完整的 Schema 规范是传统数据世界的标准要求,但大数据场景下,它将导致工程时间和资源的浪费。消费应用程序通常仅使用几个关键字段进行分析,加上大数据源往往有控制不力的Schema,随着时间的推移而变化,迫使人们不断地进行维护。
数据流系统应该是由业务驱动,而不是依赖于完整的 Schema 规范,因此您只需为下游分析有关的字段指定条件并执行转换。
此类极简风格不仅减少了开发和实施管道所需的工作和时间,同时还使数据流更加可靠,出错可能性更小。
3、设计批流一体的数据处理框架
即使行业中有很多关于流分析的声音,但企业的数据仍然是一个基于过去30年开发的应用程序和源数据库的批处理世界。因此,当你在规划网络安全、物联网和其他利用流的新时代应用时,您必须考虑这样一个事实,即这些数据通常需要与批处理源(例如主数据或交易数据)结合或对其进行分析。
实际场景中,需要将流合并到遗留的批处理驱动架构中,同时维护或改进整体数据操作的性能和可靠性,而不是建立一个仅用于流的框架。
Tapdata Real Time DaaS 实时数据服务平台即采用了批流一体的实时数据融合架构,能够非常好的满足上述场景需求。
4、在提取时清洗原始数据
早期 Hadoop 用户的最初口号是只在数据仓库中存储只读不可变的原始数据。随着技术在真实场景的应用,我们逐渐认识到,如果没有对数据进行清洗有可能引发一些严重的缺陷。这就好比人喝了未经处理的水容易生病一样。
直接存储原始数据通常会导致下述问题:
- 数据仓库难以提供有效数据查询能力,失去利用价值 Gartner 等公司将此类数据仓库比喻为“数据沼泽”。
- 存储原始数据会导致数据湖中包含个人数据和其他敏感信息,额外增加了安全合规风险。
为消除此类风险,常见的方法是由数据科学家来清洗每个消费活动的数据,但显然该方式的效率非常低。通过 Tapdata Real Time DaaS,您将实现在数据摄取时完成数据清洗:
- 基础清洗:包括简单的“行进行出”转换,执行企业数据策略、规范化/标准化数据格式。
- 高阶清洗:包括主数据建模,多表合并,聚合计算等,其结果可以更容易更快速的被下游开发者或者数据科学家和商业分析师广泛利用。
尽可能地靠近数据源对数据进行清洗可以提高数据科学家的工作效率,让他们专注于特定用例的“数据整理(data wrangling)”,而不是将力气反复花在本应自动化的规则重建上。
5、尽量不要依赖文件传输
新的数据集通常是无限和连续的,比如不断变化的日志、点击流和物联网传感器输出等。如果对这些动态数据源使用文件传输或其他辅助机制会导致一个容易出现数据故障的体系结构,需要不断维护以保持可行性。
由于文件的内容在大小、结构和格式上各不相同,因此很难即时检查到相关问题。这意味着无法观测到应该传达给消费系统和应用的变化。如果您打算依赖于文件传输机制,可以考虑对文件进行预处理,以标准化数据格式简化检查和分析,或者采用一个提取工具或框架来完成此工作。Tapdata Real Time DaaS 便可以协助您完成企业统一数据的管理。
6、监控数据流中的一切
在一个复杂的数据流系统中,你永远无法获得足够的可见性。当你面对不断变化的数据源和系统的挑战时,端到端的数据流转检测为您提供了一个了解性能的窗口。不仅需要用于对单个数据流进行时间序列分析以梳理随时间的变化,更重要的是,它可以帮助你在不同的数据流之间进行关联,以实时识别关心的事件。
企业应该尽量捕获整个数据流架构的每个方面的细节,同时最大限度地减少系统之间的紧耦合和磨合成本。一个好的监控方法应满足以下特性:
- 将测量值异步传递给外部管理系统。
- 监测项可以从粗粒度下钻到细粒度,可适用于诊断、根因分析和问题修复。
Tapdata Real Time DaaS 具备详尽的可观测性能力,在完整的数据链路上,从日志的采集和解析,到各个处理节点,到最终写入到目标,提供了上百个不同的指标监控点,并可以直接对接Prometheus平台,为用户提供数据任务的详细洞察能力。
7、检查数据内容而不是只计算数量
试想一下,如果机场安检只是清点乘客和行李,而不是实际扫描行李中的异常物品,你会感到安全吗?当然不会,然而传统的数据提取的指标是吞吐量和延迟。
如果您在数据流转的过程中对其进行剖析和了解其价值,您会得到更好的结果和价值。 否则,会让自己处于数据格式或意义的突发变化的风险之中。数据值的重大变化可能表明现实世界发生了真正的变化,或者可能表明未检测到的数据漂移正在影响您的下游分析。
检查数据内容的另一个好处是,它允许您识别传输基础设施的个人或其他敏感数据。许多行业和地区对个人数据的存储都有严格的要求,例如欧盟 2018 年“即用即弃”的 GDPR 要求。通过提供对收集和存储的任何个人数据的实时检测和跟踪, 持续监视输入数据的模式有助于公司遵守规则。
8、通过 DevOps 来应对数据流转
敏捷工作流的 DevOps 敏感性与系统设计者和运行者之间联系紧密,非常适合大数据的流转操作。在一个数据源、消费用例和数据处理系统不断演进的世界里,数据管道需要频繁地调整。
传统的数据集成系统可以追溯到瀑布开发方法为王的时代,彼时的工具几乎完全专注于设计模式问题。早期的大数据采集开发框架(如Apache Sqoop和Apache Flume)也是如此。如今,使用 Tapdata Real Time DaaS,便可以快速提供了一个集成开发环境(IDE),满足在不断发展的数据流生命周期中持续使用的需求。
9、分离数据流转系统与基础架构
与为传统数据架构构建的单体式解决方案不同,大数据基础设施需要在同类最佳(通常是开源)组件之间进行协调,以实现特定功能,例如提取、消息队列、存储、搜索、分析和机器学习。 这些组件按照自己的节奏发展,且需要根据业务需求进行升级。因此,大型且昂贵的同步升级正在被对组件进行的一系列逐项更改所取代。
为了让您的数据操作在这个日新月异的新时代中保持最新状态,您应该使用中间件层的数据传送系统,它能使每个传送链上的子系统相互之间松耦合。这使您无需重新实施基础设施的基础部分即可对 “用菜单点菜”的方式进行现代化改造。
10、规划复合部署模式
数据流不仅变得复杂,而且现在跨越了一系列部署备择方案。行业调查表明,企业期望跨多个云部署数据,同时仍保留本地数据操作。
边缘操作正在从简单的收集转变为包括简单或复杂的处理,这取决于设备约束、紧急性和连接的稳健性。由于每个部署选项都有自己的优势,因此不要指望有一种方法能够一劳永逸。 实际上,业务需求将决定一个企业架构,该架构需要将其中的许多元素结合起来。
无论你处于什么阶段,最好进行这样一个假设:您将数据存储在许多不同的环境中,并构建基于完整“工作负载可转移”的架构,您可以基于任务执行的最优代价和性能特征将数据流转至分析点,并且以最小的阻碍做到这一点。
此外,随着云产品和业务需求的发展,您的多云架构将随着时间的推移而变化。
11、建立卓越的动态数据中心
数据的移动正在从“烟囱模型”演变为类似于"网格模型"。 你不能再使用“即用即走”的方法来构建数据摄取管道。 在这样的系统中,你必须规范化整体运作管理(包括对人员、流程以及系统的管理),以确保该系统能可靠地运行并持续满足SLA。这也就意味着:
- 需要在系统中添加工具来提供对流量的实时可视化监控;
- 系统还需要能够接收警告并应对数据传输过程中可能存在的违反数据完整性的问题。
否则,你就会像”手握纸质地图尝试在瞬息万变的繁忙城市交通中导航“一样感到手足无措,与此同时,还可能存在数据延迟、不完整甚至数据丢失的风险。
二、Tapdata Real Time DaaS 助您实现最佳数据集成
类似于 IaaS,PaaS 或者 SaaS,Tapdata Real Time DaaS 是基于 DaaS (Data as a Service)架构, 将企业各个业务系统的数据汇总到一个中央化平台,经过低代码方式治理以后,形成可复用的企业数据资产,通过无代码数据接口方式提供给业务使用方。其特点和创新点是:具备“实时同步+实时处理+实时服务”的全链路实时数据处理及服务平台。
- 实时数据采集同步。 Tapdata 的第一步就是将批量、滞后的 ETL 换成了 CDC 方式,基于数据库 Write Ahead Log 日志同步监听的方式来进行在不同系统之间的数据复制,它的优势在于:对源库性能影响小;资源消耗少;从事务在源端提交开始到更新写入同步的目标库,延迟可以小于1秒,能够满足对实时性要求较高的业务场景;
- 基于Pipeline的流式数据处理建模。 当我们把需要的数据从源库里面无侵入、准实时地抽取了出来之后,可能还需要:对来自多个库的数据进行合并;对表结构进行重构,组成新的模型;构建业务宽表等。基于 Tapdata 实时流数据处理技术,可以实现事件触发、毫秒级数据更新、不间断持续运行,从而满足 TP 业务和实时分析等场景需求。
- 基于分布式数据库 MongoDB 或 TiDB 的中间库存储。 相比 AP 数据平台常用的 Hadoop 大数据存储方案, 比较成熟的分布式数据库(MongoDB 或 TiDB)更适合作为 DaaS 的存储方案。主要原因是 DaaS 的很大一部分能力需要直接对接业务系统,高并发,毫秒级响应是必备的能力。这种能力只有基于索引机制的分布式数据库才可以做到。MongoDB 的模型变动灵活,非常适合多源快速融合,无需复杂关系建模。而 TiDB 的 HTAP 则能不错的支撑一些常见的分析业务。Tapdata Real Time DaaS 可以满足当下多种数据集成的应用场景:
- 快速数据交付 新型数据库和国产数据库越来越多,每一个新数据库场景的落地,都有可能需要获取已有业务系统的数据。直接从 Tapdata Real Time DaaS 导入并保持持续同步,满足实时数据更新的需求,从数周的时间缩短到数小时内完成数据交付;
- 构建实时数据中台 通过 Tapdata Real Time DaaS 实时打通企业数据孤岛,对数据进行实时采集,治理及建模,构建企业的主数据系统,为企业的交互式业务,包括客户管理、生产运营管理等提供一个完整全面的企业数据底座,支撑前端交互式业务。
- 开发实时数据大屏 Tapdata Real Time DaaS 完成数据采集同步,宽表构建,统计聚合计算,并为帆软、Tableau 或自研的数据可视化平台提供数据固化视图,以亚秒级的性能为这些可视化平台供数,超越传统大屏依赖 SQL 和逻辑视图的方案,让实时大屏交互体验无需等待,更流畅。
- 构建实时数仓 将企业主数据及运营数据统一汇聚到 Tapdata Real Time DaaS ,按照数仓分层理论分成基础数据,主数据和汇总数据层,为企业BI、报表等提供快速的数据支撑。
- 构建企业数据服务平台 企业内部部门众多,各业务均需要获取企业相关运营数据,通过 Tapdata Real Time DaaS 构建一个统一的数据服务平台,部门可以快速的获取业务所需要的数据,并且通过API方式可以实现自助访问。
获取更多 Tapdata Real Time DaaS 的信息,可访问 Tapdata 官网 https://tapdata.net/ ,点击下载 Tapdata 技术白皮书 或 免费试用 Tapdata Real Time DaaS 。
版权归原作者 Lucifer三思而后行 所有, 如有侵权,请联系我们删除。