StarRocks 排查单副本表

文章目录

    • StarRocks 排查单副本表
      • 方式1 查询元数据,检查分区级的副本数
      • 方式2 SHOW PARTITIONS命令查看 ReplicationNum
      • 修改副本数命令

StarRocks 排查单副本表

方式1 查询元数据,检查分区级的副本数

# 方式一 查询元数据,检查分区级的副本数
with v_tmp1 as (
  select
    TABLE_ID, PARTITION_ID, tablet_id, count(*) as cnt
  from
    information_schema.be_tablets
  group by
    TABLE_ID, PARTITION_ID, tablet_id
  having
    count(*) = 1
) 
select /*+ set_var(query_timeout = 20) */
  distinct t1.TABLE_SCHEMA, t1.TABLE_NAME
from information_schema.tables_config t1 
join v_tmp1 t2 on t1.TABLE_ID = t2.TABLE_ID
;

方式2 SHOW PARTITIONS命令查看 ReplicationNum

# 方式二 遍历所有库表SHOW PARTITIONS命令查看 ReplicationNum
SHOW  PARTITIONS FROM [db_name.]table_name WHERE ReplicationNum = 1

修改副本数命令

# 修改副本数命令
# 修改表基本副本数
ALTER TABLE example_db.my_table SET ("default.replication_num" = "2");
# 单分区副本数
ALTER TABLE example_db.my_table SET ("replication_num" = "2");
# 历史分区副本数
ALTER TABLE example_db.my_table MODIFY PARTITION (*) SET("replication_num"="2");

遍历所有库表执行SHOW PARTITIONS命令

import pymysql
import logging
logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    filemode='a',
                    filename='./sr.log'
                    )

ip = '10.xx'
port = 9030
user = 'xx'
passwd = 'xx'
database = 'information_schema'

class MysqlUtils(object):
    def __init__(self, ip, port, user, passwd, database):
        self.ip = ip
        self.port = port
        self.user = user
        self.passwd = passwd
        self.database = database
        self.conn = None
        self.cur = None
        try:
            self.conn = pymysql.connect(host=self.ip, user=self.user, passwd=self.passwd, port=self.port,
                                        charset='utf8', database=self.database)
        except Exception as e:
            logging.error("连接失败:{}".format(e))
        if self.conn:
            self.cur = self.conn.cursor()

    def close(self):
        if self.cur:
            self.cur.close()
        if self.conn:
            self.conn.close()

    def insert_data(self, sql, data):
        if self.cur:
            # cur = conn.cursor(pymysql.cursors.DictCursor)
            try:
                self.cur.executemany(sql, data)
            except pymysql.Error as e:
                logging.error("executemany执行失败:{}".format(e))
                self.conn.rollback()
                self.conn.close()
            self.conn.commit()


    def select_data(self,sql):
        if self.cur:
            self.cur.execute(sql)
            res = self.cur.fetchall()
            return res


def start():

    obj = MysqlUtils(ip, port, user, passwd, database)
    sql1 = "show databases;"
    dbs = obj.select_data(sql1)  # (('_statistics_',), ('ads_biz',))
    dbs = [d[0] for d in dbs if d[0] not in ('_statistics_','information_schema')]
	resu = list()
    for db in dbs:

        sql2 = "show tables from {}".format(db)
        tables = obj.select_data(sql2)
        tables = [t[0] for t in tables]
        # print(tables)

        for table in tables:
            # sql3 = "show create table `{}`.`{}`".format(db,table)
            # sql3 = """ ALTER TABLE `{}`.`{}` MODIFY PARTITION (*) SET("replication_num"="2"); """ .format(db,table)
            sql3 = "SHOW  PARTITIONS FROM `{}`.`{}` WHERE ReplicationNum = 1".format(db,table)
            logging.info(sql3)
            try:
                res = obj.select_data(sql3)  
            except Exception as e:
                logging.error(e)
            if res:
                resu.append(res)
    obj.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django基础 - 01入门简介

一、 基本概念 1.1 Django说明 Django发布于2005年, 网络框架, 用Python编写的开源的Web应用框架。采用了MVC框架模式,也称为MTV模式。官网: https://www.djangoproject.com1.2 MVC框架 Model: 封装和数据库相关…

华为OD --- 敏感字段加密

华为OD --- 敏感字段加密 题目独立实现思路源码实现 参考实现 题目 独立实现 思路 通过便利字符串把所有“关键字”找出来,然后将第N个关键字替换成******,最后再通过 “_” 拼接起来即可 源码实现 const rl require("readline").createInterface({ input: proce…

WebRTC服务质量(05)- 重传机制(02) NACK判断丢包

WebRTC服务质量(01)- Qos概述 WebRTC服务质量(02)- RTP协议 WebRTC服务质量(03)- RTCP协议 WebRTC服务质量(04)- 重传机制(01) RTX NACK概述 WebRTC服务质量(…

着色器 (三)

今天,是我们介绍opengl着色器最后一章,着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之…

【Linux网络】网络基础:IP协议

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:Linux “ 登神长阶 ” 🌹🌹期待您的关注 🌹🌹 ❀ IP协议 IP协议基本概念协议头格式分片与组装网段划分子网掩码特殊的IP地址 IP地址的数量限制…

neo4j 图表数据导入到 TuGraph

neo4j 图表数据导入到 TuGraph 代码文件说明后文 前言:近期在引入阿里的 TuGraph 图数据库,需要将 原 neo4j 数据导入到新的 tugraph 数据库中。预期走csv文件导入导出,但因为格式和数据库设计问题,操作起来比较麻烦(可能是个人没…

Node.js安装(含npm安装vue-cli,安装element-ui)的详细配置

搭建前端框架 前端平台 量子计算机–10^5级别运算只需5min,这代表可以计算从宇宙大爆炸到现在的数据可以计算 安卓工程师–.xml node.js 下载 运行在win/linus的js——node.js 安装 建议不要动路径,可以避免很多问题,但是要保证C盘有至少1…

亚马逊云科技 re:Invent 2024重磅发布!Amazon Bedrock Data Automation 预览版震撼登场

AWS re:Invent 2024 已圆满落幕! 在本次大会中,隆重推出了一项全新功能: Amazon Bedrock Data Automation(预览版)震撼登场! New Amazon Bedrock capabilities enhance data processing and retrieval | …

JAVA:组合模式(Composite Pattern)的技术指南

1、简述 组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什么是组合模式 组合模式…

计算机基础 试题

建议做的时候复制粘贴,全部颜色改为黑色,做完了可以看博客对答案。 一、单项选择题(本大题共25小题,每小题2分,共50分〉 1.计算机内部采用二进制数表示信息,为了便于书写,常用十六进制数表示。一个二进制数0010011010110用十六进制数表示为 A.9A6 B.26B C.4D6 D.…

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数

腾讯云云开发 Copilot 深度探索与实战分享

个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 目录 一、引言 二、产品介绍 三、产品体验过程 四、整体总结 五、给开发者的复用建议 六、对 AI 辅助开发的前景展望 一、引言 在当今数字化转型加速的时代,…

中间件 redis安装

redis官网地址:Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1,远程下载redis压缩包,或去官网下载:Downloads …

CVE-2021-44228 漏洞复现

漏洞描述 什么是 log4j 和 log4j2 log4j 是 Apache 的一个开源日志库,是一个基于 Java 的日志记录框架,Log4j2 是 log4j 的后继者,其中引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI 组建等&#xff0…

SpringBoot02

1. 学习目标(了解) 2. Mybatis整合&数据访问(操作) 使用SpringBoot开发企业项目时,持久层数据访问是前端页面数据展示的基础,SpringBoot支持市面上常见的关系库产品(Oracle,Mysql,SqlServer,DB2等)对应…

答:C++需要学到什么程度再开始学 qt 比较合理?

有网友问:C需要学到什么程度再开始学 qt 比较合理? 南老师回答如下。 在我看来,这确实是一个好问题,但我的回答,大概很难成为一个好回答。 但我还是想回答,所以诚恳谢妖! 如果有人问我&…

Elasticsearch8.17.0在mac上的安装

1、下载并安装 下载8.17版本es(目前最新版本):Download Elasticsearch | Elastic 也可以通过历史版本列表页下载:Past Releases of Elastic Stack Software | Elastic 当然也可以指定具体版本号进行下载:Elasticsearch 8.17.0 | Elastic …

爬取Q房二手房房源信息

文章目录 1. 实战概述2. 网站页面分析3. 编写代码爬取Q房二手房房源信息3.1 创建项目与程序3.2 运行程序,查看结果 4. 实战小结 1. 实战概述 本次实战项目旨在通过编写Python爬虫程序,抓取深圳Q房网上的二手房房源信息。我们将分析网页结构,…

易语言OCR银行卡文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

6.3.1 MR实战:计算总分与平均分

在本次实战中,我们的目标是利用Apache Hadoop的MapReduce框架来处理和分析学生成绩数据。具体来说,我们将计算一个包含五名学生五门科目成绩的数据集的总分和平均分。这个过程包括在云主机上准备数据,将成绩数据存储为文本文件,并…