人类河流文明 - 数据的流动与生态的重要性

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

背景

人类社会文明源起于河流文化,人类社会发展积淀河流文化,河流文化生命推动社会发展。

河流文化作为一种人类的文化、文明类型,被人们认知已经经历了很长的历史时期,人们把其称为“大河文明”,尼罗河、幼发拉底河、和底格里斯河流域的两河文明、印度河文明、黄河文明。

这些大河文明与人类文明息息相关,是人类文明的源泉和发祥地。河流与人类文明的相互作用,造就了河流的文化生命。河流先于人类存在于地球上,供养生命,使地球充满生机。

河流与人类社会的关系具有悠久的历史,河流文化生命概念的提出,扩展了社会调控范围,引起了一系列的变革。

pic

https://en.wikipedia.org/wiki/Amazon_River

http://baike.baidu.com/item/%E4%BA%9A%E9%A9%AC%E5%AD%99%E6%B2%B3/155637

http://baike.baidu.com/item/%E6%B2%B3%E6%B5%81%E6%96%87%E5%8C%96/3895706

水是生命的源泉,人类依水而居

水是生命的源泉,人类依水而居,水的流动性,使得更多的地球生物可以共享使用,生物赖以生存,哺育了各个时期的人类文明。

数据的流动具有同等重要的地位,数据流动起来,可以让更多的业务从中受惠,哺育更多的业务,发挥数据更大的价值。

那么如何让数据流动起来呢?

河流形态 1 - 流式

从源头说起

水的源头通常发源自大的山脉和冰川,例如长江源(三江源之一):即长江的源头、也即通天河的几个源头,在青藏高原腹地昆仑山脉和唐古拉山脉之间。

亚马逊河流发源地安第斯山脉(盖丘亚语:Andes;奇楚亚语:Antis)属于科迪勒拉山系,也称安弟斯山脉或安蒂斯山脉,位于南美洲的西岸,范围从巴拿马一直到智利。从北到南全长8900余千米,是世界上最长的山脉,纵贯南美大陆西部,素有“南美洲脊梁”之称,山脉有许多海拔6000米以上、山顶终年积雪的高峰,且地区矿产资源丰富。

数据的源头,和业务相关,例如和人类相关的业务(电商系统、车联网、金融系统等等),人类的活动就是数据的来源。

人类活动产生的数据,写入数据库,形成数据冰川,为河流的形成奠定了基础。

为了提高响应速度,提高可靠性,通常数据库都有预写日志系统。从预写日志可以解读出数据的变化,形成冰川融化效应,将这些解读出来的数据,汇入MQ系统,形成数据的流动。

数据在流动过程中,附着了各种围绕数据而产生的业务生态,例如流计算、全文索引、二级缓存、监控、大数据平台等等。

pic

confluent是一个开源的数据流平台。

http://docs.confluent.io/current/

PostgreSQL 河流的形成

pic

1、PostgreSQL数据库端,添加扩展插件,插件的功能是提供将WAL解析为某种格式。

2、搬运工(客户端),连接PG数据库,通过流复制协议将PG数据库解析好的WAL,获取过来。(支持断点续传、支持拖表的已有数据、支持快照和续传)

3、搬运工(客户端),将从PG数据库获取到的数据写入Kafka队列。

4、河流生态,从Kafka消费数据。

PS:

通过创建SLOT(记录WAL的解析位点),PG支持断电续传,同时也支持多个搬运工,不同的搬用工独立工作,可以搬运重复数据,也可以搬运非重复数据。

当搬运工不在需要时,记得在PG数据库中删除对应的SLOT(例如 select pg_drop_replication_slot('bottledwater');)。

其他数据库河流的形成

与PG类似。

应用案例 - 河流生态

1 数据实时汇聚和分析

例如业务有多个OLTP数据库(例如本文提到的PostgreSQL、MySQL等),通过本文提到的方法,可以将数据实时的写入到分析型的数据库(例如RDS PostgreSQL, HybridDB for PostgreSQL)。

分析人员可以在分析库中看到延迟较低的在线业务产生的数据。

2 流计算

通过本文提到的方法,将数据实时从OLTP数据库流出,并流入流计算业务数据库(例如 pipelineDB),实现数据的实时预警、实时流式计算等。

3 实时索引

将流出的数据,实时写入全文检索软件(例如ES),并实时的创建全文索引。

PS:PostgreSQL数据库本身还提供了FDW或UDF接口,也可以实现实时的对接ES全文检索。

或者你可以使用PG自身提供的全文检索功能(tsvector)。

《PostgreSQL 全文检索加速 快到没有朋友 - RUM索引接口(潘多拉魔盒)》

《PostgreSQL 行级 全文检索》

4 实时缓存

使用本文提到的方法,我们可以将数据实时的在缓存系统进行回放,实时的更新缓存。

流式河流的形态,用户可以使用河流中的数据,但是用完就消失了,你无法对它进行重复享用。因此我们再介绍一种形态,蓄式河流。

河流形态 2 - 蓄式

蓄式河流,数据会永久的存在于河流中,供给生态业务共享使用,阿里云的OSS对象存储是一个海量的蓄式河流。

用户可以将数据(不管什么类型的数据)写入OSS,对接数据消费者,例如阿里云RDS PostgreSQL, 阿里云HybridDB for PostgreSQL,通过FDW对接OSS,对数据进行分析和使用。

PostgreSQL 具备强大的OLTP能力,同时具备透明读写OSS的能力,是蓄式河流生态中数据处理非常重要的角色。业务方可以将它作为数据分析、在线事务处理的数据库。

HybridDB for PostgreSQL ,具备PG功能的同时,还具备了横向扩展能力,是面向OLAP设计的一款产品,分析能力卓越。业务方可以将其作为蓄式河流生态中的数据分析角色。

下面这幅图描绘了典型的云端计算(PG,HDB for PG)和河流(OSS)生态结合的例子。

pic

对于MySQL用户,可以使用阿里云的一个开源软件rds_dbsync,将数据从binlog解出并实时写入OSS,然后就可以使用云端计算(PG, HDB for PG)和河流(OSS)结合。

pic

小结

1、流式河流,即取即释,数据流过,特别适合生态业务对数据进行实时的处理,例如流计算、生成全文检索、实时预警、缓存业务。

2、蓄式河流,数据会持久的保存在OSS中,特别适合需要反复使用同一份数据,或者需要将数据分享给多个业务方使用的场景。例如云端计算(PG, HDB for PG)产品。用户可以使用这种方法,实现OLTP和OLAP的实时打通。

参考

http://docs.confluent.io/current/

https://github.com/confluentinc/bottledwater-pg

https://www.confluent.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/

目录
相关文章
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
985 0
|
算法 安全 搜索推荐
深入浅出:使用Python实现人脸识别系统
在当今数字化时代,人脸识别技术已成为安全验证、个性化服务等领域的关键技术。本文将引导读者从零开始,逐步探索如何利用Python和开源库OpenCV来构建一个基础的人脸识别系统。本文不仅会详细介绍环境搭建、关键算法理解,还会提供完整的代码示例,帮助读者理解人脸识别的工作原理,并在实际项目中快速应用。通过本文,您将能够掌握人脸识别的基本概念、关键技术和实现方法,为进一步深入学习和研究打下坚实的基础。
|
人工智能 开发者
文章和 PPT 配图有救了!SVG 绘图专家智能体大揭秘
本文分享如何使用 DeepSeek-V3-0324 和 Claude 3.5 或 3.7 绘制出高质量的图片,可以作为文章配图也可以为 PPT 配图,效率成倍增长。文章还介绍了原型图绘制、图片重绘修改和彩色报纸风的进阶案例。希望本文提供的技巧对大家有帮助,大家也可以修改提示词定制自己喜欢的风格。
1060 13
|
12月前
|
存储 弹性计算 人工智能
阿里云服务器2核8G/4核16G/8核32G配置热门实例规格对比与选购指南
如果我们是计划购买2核8G/4核16G/8核32G配置的阿里云服务器,在阿里云活动中一般会有经济型e、通用算力型u1、通用型g7、通用型g8i和通用型g8y几种常见的实例规格可选,尽管这些实例在配置上相似,但它们在性能、价格以及适用场景上存在显著差异。本文将深入解析这些实例规格的性能特点、价格差异及适用场景,为用户在阿里云服务器购买时提供详实的参考依据。
|
存储 搜索推荐 Java
探索移动应用开发:从基础到高级实践
【10月更文挑战第38天】在数字化时代的浪潮中,移动应用成为连接用户与数字世界的重要桥梁。本文旨在为初学者和有经验的开发者提供一个全面的移动应用开发指南,涵盖从基本概念、开发环境搭建到高级功能实现的各个方面。通过深入浅出的方式,我们将一起揭开移动应用开发的神秘面纱,让你能够自信地设计和构建自己的移动应用。
|
运维 安全 应用服务中间件
自动化运维之宝:使用Ansible实现批量配置管理
【8月更文挑战第45天】在现代IT运维领域,自动化工具的运用如同给运维人员装备了一副翅膀。本文将介绍如何利用Ansible这一强大的自动化工具来简化和加速日常的运维任务,特别是批量配置管理的实战技巧。通过实际案例,我们将深入探讨如何编写Ansible Playbook,以及如何使用它来自动化软件部署、系统配置和安全性强化。你将学会如何从重复繁琐的任务中解放出来,提升效率,保障系统的稳定性与安全性。
290 21
|
缓存 JavaScript 前端开发
vuecli3 项目在 ie11 下面白屏报错:SCRIPT1002: 语法错误
vuecli3 项目在 ie11 下面白屏报错:SCRIPT1002: 语法错误
727 0
|
Java 数据库连接 网络安全
Error creating bean with name ‘attrAttrgroupRelationController‘
Error creating bean with name ‘attrAttrgroupRelationController‘
Error creating bean with name ‘attrAttrgroupRelationController‘
|
监控 Java API
Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能
Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能
311 0