会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 如何使用地理分区来遵守数据法规并在全球范围内提供低延迟!

如何使用地理分区来遵守数据法规并在全球范围内提供低延迟

时间:2025-11-05 13:33:23 来源:益强数据堂 作者:系统运维 阅读:172次

译者 | 李睿

审校 | 重楼

在当今互联互通的何使世界中,用户可以跨越多个大洲和国家使用应用程序。用地延迟在处理数据监管要求的理分同时,在遥远的区遵全球地理位置保持低延迟可能是一个挑战。分布式SQL数据库的守数地理分区功能可以通过将用户数据固定到所需的位置来帮助解决这一挑战。

因此,据法以下探讨如何使用YugabyteDB Managed部署符合数据规则并跨多个区域提供低延迟的规并供低地理分区数据库集群。

使用YugabyteDB Managed部署地理分区集群

YugabyteDB是范围一个基于PostgreSQL的开源分布式SQL数据库。用户可以使用YugabyteDB Managed (YugabyteDB的内提DBaaS版本)在几分钟内部署地理分区集群。

开始使用地理分区的何使YugabyteDB托管集群很容易。只需遵循以下步骤:

1.选择“多区域部署”选项。用地延迟在创建专用YugabyteDB Managed集群时,理分选择“多区域”选项,区遵全球以确保数据分布在多个区域。守数

2.将数据分布模式设置为“分区”。据法选择“按区域划分”数据分发选项,以便用户可以将数据固定到特定的地理位置。

3.选择目标云区域。将数据库节点放置在用户选择的云区域中。在这篇博客文章中,将数据分散到两个区域——南卡罗来纳州(美国东部)和法兰克福(欧洲西部)。服务器托管

一旦设置了地理分区的YugabyteDB Managed集群,就可以连接到它并创建带有分区数据的表。

创建地理分区表

为了演示地理分区如何改善延迟和数据法规的合规性,以一个帐号表为例。

首先,创建PostgreSQL表空间,让用户可以将数据固定在USA (usa_tablespace)或Europe (europe_tablespace)的YugabyteDB节点上。

复制SQL CREATE TABLESPACE usa_tablespace WITH ( replica_placement = {"num_replicas": 3, "placement_blocks": [ {"cloud":"gcp","region":"us-east1","zone":"us-east1-c","min_num_replicas":1}, {"cloud":"gcp","region":"us-east1","zone":"us-east1-d","min_num_replicas":1}, {"cloud":"gcp","region":"us-east1","zone":"us-east1-b","min_num_replicas":1} ]} ); CREATE TABLESPACE europe_tablespace WITH ( replica_placement = {"num_replicas": 3, "placement_blocks": [ {"cloud":"gcp","region":"europe-west3","zone":"europe-west3-a","min_num_replicas":1}, {"cloud":"gcp","region":"europe-west3","zone":"europe-west3-b","min_num_replicas":1}, {"cloud":"gcp","region":"europe-west3","zone":"europe-west3-c","min_num_replicas":1} ]} );1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18. num_replicas: 3——每个表空间要求用户在一个区域内的三个可用性区域中存储数据副本。这使用户能够容忍云中的区域级中断。

其次,创建帐号表并按country_code列对其进行分区:

复制SQL CREATE TABLE Account ( id integer NOT NULL, full_name text NOT NULL, email text NOT NULL, phone text NOT NULL, country_code varchar(3) ) PARTITION BY LIST (country_code);1.2.3.4.5.6.7.8.9.

第三,为美国和欧洲记录定义分区表

复制SQL CREATE TABLE Account_USA PARTITION OF Account (id, full_name, email, phone, country_code, PRIMARY KEY (id, country_code)) FOR VALUES IN (USA) TABLESPACE usa_tablespace; CREATE TABLE Account_EU PARTITION OF Account (id, full_name, email, phone, country_code, PRIMARY KEY (id, country_code)) FOR VALUES IN (EU) TABLESPACE europe_tablespace;1.2.3.4.5.6.7.8.9.10. FOR VALUES IN (USA)——如果country_code等于‘USA,则自动从存储在usa_tablespace(南卡罗来纳州的区域)中的Account_USA分区中放置或查询该记录。FOR VALUES IN (EU) ——否则,如果记录属于欧洲(country_code等于‘EU’),那么它将存储在europe_tablespace(法兰克福地区)的Account_EU分区中。

现在检查一下用户从美国连接时的读写延迟。

从美国连接时的延迟

打开一个从爱荷华州(us-central1)到位于南卡罗来纳州(us-east1)的数据库节点的客户端连接,并插入一条新的帐户记录:

复制SQL INSERT INTO Account (id, full_name, email, phone, country_code) VALUES (1, John Smith, john@gmail.com, 650-346-1234, USA);1.2.3.

只要country_code为“USA”,云服务器记录就会存储在来自南卡罗来纳州的数据库节点上。写入和读取延迟大约为30毫秒,因为客户端请求需要在衣阿华州和南卡罗来纳州之间传输。

接下来,看看当添加和查询country_code设置为‘EU’的帐户时会发生什么:

复制SQL INSERT INTO Account (id, full_name, email, phone, country_code) VALUES (2, Emma Schmidt, emma@gmail.com, 49-346-23-1234, EU); SELECT * FROM Account WHERE id=2 and country_code=EU;1.2.3.4.5.

由于这一帐户必须存储在欧洲数据中心中,并且必须在美国和欧洲之间传输,因此增加了延迟。

INSERT的延迟(230毫秒)高于SELECT的延迟(130毫秒),因为在INSERT期间,记录会在法兰克福的三个可用性区域中复制。

美国的客户端连接和欧洲的数据库节点之间的延迟更高,这意味着地理分区集群使用户符合数据监管要求。即使来自美国的客户端连接到基于美国的数据库节点并写入/读取来自欧洲居民的记录,这些记录也将始终从欧洲的数据库节点存储/检索。

从欧洲连接时的延迟

让我们看看,如果打开从法兰克福(europe-west3)到同一区域的数据库节点的客户端连接,并查询最近从美国添加的欧洲记录,站群服务器延迟是如何改善的:

这一次延迟低至3毫秒(从美国查询同一条记录时为130毫秒),因为该记录存储在欧洲数据中心并从欧洲数据中心检索。

只要数据不复制到美国,添加和查询另一个欧洲记录也可以保持低延迟。

复制SQL INSERT INTO Account (id, full_name, email, phone, country_code) VALUES (3, Otto Weber, otto@gmail.com, 49-546-33-0034, EU); SELECT * FROM Account WHERE id=3 and country_code=EU;1.2.3.4.5.

当访问存储在同一区域的数据时,延迟显著降低。其结果是在遵守数据监管要求的同时提供了更好的用户体验。

结语

地理分区是一种符合数据规则和实现全局低延迟的有效方法。通过使用YugabyteDB Managed部署地理分区集群,可以智能地跨区域分发数据,同时保持高性能查询功能。

原文标题:How To Use Geo-Partitioning to Comply With Data Regulations and Deliver Low Latency Globally,作者:Denis Magda

(责任编辑:应用开发)

上一篇:以台式电脑沙盘制作教程(打造个性化台式电脑沙盘,让工作更高效)
下一篇:假如你在Debian或Ubuntu系统上经常感觉到apt-get 或 aptitude包安装速度过慢,那么这里就有几种改善这一情况的方法。你有没有考虑过改变正被使用的默认镜像站点?你有没有排除因特网连接的上游带宽成为瓶颈的可能?假如不是这些原因,你可以尝试第三个选择:使用apt-fast工具。apt-fast实际上是一个围绕apt-get和aptitude所写的shell脚本容器,它能加速包的下载速度。apt-fast本质上采用aria2下载工具,这款工具能够以“块”的方式从多个镜像并行下载一个文件(就像BitTorrent下载)。在Debian或Ubuntu上安装apt-fast下面是在基于Debian的Linux上安装apt-fast的步骤Debian复制代码代码如下: $ sudo apt-get install aria2 $ wget https://github.com/ilikenwf/apt-fast/archive/master.zip $ unzip master.zip $ cd apt-fast-master $ sudo cp apt-fast /usr/bin $ sudo cp apt-fast.conf /etc $ sudo cp ./man/apt-fast.8 /usr/share/man/man8 $ sudo gzip /usr/share/man/man8/apt-fast.8 $ sudo cp ./man/apt-fast.conf.5 /usr/share/man/man5 $ sudo gzip /usr/share/man/man5/apt-fast.conf.5Ubuntu 14.04 以及更高版本复制代码代码如下:$ sudo add-apt-repository ppa:saiarcot895/myppa $ sudo apt-get update $ sudo apt-get install apt-fastUbuntu 11.04 到 Ubuntu 13.10复制代码代码如下:$ sudo add-apt-repository ppa:apt-fast/stable $ sudo apt-get update $ sudo apt-get install apt-fast在安装期间,你需要选择一个默认的软件包管理器 (e.g., apt-get. aptitude ),还需要设置其余选项。但是你可以随时通过编辑配置文件 /etc/apt-fast/conf 来更改设置。配置 apt-get安装完成后,你需要在/etc/apt-fast.conf里配置apt-fast使用的一系列镜像。你可以在下面的URL中找到一系列Debian/Ubuntu镜像。 Debian: http://www.debian.org/mirror/list Ubuntu: https://launchpad.net/ubuntu/+archivemirrors选择完那些地理上靠近你的镜像后,你需按照下面的格式将选择的镜像加入到/etc/apt-fast.conf。复制代码代码如下: $ sudo vi /etc/apt-fast.confDebian:复制代码代码如下:MIRRORS=(http://ftp.us.debian.org/debian/,http://carroll.aset.psu.edu/pub/linux/distributions/debian/,http://debian.gtisc.gatech.edu/debian/,http://debian.lcs.mit.edu/debian/,http://mirror.cc.columbia.edu/debian/)Ubuntu/Mint:复制代码代码如下:MIRRORS=(http://us.archive.ubuntu.com/ubuntu,http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/,http://mirror.cc.vt.edu/pub2/ubuntu/,http://mirror.umd.edu/ubuntu/,http://mirrors.mit.edu/ubuntu/)如上面所示,对于一个特定档案的个别镜像,需要用逗号分割开来。你需要在/etc/apt/sources.list的MIRRORS字符串中包含默认的镜像指定站点。使用apt-fast安装一个包现在你就可以测试apt-fast的强大了。下面是使用apt-fast的示例:复制代码代码如下:apt-fast [apt-get options and arguments] apt-fast [aptitude options and arguments] apt-fast { { install | upgrade | dist-upgrade | build-dep | download | source } [ -y | --yes | --assume-yes | --assume-no ] ... | clean }使用apt-fast安装包:复制代码代码如下:$ sudo apt-fast install texlive-full在当前目录下载软件包,但不安装:复制代码代码如下:$ sudo apt-fast download texlive-full 如前面所示,apt-fast的并行下载是通过aria2完成的。你可以看到如下图般从多个镜像并行下载。复制代码代码如下:$ sudo netstat -nap | grep aria2c 请注意,apt-fast并没有加速apt-get update。并行下载只在install, upgrade, dist-upgrage和build-dep操作中触发。其余的操作,apt-fast就会简单地回到默认的包管理器apt-get或aptitude。apt-fast有多快?为了比较apt-fast和apt-get,我尝试在两个相同的Ubuntu实例上使用两种方法安装几个软件包。下面的图表展示了所有软件包安装的时间(单位为秒)。正如你所见到的,apt-fast确实比apt-get快(e.g. 快3--4秒),特别是安装庞大软件包的时候。当然,安装性能的提高程度还依赖你上游因特网连通性。以我为例,我有富足的带宽来支持我的上游连接。这也是为什么我看到并行下载带来了成功的提高。
最新内容
推荐内容
  • 电脑QQ开机错误解决指南(解决每次开机都出现的电脑QQ错误)
  • Java 21 的虚拟线程:高性能并发应用的福音
  • 对前端来说开发一个在线文档需要啥技术?
  • 分布式算法最全详解(4大主流算法图解)
  • 电脑错误代码的解读与修复方法(掌握常见电脑错误代码,解决烦恼轻松快捷)
  • 用香蕉驱动一个随机数生成器,靠谱吗?