文章目录
KingbaseES 是中电科金仓(北京)科技股份有限公司研发的,具有自主知识产权的通用数据库产品。该产品是面向全行业、全客户关键应用的企业级大型通用数据库管理系统,适用于事务处理类应用、数据分析类应用、海量时序数据采集检索等应用场景,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索、时序数据等的承载数据库。 今天给大家出一个金仓数据库KingbaseES超详细安装使用指南,从数据库下载、安装到可视化IDE KStudio工具的建库及使用。
一、关于KingbaseES金仓数据库
KingbaseES 是中电科金仓(北京)科技股份有限公司研发的,具有自主知识产权的通用数据库产品。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索、时序数据等的承载数据库。
作为KingbaseES产品系列最新一代版本,KingbaseES V9在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进,它包括以下主要技术特性:
🌞 高度容错,稳定可靠
针对企业级关键业务应用的可持续服务需求,KingbaseES V9提供可在电力、金融、电信等核心业务系统中久经考验的容错功能体系,通过如数据备份、恢复、同步复制、多数据副本等高可用技术,确保数据库7×24小时不间断服务,实现99.999%的系统可用性。
🌞 应用迁移,简单高效
针对从异构数据库将应用迁移到KingbaseES的场景,KingbaseES V9一方面通过智能便捷的数据迁移工具,实现无损、快速数据迁移;另一方面,KingbaseES V9还提供高度符合标准(如SQL、ODBC、JDBC
等)、并兼容主流数据库(如Oracle、SQLServer、MySQL
等)语法的服务器端、客户端应用开发接口,可最大限度地降低迁移成本。
🌞 人性设计,简单易用
KStudio版本提供了全新设计的集成开发环境(IDE)和集成管理平台,能有效降低数据库开发人员和管理人员的使用成本,提高开发和管理效率。
🌞 性能强劲,扩展性强
针对企业业务增长带来的数据库并发处理压力,该版本提供了包括并行计算、索引覆盖等技术在内的多种性能优化手段,此外提供了基于读写分离的负载均衡技术,让企业能从容应对高负载大并发的业务。
二、下载安装
2.1 下载数据库
金仓官网提供了金仓各产品各版本的安装包、补丁包、对应的工具、接口驱动、授权文件等下载服务。可以通过页面中的筛选栏选择所需产品及版本进行下载,我这里下载的是windows版本的x64完整版金仓数据库。
下载地址:https://download.kingbase.com.cn/xzzx/index.htm
这里下载好的是iso镜像文件,直接双击打开,然后把内容复制出来。
2.2 安装配置
单击 KINGBASE.EXE 开始安装!
我这里选择默认的中文安装,点击 确定
单击 下一步
单击 下一步
我这里选择的完全安装,点击 下一步
我这里选择试用,点击 下一步
可以自定义安装路径,点击 下一步
点击 安装
默认数据文件就行,点击 下一步
填写相关配置信息,system的密码自定义,字符集编码,选择的是UTF8;数据库兼容模式选择的是MySql;是否大小写敏感选择的是NO,存储块大小选择的是8K,点击 完成
这里数据库就安装完成了,完成了测试的第一步,接下来咱们一起去看看数据应用那块吧!
三、可视化工具建库操作
3.1 打开数据库开发管理工具(KStudio)
KingbaseES KStudio 是金仓数据库(KingbaseES)官方推出的专业数据库开发管理工具,提供可视化操作界面,支持数据库对象管理、SQL编辑与调试、数据导入导出、性能监控等功能。用户可通过KStudio轻松完成表、视图、存储过程等对象的创建与维护,并利用智能语法提示、执行计划分析等特性提升开发效率。同时,工具兼容主流数据库语法,支持多环境连接与批量任务处理,是DBA和开发人员管理KingbaseES数据库的得力助手,助力企业实现数据高效运维与开发。
3.2 建立数据连接
点击菜单 数据库 》新建连接
填写好密码,点击测试链接,提示连接成功,并展示服务版本配置和驱动相关信息。
3.3 建立数据库
右键 数据库 》新建数据库
填写基本属性信息
数据库的创建代码
CREATE DATABASE `xcLeigh` WITH OWNER = `system` ENCODING 'UTF8' TEMPLATE `template0`
TABLESPACE = `sys_default`
lc_collate = 'zh_CN.UTF-8'
lc_ctype = 'zh_CN.UTF-8'
connection_limit = -1
allow_connections = TRUE
is_template = FALSE;
点击确定,数据库就建好了
3.4 建表
打开 SQL编辑器 》输入建表SQL语句 》点击执行。表jsontable就创建成功了。
CREATE TABLE "public"."jsontable" (
"id" integer NULL,
"jsondata" json NULL,
"jsonvarchar" varchar NULL,
"jsonarray" json NULL
);
3.5 删表
打开 SQL编辑器 》输入删表SQL语句 》点击执行。表jsontable就删除成功了。
DROP TABLE "public"."jsontable"
3.6 新增表数据
打开 SQL编辑器 》输入插入数据的SQL语句》点击执行。表jsontable的数据就新增成功了。
INSERT INTO public.jsontable ("id","jsondata","jsonvarchar","jsonarray") VALUES
(1,'{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','{"f2": {"f3": 1}, "f4": {"f5": 99, "f6": "foo"}}','[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]'),
(2,'{"a":[1,2,3,4,5]}','{"a": [1, 2, 3, 4, 5]}','[1,2,3,4,5]'),
(3,'{"a":1, "b": ["2", "a b"],"c": {"d":4, "e": "ab c"}}','{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "ab c"}}','[{"f1":1,"f2":null},2,null,3]');
3.7 查询表数据
打开 SQL编辑器 》输入查询表数据SQL语句》点击执行。表jsontable的数据就显示了。
3.8 修改表数据
打开 SQL编辑器 》输入修改数据的SQL语句 》点击执行。表jsontable的数据就修改完成了。
UPDATE `jsontable` SET id=4 WHERE id=1
金仓数据库的sql语句跟oracle、mysql
等sql语句差不多,基本上都能很快上手!上面演示的增删改查功能,是不是相当简单?国产数据库的崛起已经步入轨道,快来一起翻开国产数据库的新篇章吧!
四、数据库JSON系列应用教程
JSON(JavaScript Object Notation)作为一种流行的数据格式,采用可读性非常好的轻量级文本,只需要更少的编码,处理速度更快,用于在现代Web和移动应用程序中交换数据。此外,JSON能打通关系型和非关系型数据存储之间的界限,为业务提供更好的架构选择。
JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。KingbaseES为存储JSON数据提供了两种类型:JSON和 JSONB。JSON 和 JSONB 几乎接受完全相同的值集合作为输入。
这两种类型的主要区别为:
- JSON类型把输入的数据原封不动地存储在数据库中(当然在存放前会做JSON的语法检查),使用的时候需要重新解析数据。
- JSONB类型在存放时就把JSON解析成二进制格式了,使用的时候不需要再次解析。
下面主要探讨Json构造函数。
4.1 Json构造函数
在对数据库的使用中,可能需要把关系数据或者一个行对象转为JSON对象或JSON数组,KingbaseES提供了JSON构造函数来生成JSON数据。
本部分将主要介绍Kingbase数据库的Json构造函数。
准备数据,上面增删改查的时候数据已经教大家新增了:
CREATE TABLE "public"."jsontable" (
"id" integer NULL,
"jsondata" json NULL,
"jsonvarchar" varchar NULL,
"jsonarray" json NULL
);
INSERT INTO public.jsontable ("id","jsondata","jsonvarchar","jsonarray") VALUES
(1,'{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','{"f2": {"f3": 1}, "f4": {"f5": 99, "f6": "foo"}}','[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]'),
(2,'{"a":[1,2,3,4,5]}','{"a": [1, 2, 3, 4, 5]}','[1,2,3,4,5]'),
(3,'{"a":1, "b": ["2", "a b"],"c": {"d":4, "e": "ab c"}}','{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "ab c"}}','[{"f1":1,"f2":null},2,null,3]');
JSON函数,使用JSON数据类型构造函数来解析文档的JSON输入(标量、对象或者数组),返回一个JSON类型的实例。
4.1.1 ROW_TO_JSON
- 功能描述:
把行作为一个 JSON对象返回。如果pretty_bool为真,将在第1层元素之间增加换行。
- 用法描述:
row_to_json(record [, pretty_bool])
- 示例描述:
demo=# select row_to_json(row(1,'foo'));
row_to_json
---------------------
{"f1":1,"f2":"foo"}
(1 行记录)
demo=# select row_to_json(row(id,jsonvarchar)) from jsontable;
row_to_json
-----------------------------------------------------------------------------------------
{"f1":1,"f2":"{\"f2\": {\"f3\": 1}, \"f4\": {\"f5\": 99, \"f6\": \"foo\"}}"}
{"f1":2,"f2":"{\"a\": [1, 2, 3, 4, 5]}"}
{"f1":3,"f2":"{\"a\": 1, \"b\": [\"2\", \"a b\"], \"c\": {\"d\": 4, \"e\": \"ab c\"}}"}
(3 行记录)
demo=# select row_to_json(row(id,jsonvarchar) , true) from jsontable;
row_to_json
----------------------------------------------------------------------------------
{"f1":1, +
"f2":"{\"f2\": {\"f3\": 1}, \"f4\": {\"f5\": 99, \"f6\": \"foo\"}}"}
{"f1":2, +
"f2":"{\"a\": [1, 2, 3, 4, 5]}"}
{"f1":3, +
"f2":"{\"a\": 1, \"b\": [\"2\", \"a b\"], \"c\": {\"d\": 4, \"e\": \"ab c\"}}"}
(3 行记录)
4.1.2 TO_JSON
- 功能描述:
将anyelement转换为JSON格式的数据。
- 用法描述:
to_json(anyelement)
- 示例描述:
demo=# select to_json(true);
to_json
---------
true
(1 行记录)
demo=# select to_json('abcd'::text);
to_json
---------
"abcd"
(1 行记录)
demo=# select to_json(array['a','b']);
to_json
-----------
["a","b"]
(1 行记录)
demo=# select to_json(id) from jsontable ;
to_json
---------
1
2
3
(3 行记录)
4.1.3 TO_JSONB
- 功能描述:
JSON函数,将任何SQL值转换为JSONB。
- 用法描述:
to_jsonb(anyelement)
- 示例描述:
demo=# select to_jsonb(true);
to_jsonb
----------
true
(1 行记录)
demo=# select to_jsonb('abcd'::text);
to_jsonb
----------
"abcd"
(1 行记录)
demo=# select to_jsonb(array['a','b']);
to_jsonb
------------
["a", "b"]
(1 行记录)
demo=# select to_jsonb(id) from jsontable ;
to_jsonb
----------
1
2
3
(3 行记录)
4.2.4 JSONB_BUILD_OBJECT
- 功能描述:
JSON处理函数,将可变参数列表构造成一个JSON 对象,通过转换,该参数列表由交替出现的键和值构成。
注意:参数列表的元素个数必须为偶数
- 用法描述:
jsonb_build_object( VARIADIC "any")
- 示例描述:
demo=# select JSONB_BUILD_OBJECT(id , name) from comtable ;
JSONB_BUILD_OBJECT
--------------------
{"1": "a"}
{"2": "b"}
{"3": "c"}
(3 行记录)
-- 元素个数必须为偶数
demo=# select JSONB_BUILD_OBJECT(id) from comtable ;
错误: 参数列表的元素个数必须为偶数
提示: jsonb_build_object()的参数必须包含可替代的键和对应的值.
4.2.5 JSONB_OBJECT
- 功能描述1:
JSONB处理函数,从文本数组中构造JSON对象。该数组必须是具有偶数个成员的一维数组(成员被当做交替出现的键值对),或者是一个二维数组(每一个内部数组只有两个元素,可以被看做键值对,所有的值均被转换为JSON字符串)。
- 用法描述1:
jsonb_object(text[])
---text数组必须包含偶数个元素
函数必须可以使具有偶数个成员的一维数组(成员被当做交替出现的键值对),或者是一个二维数组(每一个内部数组刚好有两个元素,可以被看做键值对)。
- 示例描述1:
demo=# SELECT jsonb_object(array[id::text ,name::text]) from comtable ;
jsonb_object
--------------
{"1": "a"}
{"2": "b"}
{"3": "c"}
(3 行记录)
-- 数组必须包含偶数个元素
demo=# SELECT jsonb_object(array[id::text]) from comtable ;
错误: 数组必须包含偶数个元素
demo=# SELECT jsonb_object('{a, b, "def", c, 3.5}');
错误: 数组必须包含偶数个元素
- 功能描述2:
JSON处理函数,从文本数组中构造JSON对象。从两个独立的数组得到键值对。在其他方面和一个参数的形式相同。
- 用法描述2:
jsonb_object( keys text[], values text[])
keys数组和values数组维数需要一致
从两个独立的数组得到键/值对。在其他方面和一个参数的形式相同。
- 示例描述2:
demo=# SELECT jsonb_object(array[id],array[name]) from comtable ;
jsonb_object
--------------
{"1": "a"}
{"2": "b"}
{"3": "c"}
(3 行记录)
-- keys和values数组维数需要一致
demo=# SELECT jsonb_object(array[id ,id],array[name]) from comtable ;
错误: 不匹配的数组维数
demo=# SELECT jsonb_object('{a,b}', '{1,2,3}');
错误: 不匹配的数组维数
4.2.6 JSON_BUILD_OBJECT
- 功能描述:
JSON处理函数,将可变参数列表构造成一个JSON 对象,通过转换,该参数列表由交替出现的键和值构成。
注意:参数列表的元素个数必须为偶数
- 用法描述:
json_build_object( VARIADIC "any")
- 示例描述:
参照JSONB_BUILD_OBJECT使用示例
4.2.7 JSON_OBJECT
- 功能描述:
以JSON对象形式返回输入的键值对(可为空)。当任意键名为NULL或者参数个数为单数时报错。
使用前需要创建mysql_json插件。
mysql_json是KingbaseES的一个扩展插件,主要定义了兼容mysql的json系列操作函数。默认不加载mysql_json扩展插件。
- 用法描述:
json_object([key,value[,key,value,…]])
- 示例描述:
加载插件
CREATE EXTENSION mysql_json;
注意:创建扩展前,需要关闭禁用多态函数参数,执行’set ora_forbid_func_polymorphism to off;’ 。
五、总结
📣 KingbaseES作为国产自主研发的通用数据库,🔥在可靠性、兼容性和易用性方面表现突出。🎈它支持高可用架构,通过数据备份、同步复制等技术确保 99.999% 的系统稳定性,🌞适用于金融、电信等关键业务场景。同时,KingbaseES V9高度兼容Oracle、MySQL、SQLServer
等主流数据库语法,提供智能迁移工具,大幅降低企业迁移成本。其内置的并行计算、读写分离等优化技术,有效应对高并发与大数据分析需求,满足事务处理与数据分析的双重挑战。
📣 此外,KingbaseES提供KStudio可视化IDE,💎简化数据库开发与管理流程,支持表、视图、存储过程等对象的便捷操作。JSON数据处理、全文检索、地理信息系统等高级功能进一步扩展了应用场景。无论是安装部署还是SQL操作,🏆KingbaseES都保持了低学习门槛,助力用户快速上手。国产数据库的崛起正逐步打破国外技术垄断✨,KingbaseES凭借其高性能和自主可控优势,成为企业级数据库的理想选择。
📣 优化方面,每次下载数据库需要填写公司信息,这点稍微有点多余,让不少用户望而止步,不过问题不大,数据库的稳定性、可靠性、兼容性方面表现还是相当给力的,这次试用是windows10专业版的,整体试用感觉不错!✨
致谢
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌