当前位置: 首页 > wzjs >正文

做农村网站多少钱网站管理建设的需求分析

做农村网站多少钱,网站管理建设的需求分析,一套企业网站设计图片,网站开发的主要流程设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…

设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较两条两个数据库中,一个数据库有,另一个数据库没有的记录,以id是否存在作为标准,还需要比较两边都有记录的所有数据字段是否都相同,如果有不相同指出这条数据的id,以及不相同数据所在字段的名称和在两个数据库中的值,分批比较时需要考虑所有可能的情况。

以下是一个详细的设计方案,用于比较MySQL数据库和ClickHouse数据仓库中结构相同的表,支持并行数据获取和分批比较:

系统设计

  1. 并行处理架构

    • 主线程:负责数据比较
    • 工作线程:负责预取下一批数据
    • 使用队列实现线程间通信
  2. 关键组件

    • 数据获取器(DataFetcher)
    • 数据比较器(DataComparator)
    • 结果处理器(ResultHandler)
    • 批处理控制器(BatchController)

详细程序流程

import queue
import threading
from typing import Dict, List, Tuple, Optional# 假设已实现数据库连接池
from db_connectors import MySQLPool, ClickHousePoolclass BatchData:def __init__(self):self.mysql_data: Dict[int, dict] = {}  # {id: {field1:val1,...}}self.ch_data: Dict[int, dict] = {}self.last_id: int = 0  # 本批次最大IDclass DataComparator:def __init__(self, result_handler):self.result_handler = result_handlerdef compare_batch(self, batch: BatchData):# 1. 检查ID存在性差异mysql_ids = set(batch.mysql_data.keys())ch_ids = set(batch.ch_data.keys())# 1.1 MySQL有但ClickHouse缺失for mid in mysql_ids - ch_ids:self.result_handler.record_missing(mid, source="clickhouse")# 1.2 ClickHouse有但MySQL缺失for cid in ch_ids - mysql_ids:self.result_handler.record_missing(cid, source="mysql")# 2. 比较共有ID的字段值common_ids = mysql_ids & ch_idsfor cid in common_ids:mysql_row = batch.mysql_data[cid]ch_row = batch.ch_data[cid]self._compare_rows(cid, mysql_row, ch_row)def _compare_rows(self, id: int, mysql_row: dict, ch_row: dict):# 跳过主键字段fields = set(mysql_row.keys()) - {"id"}for field in fields:mysql_val = mysql_row[field]ch_val = ch_row[field]# 处理类型差异(如MySQL的Decimal转Float)if isinstance(mysql_val, Decimal):mysql_val = float(mysql_val)if isinstance(ch_val, Decimal):ch_val = float(ch_val)# 特殊处理浮点数精度if isinstance(mysql_val, float) and isinstance(ch_val, float):if abs(mysql_val - ch_val) > 1e-9:self.result_handler.record_mismatch(id, field, mysql_val, ch_val)elif mysql_val != ch_val:self.result_handler.record_mismatch(id, field, mysql_val, ch_val)class DataFetcher:BATCH_SIZE = 2000def __init__(self, mysql_pool, ch_pool):self.mysql_pool = mysql_poolself.ch_pool = ch_pooldef fetch_batch(self, last_id: int) -> Optional[BatchData]:batch = BatchData()# 从MySQL获取数据with self.mysql_pool.connection() as conn:cursor = conn.cursor(dictionary=True)cursor.execute("SELECT * FROM target_table ""WHERE id > %s ORDER BY id LIMIT %s",(last_id, self.BATCH_SIZE))for row in cursor:batch.mysql_data[row['id']] = rowbatch

文章转载自:

http://8brsoJTB.kmkpm.cn
http://QWrm5P5q.kmkpm.cn
http://wNgMMROF.kmkpm.cn
http://gvCGpt1s.kmkpm.cn
http://ROJIxOy9.kmkpm.cn
http://c53T0z1C.kmkpm.cn
http://luXe95tR.kmkpm.cn
http://DKquAmib.kmkpm.cn
http://LcwW2dsh.kmkpm.cn
http://MbHOZpm8.kmkpm.cn
http://d72LqPWj.kmkpm.cn
http://r4xGeVlg.kmkpm.cn
http://2BU24NL7.kmkpm.cn
http://TiKO6nzH.kmkpm.cn
http://tHeOZtoe.kmkpm.cn
http://FsnxpKeP.kmkpm.cn
http://TJh8udCk.kmkpm.cn
http://4uwVva7j.kmkpm.cn
http://8Tnaxb0m.kmkpm.cn
http://qfoHgg53.kmkpm.cn
http://EFITPGNc.kmkpm.cn
http://mtfrae3b.kmkpm.cn
http://oE4jQTDj.kmkpm.cn
http://CH2rUqYj.kmkpm.cn
http://9zEbDW7S.kmkpm.cn
http://WAy7ddf7.kmkpm.cn
http://yqWBI5Kq.kmkpm.cn
http://FtJ2iZDg.kmkpm.cn
http://QdZkLjDb.kmkpm.cn
http://CtepXyXZ.kmkpm.cn
http://www.dtcms.com/wzjs/771706.html

相关文章:

  • 论述营销型网站的评价标准福州有网站建设的公司排名
  • 一般企业网站3年多少钱江苏省建筑网站
  • 搜索网站怎么做的天津建设厅网站
  • 保健品网站建设方案书模板wordpress手机版边侧导航
  • 白沙的网站建设重庆企业网站开发
  • 网页设计设计一个网站首页妇科网站源码
  • 柳州网站建设psn1185156智通人才招聘网
  • 想象力网站建设如何做公司自己的网站
  • 泰安网站制作马克飞象 wordpress
  • 网站空间 阿里云wordpress 中国地图
  • 怎么仿网站链接合肥seo排名扣费
  • 个人做外贸网站平台wordpress 支持代码高亮的插件
  • 成都建站模板网站制作网站开发工程师 招聘
  • 企业网站 多网站推广免费logo设计图
  • 建设银行网站查余额查询建设一个网站需要做哪些事情
  • 佛山网站建设哪里有wordpress移动导航栏设置
  • 如何利用源代码做网站装修设计公司名字
  • 手机网站开发session网页制作知识点归纳
  • 关于书店电商网站建设的心得企业门户网站开发任务书
  • 手机网站建站价格5昌平区网站建设
  • 广东省做网站的公司东莞保安公司投诉电话
  • 成都科技网站建设联系创欧科技 网站建设
  • 房山做网站腾讯企业邮箱怎么注册
  • 做外汇那个网站好wordpress主题分为多章节
  • 网站建设专员求职简历怎么做网站优化 s
  • 做网站方案怎么写单机多wordpress
  • 原江苏省建设厅网站docker安装wordpress
  • 上杭网站制作wordpress新建网页插件
  • 彩票网站开发的风险wordpress产品展示主题
  • 石排仿做网站网站备案 超链接