Hi,TDengine 的用户敌人们,为避免过多的共性问题困扰大家,不便大家学习、排汇教训,从明天开始咱们会对近期社区内用户遇到的共性问题进行精选、汇总,每两周给大家带来一次分享。 这是此类专栏的第一期内容,为大家分享如下七个常见问题:
客户端连贯串如何保障高可用?
Java 利用应用 taos-jdbcdriver 连贯 TDengine 时, RESTful 与原生 ( JNI ) 接口性能相比如何,该如何选型?
TDengine 如何做表关联?是应用 JOIN 吗?
为什么 RESTful 接口无响应、Grafana 无奈增加 TDengine 为数据源、TDengineGUI 选了 6041 端口还是无奈连贯胜利?
TDengine 数据备份工具 taosdump 如何应用?
Windows 客户端无奈失常显示中文字符?
产生了 OOM 怎么办?
1. 客户端连贯串如何保障高可用?
本周有较多的用户提到了这个问题,相似的还有 「如何给多节点 TDengine 集群的链接配置高可用」。这个问题时常呈现在社区中,DBA、运维同学较为关怀。咱们曾经整顿成了文章,详情可看博客:「 TDengine 如何做到客户端高可用 」
2. Java 利用应用 taos-jdbcdriver 连贯 TDengine 时, RESTful 与原生 ( jni ) 接口性能相比如何,该如何选型?
应用 RESTful 连贯时,不依赖 TDengine 客户端驱动,能够跨平台,RESTful 连贯反对所有能运行 Java 的平台。原生连贯反对的平台则和 TDengine 客户端驱动反对的平台统一。 因而 RESTful 相比于原生连贯应用起来更加灵便、不便,但采纳 RESTful 的形式连贯,其性能相较于原生连贯会低 30% 左右。
举荐在每秒写入量小于 200 万条记录的场景下,优先选择 RESTful 。用户也可依据本人场景做性能测试,若应用 RESTful 连贯时性能齐全能满足业务操作需要则优先选择 RESTful ,反之抉择原生连贯。
3. TDengine 如何做表关联?是应用 JOIN 吗?
TDengine 反对在 「一般表与一般表」、「超级表与超级表」、「子查问与子查问」之间进行天然连贯,其语法相较于 INNER JOIN 有所不同,并且各种表进行关联查问的限度也不尽相同。
具体内容请看文档:「 JOIN 子句 」
4. 为什么 RESTful 接口无响应、Grafana 无奈增加 TDengine 为数据源、TDengineGUI 选了 6041 端口还是无奈连贯胜利?
上述问题也间歇性的呈现在社区中,许多用户充斥了疑难,特地是一些从 TDengine 旧版本升到 2.4 及之后版本的用户们,这是因为在 2.4 之前的版本中没有独自的 taosAdapter 组件,RESTful 接口是由 taosd 内置的 HTTP 服务提供的,而现在要实现上述性能须要执行:systemctl start taosadapter 命令来启动 taosAdapter 服务。
须要阐明的是,taosAdapter 的日志门路 path 须要独自配置,默认门路是 /var/log/taos ;日志等级 logLevel 有 8 个等级,默认等级是 info ,配置成 panic 可敞开日志输入。请留神操作系统 / 目录的空间大小,可通过命令行参数、环境变量或配置文件来批改配置,默认配置文件是 /etc/taos/taosadapter.toml 。
无关 taosAdapter 组件的具体介绍请看文档:「 taosAdapter 」
5. TDengine 数据备份工具 taosdump 如何应用?
taosdump 是 TDengine 集群的数据备份、还原工具,应用前请先查看文档中的阐明及注意事项 :「 taosdump 」
须要留神的是,taosdump 采纳逻辑备份的形式进行备份,其不应被用于备份任何原始数据、环境设置、 硬件信息、服务端配置或集群的拓扑构造;并且当备份的表数量很多时很容易导致文件系统卡住(一个表一个备份文件),举荐书写脚本循环调用 taosdump 依照较细的粒度备份到不同目录。
6. Windows 客户端无奈失常显示中文字符?
Windows 零碎中个别是采纳 GBK/GB18030 存储中文字符,而 TDengine 的默认字符集为 UTF-8 ,在 Windows 零碎中应用 TDengine 客户端时,客户端驱动会将字符对立转换为 UTF-8 编码后发送到服务端存储,因而在利用开发过程中,调用接口时正确配置以后的中文字符集即可。
【 v2.2.1.5当前版本 】在 Windows 10 环境下运行 TDengine 客户端命令行工具 taos 时,若无奈失常输出、显示中文,能够对客户端 taos.cfg 做如下配置:
locale C
charset UTF-8
再次运行客户端命令行工具 taos ,即能失常进行操作。
另外,在 TDengine 中,中文字符或其余多字节字符需用 nchar 类型存储,不要用 binary 类型进行存储,否则在用 taosdump 工具导出导入时将呈现乱码,导致不可修复的异样,binary 倡议只用于存储 ASCII 可见字符。
7. 产生了 OOM 怎么办?
OOM 是操作系统的爱护机制,当操作系统内存(包含 SWAP )有余时,会杀掉某些过程,从而保障操作系统的稳固运行。通常内存不足次要是如下两个起因导致,一是残余内存小于 vm.min_free_kbytes ;二是程序申请的内存大于残余内存。还有一种状况是内存短缺但程序占用了非凡的内存地址,也会触发 OOM 。
TDengine 会事后为每个 VNode 调配好内存,每个 Database 的 VNode 个数受 maxVgroupsPerDb 影响,每个 VNode 占用的内存大小受 Blocks 和 Cache 影响。要避免 OOM,须要在我的项目建设之初正当布局内存,并正当设置 SWAP ,除此之外查问适量的数据也有可能导致内存暴涨,这取决于具体的查问语句。TDengine 企业版对内存治理做了优化,采纳了新的内存分配器,对稳定性有更高要求的用户能够思考抉择企业版。
结尾语
感谢您浏览本期问题精选,心愿以上内容对您有帮忙。您在应用 TDengine 的过程中,若遇到辣手的问题或对 TDengine 有改良意见,欢送在 GitHub 上给咱们提 Issue ,内容越具体越好,也可微信扫下方二维码退出社区,与大家进行交换 ~ 最初,感激应用 TDengine Time-Series Database !
加小 T 为好友,立刻退出到物联网大数据技术交换群
想理解更多 TDengine Database的具体细节,欢送大家在GitHub上查看相干源代码。