常见问题解答(FAQ)
安装部署 FAQ
依赖缺失
问题描述
安装 KaiwuDB 时,系统提示安装失败。
问题解答
用户可能未安装所需依赖。建议查看
kaiwudb_install/log
目录下的相关日志,然后根据日志信息,使用apt install
命令安装缺失的依赖。日志示例:
root@node:/home/admin/kaiwudb_install/log# cat 2024-08-28 [INFO] 2024-08-28 09:35:57 start init directory /etc/kaiwudb/data/kaiwudb [INFO] 2024-08-28 09:35:57 init directory success [INFO] 2024-08-28 09:35:57 start install binaries and libraries to /usr/local/kaiwudb [ERROR] 2024-08-28 09:35:57 error: Failed dependencies: squashfs-tools is needed by kaiwudb-server-2.0.3.2-kylin.kyl0.aarch64
SQL FAQ
数据写入
问题描述
在 CentOS 操作系统的容器环境下安装 KaiwuDB 后,用户可以创建时序数据库,但是创建时序表时报错
Error: have been trying 30s, timed out of AdminReplicaVoterStatusConsistent
。查看日志,系统提示Err :connection error: desc = "transport: Error while dialing dial tcp 100.153.0.246:26257: connect: connection refused
。问题解答
可能是因为容器无法访问宿主机的 IP 地址,导致建表时报错。建议修改防火墙配置,允许容器网段访问宿主机。
配置示例:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="172.18.0.4/24" port protocol="tcp" port="22" accept' --permanent
数据查询
生命周期设置
问题描述
用户创建了生命周期为
1
分钟的时序表,并写入数据。然而,表的生命周期到期后,用户仍然可以查询到表数据。show create temp; table_name | create_statement -------------+---------------------------------------------- temp | CREATE TABLE temp ( | ts TIMESTAMPTZ NOT NULL, | c1 INT4 NULL | ) TAGS ( | tag1 INT4 NOT NULL ) PRIMARY TAGS(tag1) | retentions 1m (1 row) select * from temp; ts | c1 | tag1 --------------------------------+----+------- 2024-05-27 03:06:14.465+00:00 | 3 | 1 2024-05-27 03:06:39.188+00:00 | 1 | 1 2024-05-27 03:06:46.104+00:00 | 2 | 1 2024-05-27 03:10:55.501+00:00 | 3 | 1 (4 rows)
问题解答
时序表的生命周期设置不适用于当前分区。默认情况下,系统每 10 天进行一次分区。即使表的生命周期已到期,由于数据仍存储在当前的分区中,因此用户仍然可以查到数据。
时间加减计算
问题描述
执行较大范围的时间加减运算时,计算结果有误。
select '2060-01-01 00:00:00':: timestamptz -'1600-01-01 00:00:00':: timestamptz; ?column? ------------------------------- 106751 days 23:47:16.854776 (1 row)
问题解答
KaiwuDB 执行时间加减运算时,如果运算符两边均为 timestamp 或 timestamptz 类型,只支持减法运算,且差值对应的纳秒数不得超过 INT64 范围,对应的天数不得超过
106751
天。如果超过该范围,系统将统一显示106751 days 23:47:16.854776
。
数据迁移 FAQ
问题描述
使用 KaiwuDB DataX Utils 从 InfluxDB 向 KaiwuDB 写入数据时,写入速率较慢。
问题解答
数据的实际写入速率与数据特性、硬件规格相关。用户可以采取以下步骤,调整相关参数配置,提升写入速率。
开启数据库短接写入功能。
SET CLUSTER SETTING server.tsinsert_direct.enabled = 'TRUE';
(可选)关闭 WAL 日志实时写入功能。
关闭 WAL 日志写入功能
SET CLUSTER SETTING ts.wal.flush_interval = -1s;
重启 KaiwuDB 服务。
systemctl restart kaiwudb
调整 KaiwuDB DataX Utils 配置文件中的相关参数。
splitIntervalS
:数据读取时间间隔。建议根据时间间隔内的数据量大小进行调整,默认值为 60,即 60 秒。该参数只适用于 InfluxDB。batchsize
:批量写入数据的条数。建议根据业务实际数据量进行调整。channel
:数据传输的并发数。建议根据机器性能进行配置。
配置示例:
source: pluginName: influxdb20reader databases: - name: db_example url: db_url username: user_example password: password_example tables: - name: 4301 column: _time,factorValue,factorCode beginDateTime: "2024-04-07 08:00:00" endDateTime: "2024-07-16 08:00:05" splitIntervalS: 600 target: pluginName: kaiwudbwriter databases: - name: tsdb url: jdbc_url username: user_example password: password_example tables: - name: xmtest column: ts,factorvalue,factorcode batchSize: 5000 setting: speed: channel: 5 errorLimit: percentage: 0.02
在 KaiwuDB DataX Utils 所在目录,执行数据迁移命令时,设置 JVM 参数,增加内存。
java -jar -DyamlPath=<yml_path> -DdataxPath=<datax_path> -Dpython=<python> -Darguments="$bin_path --jvm=\"-Xms2G -Xmx4G\"" kaiwudb-datax-utils-1.2.2.jar
监控 FAQ
说明
目前,KaiwuDB 监控平台是企业版特性。如需了解 KaiwuDB 监控平台的更多详细信息,联系 KaiwuDB 技术支持人员。
问题描述
在 Linux 系统上部署 KaiwuDB 数据库后,在 Windows 操作系统下使用 URL 登录 KaiwuDB 监控平台时,提示验证码错误。
问题解答
如果用户名和密码均准确无误,可能是 KaiwuDB 数据库所在的 Linux 服务器和 Windows 操作系统之间存在较高的网络时延,导致验证超时。建议进行时间校准,确保 Linux 服务器和 Windows 系统的时间同步,避免由于时间不同步导致的验证超时问题。
产品生态 FAQ
MyBatis
问题描述
通过 Spring + MyBatis 将
BigInteger
类型的数据插入时序表的INT8
列时,返回unsupported input type *tree.DDecimal
错误。问题解答
使用 JDBC 写入数据时,Java 中定义的
BigInteger
类型的数据会被处理为BigDecimal
类型。在 KaiwuDB 数据库中,BigDecimal
对应的数据类型为DECIMAL
和NUMERIC
。时序表不支持DECIMAL
和NUMERIC
数据类型,因此系统报错。为避免上述错误,建议将 Java 中的数据类型修改为Integer
。