KaiwuDBKaiwuDB

搜索
免费试用
加载中~
收藏

《一文讲透》第3期:简易快速实现 KWDB 的高效管理

KaiwuDB 社区官方号 time2024-10-11
上一期我们详细讲述了如何通过 KaiwuDB 开发者中心和 JDBC 两种方式连接 KWDB 数据库。今天,我们也将分享两种方式来实现 KWDB 对时序和关系数据的高效管理:


 使用 KaiwuDB 开发者中心管理 KWDB 

 使用 KaiwuDB JDBC 管理 KWDB

使用 KaiwuDB 开发者中心管理 KWDB


KaiwuDB Developer Center(KaiwuDB 开发者中心)是专门为 KWDB 数据库系统量身定制的可视化管理工具,我们改变了传统命令行操作方式,为大家提供了可视化的数据库操作平台,即使你是数据库“小白”,也能轻松驾驭我们
如何部署安装可浏览《一文讲透》第2期:两种 KWDB 的快速上手连接方式今天将为大家详细介绍如何使用 KaiwuDB 开发者中心可视化工具连接 KWDB 数据库、创建 KWDB 数据库、管理数据库对象等操作。
KaiwuDB 开发者中心窗口包含菜单栏、工具栏、导航栏、对象窗口、结果窗口以及状态栏。
《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图1)

一、时序数据

创建时序数据库步骤:

1、在数据库导航栏,右键单击时序数据库,然后选择【新建时序数据库】。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图2)

2、在创建时序数据库窗口,填写数据库名称,设置数据库生命周期,然后单击确定。默认情况下,数据库的生命周期为 0 天,即永不过期。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图3)

3、创建成功后,新建数据库将自动显示在数据库导航区内,继承 KWDB 数据库系统的角色和用户设置。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图4)

创建时序数据表步骤:

1、在数据库导航栏,选择要操作的数据库和模式。

2、右键单击时序表,然后选择【时序表】。系统将自动创建名为 newtable 的表,并打开对象窗口。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图5)

3、在属性页签,填写表名,配置表的生命周期。表名的最大长度为 128 字节。默认情况下,表的生命周期为 0 天, 即永不过期。

4、在字段页签,至少添加两个字段。字段名的最大长度为 128 字节。第一个字段的数据类型必须为 timestamp 或 timestamptz 且非空。实际上,系统会将 timestamp 数据类型处理为 timestamptz 数据类型。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图6)

5、在标签页签添加标签,设置标签名称、数据类型、长度、是否为主标签以及是否非空,然后单击保存。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图7)


Tips:每张时序表至少需要设置一个主标签,且主标签必须为非空标签。标签名的最大长度为 128 字节。

6、在执行修改窗口,确认 SQL 语句无误,然后单击执行。

写入数据步骤:

1、在数据库导航栏,右键单击需要编辑数据的表,然后选择编辑数据。

2、在数据页面,单击页面下方的添加新行按钮,向表中加入相应的数据。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图8)


3、如需查看对应的 SQL 语句,单击生成 SQL 语句,然后单击执行。

4、如果无需查看 SQL 语句,单击保存。

Tips:

  • 系统支持为指定的列写入数据,对于未指定的列,如果该列支持 NULL 值,系统将自动插入默认值 NULL。如果该列不支持 NULL 值,系统将提示 Null value in column %s violates null-null constraints.。

  • 输入 TIMESTAMP 或 TIMESTAMPTZ 类型数据时,日期部分需要使用短横线(-)、空格( )或正斜杠符号(/)分割,时间部分需要使用冒号(:)分割,支持精确到微秒,例如:'2023-01-25 10:10:10.123'、'2023 01 25 10:10:10.123' 或 '2023/01/25 10:10:10.123'。

  • KWDB 支持对具有相同时间戳的数据进行去重处理。默认情况下,后写入的数据会覆盖已存在的具有相同时间戳的数据。用户可通过 SET CLUSTER SETTING ts.dedup.rule=[ merge | override | discard] 语句设置数据去重策略。有关详细信息,参见集群参数配置。 


查询数据步骤:


在数据库导航栏,双击需要查看的时序表,即可查看表的属性和数据信息。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图9)
二、关系数据

创建关系数据库步骤:

1、在数据库导航栏,右键单击关系数据库,然后选择【新建关系数据库】。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图10)

2、在创建数据库窗口,填写数据库名称,然后单击确定。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图11)

3、创建成功后,新建数据库将自动显示在数据库导航栏内,继承 KWDB 数据库系统的角色和用户设置。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图12)

创建关系表步骤:


1、在数据库导航栏,选择要操作的数据库和模式。


2、右键单击表,然后选择新建表。系统将自动创建名为 newtable 的表,并打开对象窗口。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图13)

3、在对象窗口,填写表名、描述信息、添加字段,然后单击保存。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图14)

4、在执行修改窗口,确认 SQL 语句无误,然后单击执行。

写入数据步骤:

1、在数据库导航栏,右键单击需要修改的表,然后选择编辑表。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图15)

2、在属性页签,编辑字段、约束、外键、索引或权限,然后单击保存。

3、切换到数据页签,单击表格最下方的添加新行按钮,向表中加入相应的数据。

《一文讲透》第3期:简易快速实现 KWDB 的高效管理(图16)


4、如需查看相应的 SQL 语句,单击生成 SQL 语句,然后单击执行。

5、如果无需查看 SQL 语句,单击保存。

查询数据步骤:


在数据库导航栏,双击要查看的表,即可查看表的属性、数据和 ER 图信息。表列出了属性、数据和 ER 图中的信息:


页面信息
属性表名、描述、字段、约束、外键、索引、权限和建表语句等信息。
数据以网格和文本形式查看表内数据。
ER 图以图形方式展示数据库实体、属性和关系之间的结构和链接。

使用 KaiwuDB JDBC 管理 KWDB


KaiwuDB JDBC 是 KWDB 的官方 Java 语言连接器。它基于 PgJDBC 扩展实现,符合 JDBC 4.0、JDBC 4.1 和 JDBC 4.2 规范。如何安装可参考《一文讲透》第2期:两种 KWDB 的快速上手连接方式,本章分享如何使用用 KaiwuDB JDBC 连接 KWDB 数据库,并创建数据库、管理数据库对象等。

一、时序数据

管理时序数据库步骤:

// 获取数据库连接。Connection conn = DriverManager.getConnection("jdbc:kaiwudb://127.0.0.1:26257/defaultdb?user=root&password=123");// 创建 statement。Statement stmt = conn.createStatement();// 创建 ts_db 时序数据库。stmt.executeUpdate("create ts database ts_db");// 使用 ts_db 时序数据库。stmt.executeUpdate("use ts_db");// 删除 ts_db 时序数据库。stmt.executeUpdate("drop database ts_db");

Tip:如未使用 use <db_name> 参数指定数据库,后续对表的操作都需要使用数据库名称作为前缀,例如 ts_db.record。目前,时序数据库名称不支持中文字符。

管理时序表步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 创建 record 时序表。stmt.executeUpdate("CREATE TABLE record (RecordedTime timestamptz NOT NULL, Longitude float, Latitude float, EngineRPM int) TAGs (LicensePlate varchar(10) NOT NULL, VehicleColor varchar(10)) PRIMARY TAGS (LicensePlate)");// 删除 record 时序表。stmt.executeUpdate("drop table record");

Tip:在创建时序表时,第一列的数据类型必须为 timestamp 或 timestamptz,且不可为空值;每张时序表设置至少一个主标签,且主标签必须为非空标签。目前,时序表名、列名和标签名不支持中文字符。

写入数据步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 按照指定的列顺序向 record 表中写入数据。int rows1 = stmt.executeUpdate("insert into record (RecordedTime, Longitude, Latitude, EngineRPM, LicensePlate, VehicleColor) values ('2024-06-06 10:00:00', 40.2, 116.2, 3000, '京A11111', '黑')");System.out.println("specify column name insert " + rows1 + " rows data.");// 按照默认的列顺序向 record 表中写入数据。int rows2 = stmt.executeUpdate("insert into record values ('2024-06-06 10:00:01', 39.3, 116.1, 0, '京A22222', '白')");System.out.println("not specify column name insert " + rows2 + " rows data.");

查询数据步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 查询 record 表数据。ResultSet resultSet = stmt.executeQuery("select RecordedTime as ts, LicensePlate, VehicleColor from record");Timestamp ts = null;String LicensePlate = null;String VehicleColor = null;while(resultSet.next()){    ts = resultSet.getTimestamp(1);    LicensePlate = resultSet.getString("LicensePlate");    VehicleColor = resultSet.getString("VehicleColor");    System.out.printf("%s, %s, %s\n", ts, LicensePlate, VehicleColor);}

Tip:KWDB 支持使用下标或字段名获取数据。使用下标获取数据时,返回内容从 1 开始。建议使用字段名称获取数据。

二、关系数据

管理关系数据库步骤:

// 获取数据库连接。Connection conn = DriverManager.getConnection("jdbc:kaiwudb://127.0.0.1:26257/defaultdb?user=root&password=123");// 创建 statement。Statement stmt = conn.createStatement();// 创建 rdb 关系数据库。stmt.executeUpdate("create database rdb");// 使用 rdb 数据库。stmt.executeUpdate("use rdb");// 删除 rdb 数据库。stmt.executeUpdate("drop database rdb");

Tip:如未使用 use <db_name> 参数指定数据库,后续对表的操作都需要使用数据库名称作为前缀,例如 rdb.vehicles。

管理关系表步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 创建 vehicles 关系表。stmt.executeUpdate("CREATE TABLE vehicles (VehicleID int4, LicensePlate varchar(10), Owner varchar(10), Model varchar(50), Year int4)");// 删除 vehicles 关系表。stmt.executeUpdate("drop table vehicles");

写入数据步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 按照指定的列顺序向 vehicles 表中写入数据。int rows1 = stmt.executeUpdate("insert INTO vehicles (VehicleID, LicensePlate, Owner, Model, Year) VALUES (1, '京A11111', '李明', '奔驰', 2020)");System.out.println("specify column name insert " + rows1 + " rows data.");// 按照默认的列顺序向 vehicles 表中写入数据。int rows2 = stmt.executeUpdate("insert INTO vehicles VALUES (2, '京A22222', '赵志', '别克', 2022)");System.out.println("not specify column name insert " + rows2 + " rows data.");

查询数据步骤:

// 创建 statement。Statement stmt = conn.createStatement();// 查询 vehicles 表数据ResultSet resultSet = stmt.executeQuery("select LicensePlate, Owner, Model from vehicles");String LicensePlate = null;String Owner = null;String Model = null;while(resultSet.next()){    LicensePlate = resultSet.getString("LicensePlate");    Owner = resultSet.getString("Owner");    Model = resultSet.getString("Model");    System.out.printf("%s, %s, %s\n", LicensePlate, Owner, Model);}

Tip:KWDB 支持使用下标或字段名获取数据。使用下标获取数据时,返回内容从 1 开始。建议使用字段名称获取数据。

以上就是本期的管理 KWDB 教程,更多内容可参考往期,一起玩转 KWDB 吧!



Hi,访客请登录!欢迎分享,一起交流~

发表
暂时还没评论,等你发挥!

体验全新的分布式多模数据库解决方案

企业版 社区版

KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务。

关注官方微信

友情链接:浪潮  

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1    网站服务协议   |   隐私政策