前言
- 在数据库技术飞速发展的当下,国产数据库也在不断崛起并展现出强大的竞争力。人大金仓的 KingbaseES 便是其中的杰出代表,它承载着国内数据库研发的深厚底蕴与创新精神。本入门指南将全面且深入地为你揭开 KingbaseES 的神秘面纱,无论你是初涉数据库领域的新手,还是寻求新数据库解决方案的专业人士,都能从中获取到实用且系统的知识,帮助你快速上手并运用 KingbaseES。
KingbaseES 简介
KingbaseES 是北京人大金仓信息技术股份有限公司精心打造的企业级关系型数据库管理系统。历经多年技术沉淀与市场打磨,凭借着自身过硬的技术实力,在国内数据库市场占据了重要地位。它的诞生与发展,不仅是人大金仓公司技术创新的结晶,更是顺应了国内各行业对安全、可靠、高性能数据库管理系统的迫切需求。在数据库技术不断演进的浪潮中,KingbaseES 始终紧跟前沿,持续迭代升级,为用户提供更优质、更强大的数据管理服务。
主要特点
高性能
KingbaseES 在查询引擎方面进行了深度优化,能够快速且精准地解析用户的查询语句,规划出高效的执行路径。其独特的数据存储结构,针对不同类型的数据特点进行了合理布局,大大减少了数据读写时的 I/O 开销。先进的并发控制机制则确保了在高并发场景下,多个用户的操作能够有序执行,避免了数据冲突,从而极大地提升了整体的数据处理效率,能够轻松应对大规模、高并发的复杂应用场景。
高可用性
为保障数据的高可用性和可靠性,KingbaseES 支持多种高可用方案。主从复制模式下,从节点实时同步主节点的数据,一旦主节点出现故障,从节点能够迅速切换为主节点,确保业务的连续性。集群方案通过多节点协同工作,实现了负载均衡,提高了系统的整体处理能力。此外,它还提供了丰富的备份恢复机制,包括全量备份、增量备份以及基于日志的恢复,让用户在面对各种意外情况时,都能确保数据的安全与完整。
高安全性
在数据安全至关重要的今天,KingbaseES 提供了全方位的安全防护体系。数据加密技术确保了数据在存储和传输过程中的保密性,防止数据被窃取或篡改。访问控制机制则通过精细的用户权限管理,严格限制用户对数据的访问级别,只有经过授权的用户才能执行相应的操作。审计日志功能详细记录了所有用户的操作行为,便于事后追踪和审计,为数据安全提供了有力的保障。
兼容性
KingbaseES 具备出色的兼容性,它全面支持标准的 SQL 语言,这使得熟悉 SQL 的开发者能够轻松上手,无需重新学习新的语法。同时,它还兼容多种主流的数据库和操作系统,无论是从其他数据库迁移数据,还是在不同的操作系统环境中部署应用,都能实现无缝对接,大大降低了系统集成和迁移的成本与难度。
易用性
考虑到数据库管理的复杂性,KingbaseES 提供了直观易用的图形化管理工具,让管理员能够通过简洁的界面完成数据库的创建、用户管理、权限分配等操作。监控工具则实时监测数据库的运行状态,及时发现并预警潜在的问题。丰富的管理功能涵盖了数据库的各个方面,即使是非专业的数据库管理人员,也能轻松应对日常的管理任务,有效降低了数据库管理的门槛。
主要功能
数据管理
KingbaseES 支持丰富的数据类型,包括常见的数值型、字符型、日期型,以及一些特殊的数据类型,如 JSON 类型,能够满足各种复杂业务场景的数据存储需求。它还提供了多种索引类型,如 B 树索引、哈希索引等,通过合理创建索引,可以显著提升数据查询的速度。在数据操作方面,具备完整的插入、查询、更新和删除功能,且语法简洁明了,方便开发者使用。
事务管理
严格遵循事务的原子性、一致性、隔离性和持久性(ACID)原则,KingbaseES 确保了在并发环境下数据的一致性和可靠性。无论是简单的单个事务操作,还是涉及多个步骤的复杂事务,都能保证要么全部成功执行,要么全部回滚,避免了因部分操作失败而导致的数据不一致问题。
查询优化
通过强大的查询优化器,KingbaseES 能够对用户提交的查询语句进行全面分析,结合数据库的统计信息和索引情况,生成最优的执行计划。在执行计划的执行过程中,还会根据实际情况进行动态调整,以确保查询性能的最优化。这种智能的查询优化机制,大大提高了查询的响应速度,尤其是在处理海量数据时,优势更加明显。
备份恢复
提供灵活多样的备份方式,在线备份允许在数据库正常运行的情况下进行备份操作,不会影响业务的正常开展;增量备份则只备份自上次备份以来发生变化的数据,有效减少了备份所需的时间和存储空间;日志备份则记录了数据库的所有事务操作,通过结合日志备份和其他备份方式,可以实现数据的精确恢复。在恢复策略方面,支持基于时间点的恢复、基于事务的恢复等多种方式,用户可以根据实际需求选择最合适的恢复方案。
复制和集群
支持多种复制和集群方案,除了前面提到的主从复制,还包括更高级的多主复制模式,满足不同业务场景对数据同步和高可用性的要求。在集群方面,通过集群技术,将多个数据库节点组成一个逻辑整体,实现了负载均衡和故障自动切换。当某个节点出现故障时,系统能够自动将请求转发到其他正常节点,确保业务的不间断运行,同时提高了系统的整体处理能力和扩展性。
安全管理
在用户管理方面,KingbaseES 提供了完善的用户创建、修改和删除功能,支持多种身份认证方式,如密码认证、证书认证等,确保用户身份的真实性和合法性。权限管理采用了灵活的角色 - 权限模型,管理员可以将不同的权限组合成角色,然后将角色分配给用户,实现了对用户权限的精细控制。数据加密功能支持对敏感数据进行加密存储和传输,防止数据泄露。审计功能则对用户的所有操作进行详细记录,便于事后审计和追踪,为数据库的安全运行提供了全方位的保障。
应用场景
金融行业
金融业务对数据的安全性、准确性和高可用性有着极高的要求。KingbaseES 凭借其卓越的性能和强大的安全防护能力,能够为金融机构提供高效的交易处理服务,确保每一笔交易的快速、准确执行。在数据分析方面,能够对海量的金融数据进行深入挖掘和分析,为风险评估、投资决策等提供有力支持,满足金融业务在数据处理和安全保障方面的严苛需求。
政府部门
政府部门涉及大量的政务数据处理和共享工作,数据的安全性和可靠性至关重要。KingbaseES 可以支撑大规模的政务数据存储和管理,保障数据在不同部门之间的安全、高效共享。在电子政务系统中,能够稳定运行各种业务应用,为政府决策提供数据支持,助力政府提升工作效率和服务质量。
电信行业
电信行业面临着高并发的业务请求和海量数据存储的挑战。KingbaseES 的高性能和高扩展性使其能够轻松应对这些挑战,快速处理用户的通话记录、短信数据、流量信息等。在实时计费、用户行为分析等业务场景中,能够提供可靠的数据服务,确保电信业务的稳定运行和用户体验的优化。
电力行业
电力系统的稳定运行依赖于对电力调度和监控数据的精准管理。KingbaseES 可以有效地管理电力调度过程中产生的大量实时数据,以及电力设备监控数据。通过对这些数据的分析和处理,实现对电力系统运行状态的实时监测和故障预警,保障电力系统的安全、稳定运行,为电力行业的信息化建设提供坚实的数据支撑。
KingbaseES 安装
- 安装
KingbaseES
非常简单,Kingbase
官网提供了详细的文档,首先我们需要从官网(https://www.kingbase.com.cn/xzzx/index.htm
)下载数据库安装程序和授权文件: - 选择合适的版本和环境下载:
- 下载开发版授权证书:

- 逐步进行安装,中间需要选择我们下载的授权证书以及设置账户连接密码:



- 经过上述过程的简单操作,我们就已经完成了
KingbaseES
的安装,可以看到安装过程其实非常简单。
Kingbase 客户端使用以及 SQL 体验
Kingbase
提供了配套的客户端方便我们进行使用,打开我们的客户端链接数据库:

- 连接成功进入客户端

SQL 体验
- 创建一个名为
employees
的表,包含员工的 ID、姓名、职位和工资字段:
sql
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
position VARCHAR(100),
salary DECIMAL(10, 2)
);

- 向
employees
表中插入几条记录:
sql
INSERT INTO employees (name, position, salary)
VALUES
('Alice Johnson', 'Manager', 75000.00),
('Bob Smith', 'Developer', 60000.00),
('Carol White', 'Analyst', 50000.00);

- 将 Bob Smith 的职位更新为 Senior Developer,并将工资提高到 70000.00:
sql
UPDATE employees
SET position = 'Senior Developer', salary = 70000.00
WHERE name = 'Bob Smith';
- 删除 Carol White 的记录:
sql
DELETE FROM employees
WHERE name = 'Carol White';
- 查询
employees
表中的记录:
sql
SELECT * FROM employees;
SELECT * FROM employees
WHERE salary > 60000.00;

- 可以看到,
KingbaseES
语法和标准SQL
语法基本一致,极大的降低了开发者的入门门槛,基本可以实现无缝连接。
数据库各模式含义及用途

1. dbms_job
-
含义:通常与数据库作业调度系统相关。
-
用途:存储定时执行的任务(如备份、数据同步、统计报表生成等)。
-
关联技术 :Oracle 数据库的
DBMS_JOB
包(用于创建和管理作业队列),或其他数据库的类似功能。
2. dbms_scheduler
-
含义:更高级的数据库作业调度系统。
-
用途 :替代
dbms_job
,提供更灵活的调度功能(如复杂时间表达式、依赖关系、资源管理等)。 -
关联技术 :Oracle 10g 及以上版本引入的
DBMS_SCHEDULER
包,或其他数据库的企业级调度工具。
3. kdb_schedule
-
含义:特定业务系统(可能是金融领域,因 KDB 常用于量化交易)的调度模块。
-
用途:存储与 KDB(一种高性能时序数据库)相关的定时任务,如数据导入、计算引擎触发等。
4. perf
-
含义:性能监控(Performance Monitoring)相关的模式。
-
用途:存储数据库性能指标(如查询耗时、锁等待、资源利用率等),用于分析和优化。
-
常见表 :
perf_statements
(慢查询日志)、perf_metrics
(系统指标)等。
5. public
-
含义:数据库的默认模式,所有用户都有访问权限。
-
用途:存放公共对象(如示例表、基础函数),或未指定模式时的默认存储位置。
-
注意 :生产环境中通常不建议将业务表放在
public
模式,可能导致权限混乱。
6. sysaudit
-
含义:系统审计(System Audit)相关的模式。
-
用途:存储数据库操作日志(如用户登录、DDL/DML 语句执行记录),用于合规性检查或安全分析。
-
关联技术 :数据库审计功能(如 MySQL 的
audit_log
插件、PostgreSQL 的pgaudit
扩展)。
7. sysmac
-
含义:系统强制访问控制(System Mandatory Access Control)相关的模式。
-
用途:存储与数据安全策略相关的元数据(如行级访问控制规则、敏感数据分类)。
-
关联技术:某些数据库(如 Oracle、达梦)的 MAC 机制,用于实现更严格的权限控制。
Python 连接使用
- 下面是一个完整的
Python
示例代码,展示了如何连接 KingbaseES 数据库并执行查询操作:
python
import psycopg2
# 连接到 KingbaseES 数据库
conn = psycopg2.connect(
dbname="test",
user="system",
password="123456",
host="localhost",
port="54321"
)
# 创建一个游标对象
cur = conn.cursor()
# 查询数据 默认使用 public 可以使用 your_schema_name.your_table_name 指定模式
cur.execute("SELECT * FROM employees")
rows = cur.fetchall()
# 打印查询结果
for row in rows:
print(row)
# 关闭游标和连接
cur.close()
conn.close()
// 运行结果
(1, 'Alice Johnson', 'Manager', Decimal('75000.00'))
(3, 'Carol White', 'Analyst', Decimal('50000.00'))
(2, 'Bob Smith', 'Senior Developer', Decimal('70000.00'))
