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

【腾讯云TDSQL-C Serverless 产品体验】使用 Python向TDSQL-C添加读取数据实现词云图

关于TDSQL-C Serverless介绍

TDSQL-C 是腾讯云自主研发的新一代云原生关系型数据库。

它融合了传统数据库、云计算和新硬件技术的优势,100%兼容 MySQL,为用户提供具有极致弹性、高性能、高可用性、高可靠性和安全性的数据库服务。

TDSQL-C 实现了超过百万每秒的高吞吐量,支持 PB 级海量分布式智能存储,并具备 Serverless 秒级扩缩能力,可加速企业数字化转型。

其 Serverless 服务是建立在腾讯云自研的新一代云原生关系数据库 TDSQL-C MySQL 版之上的无服务器架构实现,是一款全 Serverless 架构的云原生数据库。

Serverless 服务按实际使用的计算和存储资源进行收费,不用不付费,将腾讯云的云原生技术普惠用户。

适用的场景介绍

这类数据库实际是按量付费的,非常适合在测试和研发环境使用,如果业务存在明显的波动期,那么它的弹性伸缩功能也是比较适合的。对于一些小程序的云开发,小企业的一些网站建设也可以考虑此类数据库。

数据库购买

  1. 这里简单介绍下如何找到这款数据库
  • 搜索进入腾讯云注册并登录

  • 在搜索框输入 TDSQL-C MYSQL 版 , 点击搜索

  • 点击立即选购

  • 根据需要调整配置 注意 选择Serverless 的实例形态哦!!!

  • 配置TDSQL-C 集群

  • 根据实例信息连接数据库

  1. 如果你只是想体验下功能,那么可以通过如下链接进行免费体验:

https://mc.tencent.com/uQHh7pDI

数据库压测

  1. sysbench安装

我们通过sysbench做个简单的压测,看下数据库的一些性能指标

安装,通过如下命令

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh |bash yum install -y sysbench

通过如下命令进行检验:

sysbench --version

  1. 压测数据写入

通过执行如下命令,新建20张表,并且每个表中构建出 100万条测试数据,具体的host、port、user、password根据实际情况进行修改,新建的表也可以根据自己需要去建立。

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=gz-cynosdbmysql-grp-d27hp6vl.sql.tencentcdb.com --mysql-port=27529 --mysql-user=root --mysql-password=password --mysql-db=experience-15 --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare
  1. 整体的读写测试

测试数据库的综合读写TPS,使用oltp_read_write模式

通过如下命令执行,可以看到控制台有压测数据输出,如果你想要输出到文件,也可以通过命令配置实现

因为目前实际访问是通过公网进行的,这里只是提供一个压测的思路,感兴趣可以自己在内网实践下

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1  --mysql-host=gz-cynosdbmysql-grp-d27hp6vl.sql.tencentcdb.com --mysql-port=27529 --mysql-user=root --mysql-password=password --mysql-db=experience-15 --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run

控制台压测数据:

注意:
使用sysbench对数据库进行读写测试时,需要注意的几点:

    1. 选择合适的测试模式,如顺序读/写、随机读/写等,根据实际业务场景选用。
    1. 调整线程数和测试时长,逐步增加压力直到找到数据库的压力瓶颈。
    1. 测试前后要重新加载测试数据,避免缓存影响结果。
    1. 对照不同的数据库参数进行测试,如buffer pool大小、索引设置等。
    1. 记录不同压力情况下的指标,如TPS、延迟、资源利用率等。
  1. 只读性能测试

测试数据库的只读性能,使用oltp_read_write模式,执行命令如下:

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 -mysql-host=gz-cynosdbmysql-grp-d27hp6vl.sql.tencentcdb.com --mysql-port=27529 --mysql-user=root --mysql-password=password --mysql-db=experience-15  --tables=20 --table_size=1000000 oltp_read_only --db-ps-mode=disable run
  1. 插入性能测试

测试数据库的数据插入性能,使用模式:oltp_insert,命令如下:

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 -mysql-host=gz-cynosdbmysql-grp-d27hp6vl.sql.tencentcdb.com --mysql-port=27529 --mysql-user=root --mysql-password=password --mysql-db=experience-15 --tables=20 --table_size=1000000 oltp_insert --db-ps-mode=disable run

关于一些性能测试的情况,官方也是给出一些数据的,可以参考:

实际使用体验

使用 Python 向 TDSQL-C 添加读取数据 实现词云图

整个实践步骤如下:

  1. 准备python环境,安装依赖包
pip install PyMySQL==1.1.0
pip install pandas==2.0.1
pip install wordcloud==1.9.1.1
pip install numpy==1.23.5
pip install matplotlib==3.7.2
pip install Pillow==9.5.0
  1. 配置数据库连接信息
  2. 创建读取excel文件的函数
  3. 根据excel文件名创建数据库表名
  4. 将读取的excel 数据保存到数据库对应的表中
    如下是通过读取excel后存入数据库的数据,在使用上与常规的数据库没有差别

  1. 读取数据库中存入的数据
  2. 执行函数,并生成词云图
    如下为根据代码生成的词云图

完整代码如下:

import pymysql
import pandas as pd
import os
import wordcloud
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt# MySQL数据库连接配置
db_config = {'host': "gz-cynosdbmysql-grp-d27hp6vl.sql.tencentcdb.com",  # 主机名'port': 27529,  # 端口'user': "root",  # 账户'password': "pass",  # 密码'database': 'experience-16',}def create_table(table_name, columns):# 建立MySQL数据库连接conn = pymysql.connect(**db_config)cursor = conn.cursor()# 组装创建表的 SQL 查询语句query = f"CREATE TABLE IF NOT EXISTS {table_name} ("for col_name, col_type in columns.items():query += f"{col_name} {col_type}, "query = query.rstrip(", ")  # 去除最后一个逗号和空格query += ")"# 执行创建表的操作cursor.execute(query)# 提交事务并关闭连接conn.commit()cursor.close()conn.close()def excelTomysql():path = '词频'  # 文件所在文件夹files = [path + "/" + i for i in os.listdir(path)]  # 获取文件夹下的文件名,并拼接完整路径for file_path in files:print(file_path)filename = os.path.basename(file_path)table_name = os.path.splitext(filename)[0]  # 使用文件名作为表名,去除文件扩展名# 使用pandas库读取Excel文件data = pd.read_excel(file_path, engine="openpyxl", header=0)  # 假设第一行是列名columns = {col: "VARCHAR(255)" for col in data.columns}  # 动态生成列名和数据类型create_table(table_name, columns)  # 创建表save_to_mysql(data, table_name)  # 将数据保存到MySQL数据库中,并使用文件名作为表名print(filename + ' uploaded and saved to MySQL successfully')def save_to_mysql(data, table_name):# 建立MySQL数据库连接conn = pymysql.connect(**db_config)cursor = conn.cursor()# 将数据写入MySQL表中(假设数据只有一个Sheet)for index, row in data.iterrows():query = f"INSERT INTO {table_name} ("for col_name in data.columns:query += f"{col_name}, "query = query.rstrip(", ")  # 去除最后一个逗号和空格query += ") VALUES ("values = tuple(row)query += ("%s, " * len(values)).rstrip(", ")  # 动态生成值的占位符query += ")"cursor.execute(query, values)# 提交事务并关闭连接conn.commit()cursor.close()conn.close()def query_data():# 建立MySQL数据库连接conn = pymysql.connect(**db_config)cursor = conn.cursor()# 查询所有表名cursor.execute("SHOW TABLES")tables = cursor.fetchall()data = []dic_list = []table_name_list = []for table in tables:# for table in [tables[-1]]:table_name = table[0]table_name_list.append(table_name)query = f"SELECT * FROM {table_name}"# # 执行查询并获取结果cursor.execute(query)result = cursor.fetchall()if len(result) > 0:columns = [desc[0] for desc in cursor.description]table_data = [{columns[i]: row[i] for i in range(len(columns))} for row in result]data.extend(table_data)dic = {}for i in data:dic[i['word']] = float(i['count'])dic_list.append(dic)conn.commit()cursor.close()conn.close()return dic_list, table_name_listif __name__ == '__main__':##excelTomysql()方法将excel写入到mysqlexcelTomysql()print("excel写入到mysql成功!")# query_data()方法将mysql中的数据查询出来,每张表是一个dic,然后绘制词云result_list, table_name_list = query_data()print("从mysql获取数据成功!")for i in range(len(result_list)):maskImage = np.array(Image.open('background.PNG'))  # 定义词频背景图# 定义词云样式wc = wordcloud.WordCloud(font_path='PingFangBold.ttf', # 设置字体mask=maskImage,  # 设置背景图max_words=500,  # 最多显示词数max_font_size=100)  # 字号最大值# 生成词云图wc.generate_from_frequencies(result_list[i])  # 从字典生成词云# 保存图片到指定文件夹wc.to_file("词云图/{}.png".format(table_name_list[i]))print("生成的词云图【{}】已经保存成功!".format(table_name_list[i] + '.png'))# 在notebook中显示词云图plt.imshow(wc)  # 显示词云plt.axis('off')  # 关闭坐标轴plt.show()  # 显示图像

总结

  1. 腾讯云 TDSQL-C MySQL Serverless 版是国内首个也是最大规模的 MySQL 无服务器数据库产品,其最大的特点和优势在于高度弹性灵活的使用方式,根据实际使用量进行计费,不使用则不收费,非常适合对业务量波动较大且难以预计的中小企业或个人开发者。这种按需使用和计费的模式,极大降低了使用成本和资源浪费。100%兼容MySQL,几乎无需改动代码,即可完成数据库的查询、应用和工具平滑迁移。

  2. TDSQL-C MySQL Serverless 版特别适合一些刚刚上线或者业务量难以预测的新服务。对于业务负载存在周期性波动的应用也非常合适,可以根据高峰期和低峰期进行实时调整,无需固定预留资源,既灵活又经济。最高400TB存储,无服务器架构,自动扩缩容,轻松应对业务数据量动态变化和持续增长。

  3. 与传统数据库相比,TDSQL-C MySQL Serverless版可以实现秒级的启停容量扩缩容,根据实际使用情况弹性调整,并且实行按量计费模式,可以精确到秒级别计费,使用灵活而不会造成资源浪费。最高400TB存储,无服务器架构,自动扩缩容,轻松应对业务数据量动态变化和持续增长。

  4. 如果业务主要部署在微信生态内,例如微信小程序,TDSQL-C MySQL Serverless版可以与微信生态深度整合,为小程序等微信平台的开发者提供一站式的后端云数据库服务。开发和运维非常便捷高效。计算节点可根据业务需要快速升降配,秒级完成扩容,结合弹性存储,实现计算资源的成本最优。

  5. 对于已经存在的数据库或数据,TDSQL-C MySQL Serverless版也提供了多种快速迁移的方案。除了使用腾讯云提供的数据传输服务DTS迁移外,还可以通过mysqldump等命令行工具进行数据迁移,整个迁移过程可以做到快速便捷。

Serverless 服务架构

相关文章:

【腾讯云TDSQL-C Serverless 产品体验】使用 Python向TDSQL-C添加读取数据实现词云图

关于TDSQL-C Serverless介绍 TDSQL-C 是腾讯云自主研发的新一代云原生关系型数据库。 它融合了传统数据库、云计算和新硬件技术的优势,100%兼容 MySQL,为用户提供具有极致弹性、高性能、高可用性、高可靠性和安全性的数据库服务。 TDSQL-C 实现了超过百万每秒的高吞吐量,支持…...

服务器感染了.360、.halo勒索病毒,如何确保数据文件完整恢复?

导言: 数据的安全性至关重要,但威胁不断进化,.360、.halo勒索病毒是其中的令人担忧的勒索软件。本文91数据恢复将深入介绍.360、.halo勒索病毒,包括其威胁本质、数据恢复方法和如何采取预防措施来保护您的数据。 如果受感染的数据…...

BAT028:批量将文件修改日期后缀更新为最新修改日期

引言:编写批处理程序,实现批量将文件修改日期后缀更新为最新修改日期。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【…...

Visual Studio C++ 的 头文件和源文件

在Visual Studio C中,头文件(Header Files)和源文件(Source Files)是两种不同的文件类型,用于组织和管理C代码。 头文件(Header Files): 后缀名为.h或.hpp的文件&#xf…...

Scrapy框架中的Middleware扩展与Scrapy-Redis分布式爬虫

在爬虫开发中,Scrapy框架是一个非常强大且灵活的选择。在本文中,我将与大家分享两个关键的主题:Scrapy框架中的Middleware扩展和Scrapy-Redis分布式爬虫。这些主题将帮助你更好地理解和应用Scrapy框架,并提升你的爬虫开发技能。 …...

[论文笔记]Sentence-BERT[v2]

引言 本文是SBERT(Sentence-BERT)论文1的笔记。SBERT主要用于解决BERT系列模型无法有效地得到句向量的问题。很久之前写过该篇论文的笔记,但不够详细,今天来重新回顾一下。 BERT系列模型基于交互式计算输入两个句子之间的相似度是非常低效的(但效果是很好的)。当然可以通过…...

虚拟机ubantu系统突然重启失去网络

1.进入 root用户 cd /var/lib/NetworkManager然后查看网络服务状态 如果网络状态和我一样不可用 ,就先停止网络服务 service ModemManager stop#删除状态rm networker.stateservice ModemManager start此时右上交的网络标志回复正常...

三款经典的轮式/轮足机器人讲解,以及学习EG2133产生A/B/C驱动电机。个人机器人学习和开发路线(推荐)

1,灯哥开源(有使用指南,适合刚入门新手) 机械部分:2个foc无刷电机 硬件和软件部分:没有驱动板子。只有驱动器,主控板esp32和驱动器通过pwm直接通讯。驱动器板子上有蓝色电机接口,直…...

apache开启https

本文基于windows平台。 个人感觉使用apache配置起来比较繁琐,而使用upupw或者xmpp等集成开发工具更方便。 在httpd.conf中,将下一行的注释去掉:LoadModule ssl_module modules/mod_ssl.so。另外,千万不要注释掉下面的一行&#…...

绝地求生游戏缺少msvcp140.dll丢失打不开怎么办?这6个方法都能修复

计算机系统中,我们经常遇到各种错误和问题。其中,“MSCVCP140.DLL丢失”是一个常见的错误,它通常出现在运行某些程序或游戏时。这个DLL文件是Microsoft Visual C 2015 Redistributable的一部分,如果它丢失或损坏,可能会…...

【广州华锐互动】石油钻井井控VR互动实训系统

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,为人们的生活和工作带来了前所未有的便利。在石油钻井行业,VR技术的应用也日益受到重视,为钻井工人提供了更加安全、高效的培训方式。 广州华锐…...

单链表算法经典OJ题

目录 1、移除链表元素 2、翻转链表 3、合并两个有序链表 4、获取链表的中间结点 5、环形链表解决约瑟夫问题 6、分割链表 1、移除链表元素 203. 移除链表元素 - 力扣(LeetCode) typedef struct ListNode LSNode; struct ListNode* remove…...

Picnic master project interview

picnic Picnic master project interview1. Topics1.1 Systematically identify similar/interchangeable articles1.2 Understanding changing customer behaviour 2. interview等后续 Picnic master project interview 1. Topics 1.1 Systematically identify similar/inte…...

nginx部署vue项目(访问路径加前缀)

nginx部署vue项目(访问路径加前缀) nginx部署vue项目,访问路径加前缀分为两部分: (1)修改vue项目; (2)修改nginx配置; vue项目修改 需注意,我这是vue-cli3配置&#x…...

element-ui中表格树类型数据的显示

项目场景&#xff1a; 1&#xff1a;非懒加载的情况 1&#xff1a;效果展示 2&#xff1a;问题描述以及解决 1&#xff1a;图片展示 2&#xff1a;html <-- default-expand-all 代表默认展开 如果不展开删除就行 --> <el-tableref"refsTable"v-loadin…...

【扩散模型】如何用最几毛钱生成壁纸

通过学习扩散模型了解到了统计学的美好&#xff0c;然后顺便记录下我之前文生图的基础流程~ 扩散模型简介 这次是在DataWhale的组队学习里学习的&#xff0c;HuggingFace开放扩散模型学习地址 扩散模型训练时通过对原图增加高斯噪声&#xff0c;在推理时通过降噪来得到原图&…...

零基础Linux_17(进程间通信)VSCode环境安装+进程间通信介绍+pipe管道mkfifo

目录 1. VSCode环境安装 1.1 使用VSCode 1.2 远程链接到Linux机器 1.3 VSCode调试 2. 进程间通讯介绍 2.1 进程间通讯的概念和意义 2.2 进程间通讯的策略和本质 3. 管道 3.1 管道介绍 3.2 匿名管道介绍 3.3 匿名管道示例代码 3.3.1 建立管道的pipe 3.3.2 匿名管道…...

Redis的BitMap使用

Redis的BitMap使用 Redis 为我们提供了位图这一数据结构&#xff0c;每个用户每天的登录记录只占据一位&#xff0c;365天就是365位&#xff0c;仅仅需要46字节就可存储&#xff0c;极大地节约了存储空间。 位图不是实际的数据类型&#xff0c;而是一组面向位的操作 在被视为…...

java并发编程之基础与原理1

java多线程基础 下面说一下线程的7种状态 下面我重点来说一下阻塞状态 阻塞状态是可以分很多种的&#xff1a; 下面用另外一张图来说明这种状态 简单说一下线程的启动原理 下面说一下java中的线程 java线程的异步请求方式 上面就会先把main执行出来&#xff0c;等阻塞结束之后…...

⟨A⟩ = Tr(ρA) 从数学上来讲什么意思

当给定一个具体的密度矩阵ρ和一个可观测量A时&#xff0c;我们可以通过数值计算来演示〈A〉 Tr(ρA) 的应用。 假设我们有以下密度矩阵和可观测量&#xff1a; ρ [0.6 0.3; 0.3 0.4] A [1 0; 0 -1] 我们首先计算ρA的乘积&#xff1a; ρA [0.6 0.3; 0.3 0.4] * [1 0…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...