返回首页

gbase数据、南大通用产品文档:GBase8a导入txt

更新日期:2024年09月11日

使用“导入txt”功能,您可以将txt 文件数据导入到数据库中。
在“数据库导航”中,选择数据库标签下的数据库节点。该节点必须是当前连
接数据库节点。右键单击选择“导入数据库数据”,在弹出界面中点击“打开
文件”
,如下图所示

GBaseDataStudio 管理工具手册
- 32 -
南大通用数据技术股份有限公司
图5- 348 导入txt
选择文件类型txt
图5- 349 选择txt 文件

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 33 -
读取txt 文件后,
“来自文本文件的数据”tab 页显示如下内容
文件数据:从txt 文件中读取的原始数据
包围符:选填,数据的包围符号
分隔符:选填,数据之间的分隔符号
换行符:必须输入,目前换行符多为\n 或者为\r\n,也可以自定义
字段数:展示导入的字段数
行数:控制导入文件的行数
标题名:控制文件第一行是否是需要导入的数据
字符集:文件的字符集,选择完字符集后,需要重新点击“打开文件”
,选择文

预览:预览数据的内容
导入:开始导入按钮
“来自文本文件的数据”tab 如下面界面所示
图5- 350 来自文本文件的数据
读取txt 文件后,
“到数据库的数据”tab 页显示如下内容:
虚拟集群:选择导入的虚拟集群
数据库:选择导入的数据库
表:选择需要导入的表
(左边)字段:txt 文件中的字段

GBaseDataStudio 管理工具手册
- 34 -
南大通用数据技术股份有限公司
字段:数据库中的表字段
字段类型:自动匹配类型,不需要选择
日期格式:字段类型是Date 时,必须选择
“到数据库的数据”tab 页如下所示
图5- 351 到数据库的数据

纵向扩容即为同一台机器添加额外的核以增加算力。
纵向扩容是传统上为单对控制器和
多核的机器增加算力的常见形式。纵向扩容架构受限于控制器的可扩展性。
技术要求
MOT 旨在实现以下目标:

线性扩容:
MOT 提供事务性存储引擎,
利用单个NUMA 架构服务器的所有核,
以提供
近线性的扩容性能。
这意味着MOT 的目标是在机器的核数和性能提升倍数之间实现直
接的、近线性的关系。
MOT 的近线性扩容效果明显优于所有现有方案,并且尽可能接近于获得最佳效果,因
现有方案皆受限于硬件(如电线)的物理限制和局限性。

无最大核数限制:MOT 对最大核数不做任何限制。这意味着MOT 可从单核扩展到高
达1000 秒的多核,
并且新增的核退化速度最小,
即便是在跨NUMA 槽位边界的情况下。

极高的事务性吞吐量:MOT 提供了一个事务性存储引擎,与市场上任何其他OLTP 供
应商相比,它能够实现极高的事务性吞吐量。

极低的事务性时延:
与市场上任何其他OLTP 供应商相比,
MOT 提供事务性存储引擎,
可以达到极低的事务时延。

无缝集成和利用产品:MOT 事务引擎与GBase 8c 产品标准无缝集成。通过这种方式,
MOT 最大限度地重用了位于其事务性存储引擎顶部的GBase 8c 层功能。
设计原则
为了实现上述要求(特别是在多核的环境中)
,我们存储引擎的体系结构实施了以下技
术和策略:

数据和索引只存在于内存中。

数据和索引不用物理分区来布局
(因为对于某些类型的应用程序,
这些分区的性能可能
会降低)。

事务并发控制基于乐观并发控制(OCC),没有集中的争用点。有关OCC 的详细信息,

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
480
请参见MOT 并发控制机制。

使用平行重做日志(最后单位为核)来有效避免中央锁定点。

使用免锁索引。有关免锁索引的详细信息,请参见MOT 索引。

使用NUMA 感知内存分配,避免跨槽位访问,特别是会话生命周期对象。有关NUMA
感知的更多信息,请参见NUMA-aware 分配和亲和性。

使用带有预缓存对象池的自定义MOT 内存管理分配器,
避免昂贵的运行时间分配和额
外的争用点。这种专用的MOT 内存分配器按需预先访问操作系统中较大的内存块,然
后按需将内存分配给MOT,使内存分配更加高效。
使用外部数据封装(FDW)进行集成
MOT 遵循并利用了GBase 8c 的标准扩展机制——外部数据封装
(FDW)

如下图所示。
在PostgreSQL 外部数据封装特性的支持下,作为其他数据源的代理的MOT 数据库可
以创建外表,如MySQL、Oracle、PostgreSQL 等。当对外表执行查询时,FDW 将查询外部
数据源并返回结果,就像查询内表一样。
GBase 8c 依赖PostgreSQL 外部数据封装和索引支持,
因此SQL 完全覆盖,
包括存储过
程、用户定义函数、系统函数调用。
图13- 2 MOT 架构

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
481
上图中绿色表示MOT 引擎,蓝色表示现有的GBase 8c 组件。
由此可见,
FDW 在MOT
引擎和GBase 8c 组件之间进行中介。
与MOT 相关的FDW 定制
通过FDW 集成MOT 可以重用最上层的GBase 8c 功能,从而显著缩短MOT 的上市时
间,同时不影响SQL 的覆盖范围。
但是,GBase 8c 中原有的FDW 机制并不是为存储引擎扩展而设计的,因此缺少以下基
本功能:

查询规划阶段待计算的外表的索引感知

完整的DDL 接口

完整的事务生命周期接口

检查点接口

重做日志接口

恢复接口

真空接口
为了支持所有缺失的功能,SQL 层和FDW 接口层已扩展,从而为插入MOT 事务存储
引擎提供必要的基础设施。
结果:线性扩容
以下是上述MOT 设计原则和实现的结果:
MOT 在符合ACID 工作负载的事务吞吐量方面优于所有现有的工业级OLTP 数据库。

sysdefaults 系统目录表列出了对数据库中的每一列设置的用户定义的缺省值。对于每
个用户定义的缺省值,都存在一行。
sysdefaults 表具有以下列:
表 12. SYSDEFAULTS 表列描述

类型
解释
tabid
INTEGER
唯一地标识表的代码。当 class 列包含代码 P 时,
tabid 列会引用过程标识,而不是表标识。
colno
SMALLINT
唯一地标识列的代码。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 34 -


类型
解释
type
CHAR(1)
标识缺省值类型的代码:C = 当前L = 文字值N =
NULLS = Dbservername 或 Sitename T = 今天U = 用

default
CHAR(256)
如果 sysdefaults.type = L,那么为文字缺省值。
class
CHAR(1)
标识列种类的代码:T = 表t = ROW 类型P = 过程

如果 CREATE
TABLE 或 ALTER
TABLE 语句中未明确指定缺省值,
那么 sysdefaults 表
中不存在该列的条目。
如果指定文字作为缺省值,那么它将以 ASCII 文本的形式存储在缺省列中。如果文字
值不是下一段中列出的数据类型之一,那么 default 列由两部分组成。第一部分是缺省值
结构的二进制值的 6 位表示法。第二部分是 ASCII 文本形式的缺省值。这两个部分由空
格隔开。
如果列的数据类型不是 CHAR、NCHAR、NVARCHAR 或 VARCHAR 或者(用于 GBase 8s)
BOOLEAN 或 LVARCHAR,那么在缺省列中对缺省值的二进制表示进行编码。
tabid、colno 和 class 列的组合索引只允许唯一值。