IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Citus兼容Odoo调研 -> 正文阅读

[大数据]Citus兼容Odoo调研

一. Citus是什么

Citus是一个PostgreSQL扩展,它允许数据库服务器(即节点)在一个Shared Nothing的架构中彼此协调。这些节点形成了一个集群,使得PostgreSQL能够比一台计算机使用更多的CPU内核来存储更多的数据,同时还允许通过向集群添加更多节点来扩展数据库。

官方文档:Citus Documentation — Citus 10.0 documentation (citusdata.com)

优势:Citus适合做单表查询,且该单表数据量越大,Citus的优势就越明显。

劣势:Citus集群相对于单机PostgreSQL,对SQL有一些支持不完善的地方,对regregate函数支持不好,要求必须可以分解。实际上PostGIS中很多聚集函数都不支持,例如ST_ClusterWithin,st_extent。

主要特性

  • PostgreSQL兼容
  • 水平扩展
  • 实时并发查
  • 快速数据加载
  • 实时增删改查
  • 持分布式事务
  • 支持常用DDL

二. Citus架构节点

Container简称CN节点,CN只存储和数据分布相关的元数据,实际的表数据被分成M个分片,打散到N个Worker上。这样的表被叫做“分片表”,可以为“分片表”的每一个分片创建多个副本,实现高可用和负载均衡。分片表分布打散在多个worker节点,而参考表每一个container节点和worker都保留一模一样的副本。

下图是Citus处理客户端访问的一个简单的架构流程图,应用层直接连接CN节点,CN节点对客户端传入的sql语句进行解析,生成分布执行计划,并将各个子任务下发到相应的Worker节点,之后收集Worker的结果,经过处理后返回最终结果给客户端。最基本的流程就是这样,但是生成环境我们还应该考虑到高可用。

三. Citus对odoo的兼容

Citus能够兼容odoo。已在实际环境中测试, odoo13和odoo14均可以搭建在Citus数据环境中,并正常运行,包括安装、卸载odoo应用和应用中各项数据的增、删、改、查。

数据架构:

运行截图:

四. Citus的扩缩容

citus企业版中可以进行动态扩容,社区版中尚不支持动态扩容。不过我们可以通过修改元数据表中的分片信息来实现类似的功能。

我们可以通过citus自带的master_add_node函数来添加节点到集群中,现有的参考表可以自动分布到新的节点中,但是分片表却不可以自动同步到新的work节点中。

对于分片表,我们则需要手动移动这些分片,大致步骤为:

1、 表复制

在移动目标分片的源端和目的端建立复制。

2、 元数据切换

加锁,阻塞相关的分片表的数据变更;

修改pg_dist_shard_placement元数据表,变更分片位置信息。

3、 清理

DROP切换前的旧的分片。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:14:33  更:2022-03-17 22:18:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:48:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码