乐趣区

关于tdengine:TDengine-社区问题双周精选-第一期

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 上查看相干源代码。

退出移动版