鼎鼎知识库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

02工具.md 5.4KB

关注

MyCat。开源分布式,实现MySQL协议服务器,数据库代理,可以使用MySQL原生协议与多个MySQL服务器通信,也可以使用JDBC与大多数束流数据库通信。将一个大表分割成N个小表,后端可支持MySQL, Sql Server, Oracle, DB2, PostGreSQL, MongoDB,作为企业级MySQL集群,替代昂贵的Oracle集群,融合了内存缓存,NoSQL,HDFS大数据,数据库中间件。适用于:读写分离主从切换、分库分表1000万-1000亿单表分片、多租户每个应用一个库、大规模报表统计、替代HBase进行大数据分析。不适用于:非分片字段查询、分页排序、Join表在不同的数据分布

InfluxDB。开源的、MIT协议下的时序数据库。特点:High write throughput高写吞吐量,Aswsome read performance, query in realtime好的写性能100毫秒之内的查询,Better compression更好的压缩,Write can’t block reads写不能阻塞读,Read can’t block write读不能阻塞写,Write multiple ranges simultaneously同时对多个范围写,Hot backs热备份。

原理大致是从系统、传感器、队列、数据库、网络等数据源获取数据,以文本的方式(temperature,device=dev1,building=b1 intenal=80,external=18 1443782127)通过HTTP方式交给InfluxDB,在这里temperature是meaturement,相当于数据库中的表,deivce和building是tag, internal和external是field,最后面的1443782127是时间戳可以是纳秒级。

时间碎片,shards of time,is an underlying db effient to drop old data.

Each seires and field to a uniqie ID,比如temperature,device=dev1,building=b1#internal=80对应一个ID=1,tempeatrue,device=dev1,building=b1#external=18对应一个ID=2,然后每个ID下有很多有关时间变化的数据,比如ID=1对应(1443782126,80),(1443782127,85)

在内存方面,ID和时间戳组成成key,比如(1,1443782126),它的value是字段值,key space is ordered.

算法发展里程:LSM Tred, Log-structured merge tree,日志结构合并树,高插入量文件的索引访问键值对,将数据保存在两个或多个单独的结构中,每个结构对其各自的底层存储介质进行优化,让多个数据结构分批同步,but delete is too expensive;Seperate LSM tree per block of time, too many open file handlers;Memory-mapped copy-on-write B+ tree, 写入吞吐量不高;最后采用了Time Structured Merge Tree, TSM tree。

组件。有三个主要组件。一个是WAL,write add log, 一开始放在memory index中,间歇性地flush到disk index,最终和memory映射上。内存中的数据包含Headers, Blocks, Index, Footer四部分;另一个是In memory cache,看作是memeory table;还有一个是Index Files,看作ssTalbe。

关键术语。Measurement相当于数据库中的表;tag sets, 在内存中的标签;Fields字段;Points表示一条记录由时间戳标签数据组成;Series包含measurement,tagset,每个时刻的Point,retension policy,时间戳;对tag可以进行分组,正则表达式;对field可以进行函数计算。

Grafana,时许数据可视化工具,在工业监控、气象监控、家居自动化等领域有着广泛应用。可以和InfluxDB搭配使用。

阿里云TSDB for InfluxDB和自搭建Influx对比。

比较的方面 | 自搭建InfluxDB | 阿里云TSDB for InfluxDB -|-|- 可靠性 | 基于高效云盘的99.99%可靠 | 基于高效云盘的99.99%可靠 | 服务可用性 | 可能会因为参数设置不当或瞬时压力造成进程终止,且需要自己单间进程恢复机制 | 提供完善的进程回复机制,更完善的内存管理机制,全自动Load Shedding应对瞬时冲击,具备磁盘即将写满的自动保护机制 | 安全性 | 自行修复数据库漏洞 | 防DDos攻击,流量清洗,及时修复数据库漏洞| 运维 | 需要专职对InfluxDB维护 | 提供图形化控制台| 数据备份 | 自行实现 | 自动实现(待上线) | 冷热数据分离 | 无法实现 | 自动实现(待上线) | 扩展 | 单机免费,但扩展需要支付给美国公司,费用昂贵手续麻烦 | 支持无限扩展 | 价格 | InfluxDB免费,购买三年云服务器的费用在5000元左右 | 按月付费 |

阿里云TSDB for InfluxDB价格估算

估算时间线:一个开关的一项数据,比如电流算一个时间线。如果要统计电流、电压、功率、电量、线温、漏电电流,一个开关有6条时间线。假设一个项目中有1000个开关需要6000条时间线。

估算每秒写入数据量:在电流、电压、功率、电量、线温、漏电电流中,功率和电量需要按秒统计,电流、电压、线温、漏电电流按分钟统计。大部分情况下写入数据量=2*1000=2000条, 到整点分钟时写入数据量=6 * 1000=6000条。

阿里云的以下套餐适合:

计算公式

总费用=实例费用+存储空间费用=实例费用+存储空间大小*存储空间单价

其中实例费用看作是计算资源的费用

  • 按月付费每月总费用=436元
  • 按小时付费每月总费用超过1000元

每增加1000个开关,在时序数据库上每年的开销最多增加5000元左右。开关数量越多,越划算。

TimescaleDB。也是时序数据库。基于PostgreSQL数据库打造的一款时许数据库,插件化形式,随着PostgreSQL的版本升级而升级。

评估

试用

采纳

暂缓