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

建设银行网站广告留电话号的网站

建设银行网站,广告留电话号的网站,南京网站排名公司,网站权限怎么设置方法数据库实战入门:从零构建监控数据存储系统 前言 在物联网和系统监控领域,数据存储是核心基础环节。本文将通过MySQL/SQLite操作、数据库备份脚本和监控数据存储实战三个模块,带领初学者快速掌握数据库在真实场景中的应用。文章包含25个代码…

数据库实战入门:从零构建监控数据存储系统

前言

在物联网和系统监控领域,数据存储是核心基础环节。本文将通过MySQL/SQLite操作数据库备份脚本监控数据存储实战三个模块,带领初学者快速掌握数据库在真实场景中的应用。文章包含25个代码示例,完整项目可直接部署使用。


一、数据库选型与基础操作

1.1 MySQL vs SQLite 特性对比

# 特性对比表
| 特性         | MySQL          | SQLite         |
|--------------|----------------|----------------|
| 架构         | 客户端-服务端  | 嵌入式数据库   |
| 并发访问     | 支持高并发     | 单写多读       |
| 存储上限     | 256TB         | 140TB         |
| 适用场景     | 大型系统       | 嵌入式/小型系统|

1.2 MySQL基础操作

-- 创建监控数据库
CREATE DATABASE monitoring_system;-- 创建传感器数据表
CREATE TABLE sensor_data (id INT AUTO_INCREMENT PRIMARY KEY,sensor_id VARCHAR(20) NOT NULL,value FLOAT NOT NULL,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);-- 插入测试数据
INSERT INTO sensor_data (sensor_id, value)
VALUES ('TEMP_001', 25.6);

1.3 SQLite快速上手

import sqlite3# 创建内存数据库
conn = sqlite3.connect(':memory:')# 创建数据表
conn.execute('''CREATE TABLE device_status(id INT PRIMARY KEY NOT NULL,device TEXT NOT NULL,status INT NOT NULL);''')# 批量插入数据
devices = [(1, 'Camera', 0), (2, 'Sensor', 1)]
conn.executemany('INSERT INTO device_status VALUES (?,?,?)', devices)
conn.commit()

二、数据库备份与恢复实战

2.1 MySQL备份脚本

#!/bin/bash
# 每日凌晨3点自动备份
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d)mysqldump -u root -p'your_password' monitoring_system > \
$BACKUP_DIR/monitoring_$DATE.sql# 保留最近7天备份
find $BACKUP_DIR -name "*.sql" -mtime +7 -exec rm {} \;

2.2 SQLite备份策略

import shutil
from datetime import datetimedef backup_sqlite(db_path):backup_path = f"{db_path}.bak.{datetime.now().strftime('%Y%m%d')}"shutil.copy2(db_path, backup_path)print(f"Backup created: {backup_path}")# 使用示例
backup_sqlite('/var/data/monitoring.db')

三、监控数据存储系统实战

3.1 系统架构设计

数据采集层 → 数据处理层 → 存储层 → 展示层(Python)      (MySQL)    (Web)

3.2 数据存储模块实现

import pymysql
import random
from time import sleepclass DataCollector:def __init__(self):self.conn = pymysql.connect(host='localhost',user='monitor',password='securepass',db='monitoring_system')def simulate_sensor(self):"""模拟传感器数据生成"""while True:temp = random.uniform(20.0, 30.0)humidity = random.uniform(40.0, 60.0)self.store_data('TEMP_001', temp)self.store_data('HUM_001', humidity)sleep(60)  # 每分钟采集一次def store_data(self, sensor_id, value):"""存储到数据库"""with self.conn.cursor() as cursor:sql = "INSERT INTO sensor_data (sensor_id, value) VALUES (%s, %s)"cursor.execute(sql, (sensor_id, value))self.conn.commit()# 启动采集器
collector = DataCollector()
collector.simulate_sensor()

3.3 数据查询优化

-- 创建索引加速查询
CREATE INDEX idx_sensor_time ON sensor_data(sensor_id, timestamp);-- 分页查询示例
SELECT * FROM sensor_data
WHERE sensor_id = 'TEMP_001'
ORDER BY timestamp DESC
LIMIT 10 OFFSET 0;-- 时间范围统计
SELECT DATE(timestamp) as day,AVG(value) as avg_temp
FROM sensor_data
WHERE sensor_id = 'TEMP_001'
GROUP BY day;

四、系统监控与告警

4.1 实时监控脚本

import pymysql
import smtplib
from email.mime.text import MIMETextclass Monitor:def check_abnormal(self):"""检查异常数据"""conn = pymysql.connect(...)cursor = conn.cursor()cursor.execute('''SELECT sensor_id, value FROM sensor_data WHERE timestamp > NOW() - INTERVAL 5 MINUTEAND (value > 30 OR value < 10)''')alerts = cursor.fetchall()if alerts:self.send_alert(alerts)def send_alert(self, data):"""发送邮件告警"""msg = MIMEText(f"异常数据告警:\n{data}")msg['Subject'] = '[监控告警] 传感器数据异常'msg['From'] = 'monitor@example.com'msg['To'] = 'admin@example.com'with smtplib.SMTP('smtp.example.com') as server:server.send_message(msg)# 每5分钟执行一次检查
monitor = Monitor()
monitor.check_abnormal()

五、性能优化技巧

5.1 数据库连接池配置

import pymysql
from dbutils.pooled_db import PooledDB# 创建连接池
pool = PooledDB(creator=pymysql,maxconnections=10,host='localhost',user='monitor',password='securepass',db='monitoring_system'
)# 从连接池获取连接
conn = pool.connection()
cursor = conn.cursor()
cursor.execute("SELECT COUNT(*) FROM sensor_data")
print(cursor.fetchone())
conn.close()

5.2 数据分区存储

-- 按时间范围分区
ALTER TABLE sensor_data 
PARTITION BY RANGE COLUMNS(timestamp) (PARTITION p202301 VALUES LESS THAN ('2023-02-01'),PARTITION p202302 VALUES LESS THAN ('2023-03-01'),PARTITION p_max VALUES LESS THAN MAXVALUE
);

六、常见问题排查

6.1 连接数过多

# 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';# 修改最大连接数
SET GLOBAL max_connections = 200;

6.2 慢查询分析

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;-- 查看慢查询
SHOW VARIABLES LIKE '%slow%';

结语

通过本文的学习,我们完整实现了:

  1. 数据库基础操作与选型
  2. 自动化备份方案
  3. 监控数据系统从采集到存储的全流程
  4. 性能优化与故障排查

建议读者将代码部署到树莓派等硬件设备上,结合实际传感器进行数据采集(可使用DHT11等常见传感器)。完整项目代码已上传至Github(虚构地址:github.com/monitoring-example)。

扩展学习建议

  1. 学习使用Redis进行实时数据缓存
  2. 研究TimescaleDB处理时序数据
  3. 了解Prometheus监控方案
http://www.cadmedia.cn/news/1426.html

相关文章:

  • 昆明网站建设公司哪家好青岛爱城市网app官方网站
  • 建设部网站建造师管理号企业网站优化工具
  • 品牌网站建设顾问黑帽seo什么意思
  • 南京市溧水城市建设集团网站seo和网络推广有什么区别
  • 网站建设参考文献目录上海外贸seo公司
  • 门户网站导航建设方案公司网站制作要多少钱
  • 商贸公司网站建设方案网络seo培训
  • 做网站推广费用5118数据分析平台官网
  • 建设网站多久到账抖音seo是什么意思
  • 网站建设培训视频优化网站做什么的
  • 郑州做网站公司天强科技做网站的公司
  • 入侵网站怎么做弹出电子商务营销策略
  • 网站建设教育板块怎么查百度竞价关键词价格
  • 个人简历范文360优化大师
  • 泰兴做网站的公司免费seo提交工具
  • 电商知识网优化设计一年级下册数学答案
  • 专项培训网站建设方案网站推广优化方案
  • 徐州制作公司网站加强服务保障满足群众急需ruu7
  • 苹果官网首页武汉seo顾问
  • 做网站公司郑州郑州的网站建设公司哪家好搜索引擎优化seo培训
  • 江苏网站建设网站排名优化seo技术快速网站排名
  • 网站程序模板下载搜索引擎seo优化平台
  • 乌鲁木齐网站建设关键词优化靠谱推荐
  • 成都网站定制开发seo教程免费
  • 建设工程有限公司网站百度网盘下载安装
  • 广汉做网站百度快照优化seo
  • 天津培训网站建设淄博网站推广
  • 北京公司网站优化青岛seo搜索优化
  • 网站建设兼职合同模板今日小说排行榜百度搜索榜
  • 绍兴柯桥区城乡建设局网站如何做线上销售和推广