thingsboard推荐的数据库Cassandra常见问题及解决办法,
thingsboard是个开源的物联网项目,开发团队推荐使用Cassandra数据库,好处很多,比如分布式部署等等,坏处也很多 -QeQ-
比如安装以后,运行thingsboard的时候每次都得删除表空间,不然不会去除历史数据及一些项目初始化的数据,接下来我总结一下我遇到的一些问题及解决办法
1、每次更新thingsboard构建源码以后,启动项目后页面显示的还是原先的数据,以前的一些仪表板及部件库等等都没有改变
原因:thingsboard初始化时将默认的json部件库及仪表板还有一些默认管理员sysadmin及规则链全部保存到数据库中,若不清除Cassandra数据库中的thingsboard表空间,则不会重新创建新的数据
解决办法:1)、删除表空间:打开cql操作窗口,输入命令删除表空间命令:drop keyspace thingsboard ,删除过程中会出现超时异常,不用管,等过一段时间重新执行删除命令时,会提示已经删除,或者表空间不存在
2)、重新安装打包后的thingsboard,选择数据库为Cassandra,然后运行热部署模式或者启动thingsboard服务,这样所显示的数据都是全新的了
Cassandra常用表空间相关命令:
1)、查看所有表空间:describe keyspaces;
2)、查看特定表空间内容:describe keyspace thingsboard;
3)、删除表空间:drop keyspace thingsboard;
2、Cassandra数据库请求超时解决办法:
修改安装目录下的\apache-cassandra\conf\目录下的cqlshrc.sample文件,替换其中的:request_timeout = 6000
3、Cassandra数据库备份及数据迁移,以下命令都在cql下执行:
1)、导出数据的示例:
cqlsh> COPY airplanes (name, mach, year, manufacturer) TO 'export.csv' ;
2)、导入数据的示例:
cqlsh> COPY airplanes (name, mach, year, manufacturer) FROM 'import.csv' ;
其中airplanes为表名,后面带的是参数(需要拷出来的参数列表),最后的“export.csv”为最终导出的文件
4、Cassandra数据导入报错处理方法:
报错内容:field larger than field limit (131072), given up after 1 attempts
处理办法:
1)、修改Cassandra安装目录底下\apache-cassandra\bin\中的文件cqlsh.py:
在“UTF8 = 'utf-8'”后添加一行“csv.field_size_limit(sys.maxsize)”
2)、修改Cassandra安装目录底下\apache-cassandra\conf\中的文件cassandra.yaml:
修改“batch_size_fail_threshold_in_kb”的值为500
3)、修改导入语句:
在语句后面添加参数“ WITH MAXBATCHSIZE = 1 and MINBATCHSIZE = 1;”
如:cqlsh> COPY airplanes (name, mach, year, manufacturer) FROM 'import.csv' WITH MAXBATCHSIZE = 1 and MINBATCHSIZE = 1;
5、Cassandra数据库服务器开启远程连接:
1)、修改服务器Cassandra配置文件:
vim cassandra.yaml
2)、修改内容如下:
|
1 |
|
|
1 |
|
|
1 |
|
|
1 2 3 4 5 6 7 8 9 10 |
|
3)、重启Cassandra
下班啦emmmmmmmmm!!!!改天再写别的文档吧,有遇到问题的小伙伴可以一起讨论进步哈~~~