开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

利用已有的数据库构建安全的分布式数据库集群

作者:Trista Pan

  • 2022-08-28
    北京
  • 本文字数:3426 字

    阅读完需:约 11 分钟

利用已有的数据库构建安全的分布式数据库集群

背景

数据流量增长到我们在十多年前从未想到的水平,而且没有放缓的迹象。数据流量的指数级增长引领我们进入了大数据时代,数据从四面八方汹涌而出——移动应用程序、社交网络、客户数据库或物联网设备。

 

大数据的出现意味着对新技术、新挑战和新技能的关注,以跟上数据库新技术的发展步伐。

 

与此同时,现在我们称之为“传统数据库”的东西正在输给创新的数据库解决方案。作为大数据首选存储解决方案的数据湖,它的出现意味着建立在关系型数据库(传统数据库)之上、只能存储结构化数据的传统数据仓库正陷入挣扎的泥潭。相比之下,数据湖通常建立在 Hadoop 集群或 NoSQL 数据库之上。

 

本文从介绍自互联网成为主流以来出现的挑战开始,然后展示一些想法和解决其中一些问题(特别是数据分布和安全)的实践指南。

 

因为这两个问题与大数据的不同领域相关,所以你可能会想到很多可用的数据库。为了让事情简单明了,本文只考虑如何用分布式和安全特性来升级传统的数据库,如 MySQL、PostgreSQL 或 SQLServer。这种解决方案将你的数据库集群转换成分片的分布式系统,并加入数据加密和流量管理等有用的特性。这些优势可不是小打小闹,除此之外还有更多——如果你关注成本效益,你会看到升级和迁移数据库集群将为你带来净效益。

大数据带来的数据库挑战

在深入实际的层面之前,我们先来看看大数据的 5V 特征及其挑战。

 

  1. 容量(Volume)——数据量太大,无法进行有效的管理和使用。

  2. 多样性(Variety)——数据类型非常广泛,如结构化数据、非结构化数据和混合数据。

  3. 速度(Velocity)——蓬勃发展的互联网流量导致数据的生成速度不断增长。

  4. 准确性(Veracity)——数据的准确性决定了高管们对商业决策和前景的信心。

  5. 价值(Value)——数据积累和分析为企业发现新的潜在市场/产品创造了新的机会,并帮助他们作出更明智的决策。

 

因为“准确性”和“价值”与数据分析更为相关,所以不是本文的讨论重点。至于容量、多样性和速度,很多行业的企业正在为以下这些问题寻找解决方案。

 

  1. 如何有效存储和管理空前数量的数据?

  2. 如何按需灵活伸缩数据库实例?

  3. 在某些情况下,我们从多个数据源收集数据,然后组合成一个结果,那么如何同时管理结构化和非结构化的数据?

  4. 如何在最小化重构数量的情况下保护在线系统用户的隐私?

 

这些问题有多种可能的解决方案,例如寻找新的数据库供应商,或者开发中间件或插件。

 

但是,如果你正在使用或考虑使用开源的传统 DBMS,那么你可以参考本文后面的部分,并将其作为一种建议来改进或构建一种以传统 DBMS 为基础的安全分布式数据库系统。你可以选择 PostgreSQL、MySQL 或 RDS,下面的这些步骤都可以应用到你的系统中。

架构介绍

Apache ShardingSphere

Apache ShardingSphere是一个开源生态系统,它可以将任意数据库转换成分布式数据库系统,并加入分片、弹性伸缩、加密等特性。

 

关于这个项目的介绍已经在告诉我们——它可以帮助我们将现有的数据库转换成分布式数据库系统,并通过有用的特性来改进新系统。

 

这个过程相当简单。为了实现这个效果,你所要做的就是将项目导入到数据库系统中(也就是创建了一个分片数据库系统),然后按需进行伸缩,还可以对数据进行加密。下图是这种架构的概览。

 


如上图所示,分布式数据库系统由 ShardingSphere(本例为 ShardingSphere-Proxy)和各种数据库(MySQL、PostgreSQL、Aurora 或其他 SQL92 数据库)组成,ShardingSphere 位于应用程序和数据库之间。

 

在这个系统中,ShardingSphere 作为接收用户请求的计算节点,数据库作为保存数据和进行一些本地计算的存储节点。应用程序将查询发送到 ShardingSphere,就像它们将查询发送到 DBMS 一样。

 

传统的 SQL 用于查询数据库。然而,因为在分布式数据库系统中添加了多个新特性(比如自动伸缩、加密、SQL 审计),所以我们需要一种类似 SQL 的语言来操作这些新特性。

 

为了满足这一需求,并且不给用户造成新的障碍或学习曲线,ShardingSphere 使用了分布式 SQL (DistSQL)来实现无缝的转换。这意味着你可以登录到 ShardingSphere,然后输入 SQL 和 DistSQL 来创建分片表、加密表,或者启动伸缩作业。在下面的小节中,我将展示它的魔力和多功能性。

 

在继续其他内容之前,我们先来进一步分析前面的那张架构图。架构图对包括 ShardingSphere 在内的部署架构进行了概览,下面将对其进行“放大”,让你更深入地了解它。

 


从图中可以看出,ShardingSphere 不仅是分布式数据库系统的计算节点,还提供了很多有用的特性。其中 ShardingSphere-Proxy 和 ShardingSphere-JDBC 是两个客户端。

Database Plus

Database Plus 是 ShardingSphere 项目遵循的指导性开发概念。它是分布式数据库系统的一个概念,超越了简单的数据分片。

 

最初的设想是在现有的碎片化数据库之上建立一个标准化的层和生态系统,提供统一的 SQL 操作服务,最大限度地减少数据库差异。应用程序可以直接与标准化服务通信,不需要费劲匹配每一个不同的数据库。ShardingSphere 利用了传统 DBMS 和 NoSQL 数据库(在规划中),并成为最终用户的标准数据库服务器。

 


功能插件

Database Plus 术语中的“功能插件”是指所有这些特性既可以独立运行,也可以同时运行。

 

这意味着基于 Database Plus 的数据库系统是可调节和“可插拔”的,为最终用户简化了组合多种功能插件的复杂性。ShardingSphere 目前支持分片、读写分离、数据库网关、数据加密、分布式权限、影子数据库等功能。

客户端

生态系统中包含了两个客户端,可以单独或同时部署。

 

ShardingSphere-Proxy 是透明的数据库代理,也作为数据库服务器。因此,它应该独立部署在服务器上。目前,PostgreSQL 和 MySQL 与 ShardingSphere 配合得很顺畅。

 

ShardingSphere-JDBC 是一个扩展了 Java JDBC 层的轻量级 Java 框架,可以集成到 JDBC 应用程序中。

 

我们可以同时部署这两个客户端,ShardingSphere-JDBC 作为高性能的驱动程序,ShardingSphere-Proxy 作为管理客户端。

 

利用 DBMS 创建安全的分布式数据库集群

 

在了解了架构之后,现在让我们来一步一步地创建分片和安全的 Aurora 数据库系统(步骤指南在后面)。我们将使用 ShardingSphere 的分片插件、数据加密插件以及 ShardingSphereProxy 来构建一个分布式数据库系统,如下图所示。



完成指南中的步骤后,你将得到的最终解决方案将如下图所示。



应用程序将 ShardingSphere + PostgreSQL 实例看成是一个分布式数据库,并像对待 PostgreSQL 那样对待 ShardingSphere。从用户的角度来看只有一个逻辑表 t_user。但实际上,这个逻辑表是由四个实际表组成的,从 t_user_0 到 t_user_3,它们位于两个不同的 PostgreSQL 实例中。

 

逻辑表 t_user 有一个 tel 列,用于存储用户的电话号码。由于电话号码是敏感数据,所以在存储到数据库中时必须进行加密。为此,在实际表中创建了 tel_cipher 和 tel_plain 两个列,用于保存相应的密文和明文(可选,这里仅为演示目的)。

 

生态系统的用户友好性体现在最终用户不需要关心实际表中的列,也不需要关心如何将逻辑列映射到实际列。他们只需使用逻辑列和明文数据构造 SQL 语句,ShardingSphere 会完成数据分片的整个过程,并自动对数据进行加密和解密。

 

ShardingSphere-Proxy 在后台处理这些过程,大大简化了用户的工作,用户只需要处理逻辑表 t_user 的逻辑列 tel。但是,在运行 SQL 查询之前,用户需要告诉 ShardingSphere 如何分片和加密数据。

步骤指南

 

下面的演示是在 AWS 上进行的,将 Aurora 数据库作为存储节点,运行在 EC2 上的 ShardingSphere 作为计算节点。

 

1. 创建 ShardingSphere-Proxy EC2 实例



2. 创建 Aurora 数据库



3. 部署 ShardingSphere-Proxy



4. 登录 ShardingSphere-Proxy


5. 初始化 Aurora 数据库




6. 通过 SQL 和分布式 SQL 使用加密规则和分片规则初始化 ShardingSphere






7. 在 ShardingSphere-Proxy 上插入测试数据行

 


8. 运行查询 SQL

 


 

9. 检查 Aurora 数据库中的数据

 



总结

这篇文章的重点是介绍如何使用 ShardingSphere 在 Aurora 上创建安全的分布式数据库,同时也提供了添加新特性的可能性。

 

本文提供的指南也可用于将其他各种受支持的数据库作为这种分布式数据库的存储节点。由于开源的强大力量,可能也有许多其他的解决方案可以解决类似的问题,我希望本文的读者能够找到最适合他们的解决方案。

 

作者简介:

 

Trista Pan 是 SphereEx 联合创始人兼 CTO、Apache 成员和孵化器导师、Apache ShardingSphere PMC、AWS Data Hero、腾讯云 TVP。曾负责京东数科智能数据库平台的设计与开发。

 

原文链接

Creating a Secure Distributed Database Cluster Leveraging Your Existing Database Management System

2022-08-28 08:005294

评论

发布
暂无评论
发现更多内容

MacOS苹果系统中如何连接Android(安卓)手机?

Rose

win版Cyber​​Link PhotoDirector2024(相片大师)激活版

iMac小白

win版JetBrains IntelliJ IDEA Ultimate 2024(Java集成开发环境)激活版

iMac小白

碳实践|碳管理:企业业务创新的绿色引擎

AMT企源

双碳 碳管理 AMT企源 碳核算

苹果mac电脑剪辑新境界!Final Cut Pro,专业视频编辑的首选!

Rose

三大国密浏览器简单介绍-行云管家

行云管家

信创 国密 国密算法

R-Wipe & Clean(磁盘清理) v20.0.2457 激活版下载

iMac小白

win版威力导演 2024 (CyberLink PowerDirector Ultimate)特别版

iMac小白

win版iZotope Ozone Advanced (音频制作软件)v11.0.1 直装版

iMac小白

iZotope Ozone下载 iZotope Ozone激活版 iZotope Ozone破解版

photoshop2024神经滤镜 ps2024 最新版下载安装 mac/win

Rose

MySQL 开源到商业(四):MySQL 成了烫手山芋

小猿姐

MySQL 开源

win版 Rhinoceros 8 (犀牛8) 激活版

iMac小白

Rhinoceros 8下载 Rhinoceros 8 破解版 Rhinoceros 8激活版

photoshop2020破解版下载 ps 2020中文版安装教程 Mac/win

Rose

小程序框架+LLM,从融媒到智媒进化思路

FinFish

小程序技术 智能媒体生产 小程序容器技术 融媒体 智慧传媒

win版SketchUp Pro 2024 (草图大师2024)v24.0.484 特别版

iMac小白

SketchUp2024下载 SketchUp2024激活版 SketchUp2024破解版

win版JetBrains WebStorm 2024(JavaScript集成开发环境)v2024.1.2 中文特别版

iMac小白

WebStorm破解版 WebStorm中文版 WebStorm2023下载

Microsoft Office LTSC 2021下载安装教程+激活工具 Mac/win

Rose

2024年重庆等保测评公司有哪些?分别位于哪里?

行云管家

等保 等保测评 重庆 等保机构

魔兽争霸3:冰封王座Warcraft III: Frozen Throne中文版 mac/win

Rose

Parallels Desktop 18虚拟机永久破解版 PD18安装教程分享

Rose

远程办公神器!Microsoft Remote Desktop助你高效远程协作

Rose

GPT-4o API 的全新版本:性能与性价比的完美平衡

Liam

openai GPT GPT-4 API 接口 开放 API

win版Topaz Photo AI(图片降噪软件) v3.0.3 特别版

iMac小白

Topaz Photo AI下载 Topaz Photo AI破解版 Topaz Photo AI激活版

Parallels Desktop 17 for Mac:Windows虚拟化工具

Rose

Clicker for YouTube mac版:YouTube客户端 v1.22中文激活版 兼容M芯片

Rose

Downie 4 for mac,视频下载更快、更强、更智能!

Rose

利用已有的数据库构建安全的分布式数据库集群_数据库_InfoQ精选文章