一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。
熟悉、梳理、总结下人大金仓KingbaseES数据库相关知识体系
- kettle访问人大金仓KingbaseES数据库并处理数据至execl文件文章目录索引如下所示:
1.环境搭建、配置
-
1.0 实验环境
Windows 10
CentOS 7.1(虚拟机)
Docker version 26.0.2
Dbeaver
Kettle 8.2
KingbaseEs V8R3,kingbase (Kingbase) V008R003C002B0290
-
1.1 拉取人大金仓KingbaseES数据库镜像
bashdocker pull godmeowicesun/kingbase
-
1.2 创建目录文件
bashmkdir -p /opt/docker/kingbase-latest/spft chmod 777 /opt/docker/kingbase-latest/spft mkdir -p /opt/docker/kingbase-latest/spft/license
-
1.3 下载授权文件,并上传至目标路径
- 官网地址可下载标准版证书(可根据自身需求选择授权文件版本):https://www.kingbase.com.cn/xzzx/index.htm。如下图所示:
- 授权文件上传目标路径:
/opt/docker/kingbase-latest/spft
- 官网地址可下载标准版证书(可根据自身需求选择授权文件版本):https://www.kingbase.com.cn/xzzx/index.htm。如下图所示:
-
1.4 创建镜像容器
bash# 参考模版 # docker run -d -it --privileged=true -p [对外端口号]:54321 -v [本地主机的虚拟挂载路径]:/opt --name kingbase-latest godmeowicesun/kingbase:latest # 实操命令,注意如果不带 /bin/bash 数据库无法有效启动,将不能建立有效链接 docker run -d -it --privileged=true -p 54321:54321 -v /opt/docker/kingbase-latest/spft:/opt --name kingbase-v8 godmeowicesun/kingbase:latest /bin/bash
- 效果图如下所示:
-
1.5 DBeaver链接测试
-
新建
驱动管理器
,数据库 --》 驱动管理器 --》 新建
,库 --》 添加kingbasev8
驱动文件
-
数据库访问默认信息
sql端口: 54321 用户名: SYSTEM 密码: 123456 默认数据库: TEST
-
待确认解决问题,后续有时间定位下具体问题
-
2.人大金仓KingbaseES数据库链接测试
-
2.1 SQL测试脚本
sqlselect * from youli001.youli_test -- drop table youli001.youli_test; create table youli001.youli_test( id varchar(32) not null, remark varchar(255), length int8, front text, status smallint, range float8, create_time timestamp ); create index createtime on youli001.youli_test(create_time); comment on column youli001.youli_test.remark is '备注'; comment on column youli001.youli_test.length is '长度'; comment on column youli001.youli_test.status is '状态'; comment on column youli001.youli_test.range is '范围'; comment on column youli001.youli_test.create_time is '创建时间'; insert into youli001.youli_test values('001', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('002', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('003', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('004', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('005', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('006', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('007', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('008', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('009', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('010', 'good', 12, 'good', 0, 0.34, now()); insert into youli001.youli_test values('011', 'good', 12, 'good', 0, 0.34, now());
-
2.2 查询示例效果
3.kettle流程任务配置、效果验证
-
3.1 表输入 测试链接 OK
-
系统级schema:
- pg_catalog 包含着系统目录表、内建数据类型、函数和操作符。 即便在 schema 搜索路径中没有显式地提到它,它也总是 schema 搜索路径的一部分
- gp_toolkit 是一个管理用途的 schema ,它包含用户可以用 SQL 命令访问的外部表、视图和函数。 所有的数据库用户都能访问gp_toolkit 来查看和查询系统日志文件以及其他系统指标
- pg_aoseg 存储追加优化表对象。 这个 schema 由 数据库系统内部使用
- pg_bitmapindex 存储位图索引对象,例如值的列表。 这个 schema 由 数据库系统内部使用
- pg_toast 存储大型对象,如超过页面尺寸的记录。 这个 schema 由 数据库系统内部使用
- information_schema 有一个包含数据库中对象信息的视图集合组成。 这些视图以一种标准化的方式从系统目录表中得到系统信息
-
其他参考命令
bash# docker 人大金仓登录数据库 ksql -h 127.0.0.1 -U SYSTEM -d TEST create tablespace youli location '/opt'; # linux 查看端口号 lsof -i :54321 # 查看启动服务 ps -ef