返回首页

gbase数据、南大通用产品文档:GBase8a使用TABLE_FIELDS 指定加载longblob 数据

更新日期:2024年09月11日

longblob 类型数据加载方法分为两种,一种是数据形式的加载,一种是文件形式
的加载。加载该类型数据时,需要在table_fields 参数中对longblob 列指定
type_text、type_base64、type_url 参数,指定方法如下:

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1210

数据形式,需要加载的数据文件内含有longblob 类型数据。
gbase>load data infile ‘http://192.168.6.39/test.tbl’ into table data_test fields
terminated by ‘|’ table_fields ‘a,b,c type_text,d’;
SQL 中test.tbl 是需要加载的文件,test.tbl 内含有longblob 数据。
1)数据未经任何编码, 在SQL 内需要通过table_fields 对longblob 列指定
type_text 参数。例如:
建表语句:
CREATE TABLE data_test (column_1 INT, column_2 VARCHAR(10),
column_3 LONGBLOB, column_4 VARCHAR(10));
数据文件:
123|eqwerqwee|asdfsacq|adfasdfaa
234|qreqwerqw|sfwrwers|asfdasdfa
加载过程:
gbase>LOAD DATA INFILE ‘http://192.168.6.39/test.tbl’ INTO TABLE
data_test FIELDS TERMINATED BY ‘|’TABLE_FIELDS ‘column_1,
column_2, column_3 type_text, column_4’;
Query OK, 2 rows affected (Elapsed: 00:00:00.11)
Task 13 finished, Loaded 2 records, Skipped 0 records
查询入库数据:
gbase> SELECT * FROM test.data_test;
+------+-----------+----------+-----------+
|column_1 | column_2 | column_3 | column_4 |
+------+-----------+----------+-----------+
|
123 | eqwerqwee | asdfsacq | adfasdfaa |
|
234 | qreqwerqw | sfwrwers | asfdasdfa |
2 rows in set
2)longblob 数据为base64 格式编码,在SQL 内需要通过table_fields 对
longblob 列指定type_base64 参数。例如:
建表语句:
CREATE TABLE data_test (column_1 INT, column_2 VARCHAR(10),
column_3 LONGBLOB, column_4 VARCHAR(10));
数据文件:
123|eqwerqwee| PQEWIIAZX==|adfasdfaa
234|qreqwerqw| PQEWIIAZX==|asfdasdfa
加载过程:
gbase> LOAD DATA INFILE 'http://192.168.6.39/test.tbl' INTO TABLE
data_test FIELDS TERMINATED BY '|' TABLE_FIELDS
'column_1,
column_2, column_3 type_base64, column_4';
Query OK, 2 rows affected (Elapsed: 00:00:00.11)
Task 14 finished, Loaded 2 records, Skipped 0 records

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1211
查询入库数据:
gbase> SELECT * FROM test.data_test;
+----------+-----------+----------+-----------+
| column_1 | column_2
| column_3 | column_4
|
+----------+-----------+----------+-----------+
|
234 | qreqwerqw | = b
®
| asfdasdfa |
|
123 | eqwerqwee | = b
®
| adfasdfaa |
+----------+-----------+----------+-----------+
2 rows in set

文件形式
longblob 文件加载方法如下所示:
gbase>Load data infile ‘http://192.168.6.39/test.tbl’ into table data_test fields
terminated by ‘|’ table_fields ‘a,b,c type_url,d’;
test.tbl 内longblob 列书写要加载的longblob 文件路径,
可以是绝对路径
(如:
http/ftp/sftp/hdp 协议类型),也可以是相对路径。
SQL 中test.tbl 是需要加载的文件,下例中test_url.jpg、test_url_1.jpg、
test_url_2.jpg 为longblob 文件,指向test_url.jpg 的路径为绝对路径;指向
test_url_1.jpg、test_url_2.jpg 的为相对路径。test_url_1.jpg 与test.tbl 在同一目
录下,test_url_2.jpg 位于test 文件夹(该文件夹与test.tbl 在同一目录下)下。
加载以上jpg 文件时,需要在test.tbl 中的longblob 列书写指向文件的路径,
如:
123|eqwerqwee|http://192.168.6.11/test_url.jpg
|adfasdfaa
234|qreqwerqw|test_url_1.jpg
|asfdasdfa
234|qreqwerqw|./test_url_1.jpg
|asfdasdfa
123|qwerwesqw|test/test_url_2.jpg
|xcvb

使用 CREATE USER 语句定义内部认证的用户,或将外部认证的用户映射到访问
GBase 8s 资源所需的代理用户属性。
该语句是 SQL ANSI/ISO 标准的扩展。
语法

Properties

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 497

元素
描述
限制
语法
directory
存储用户文件的
目录的路径名称
必须是 255 字节或更少,并
且必须符合您操作系统的规
则。directory 还必须:

属于映射的 user_ID
和 surrog_group_ID。

所有者具有读、写和
执行权限。
引用字
符串
password
user 的内部认证
的密码。
必须是 6 - 32 字节。
引用字
符串
surrog_group
具有要映射 user
的权限的现有操
作系统组(代理
组)的名称。
surrog_group 值
必须包含在括号
中。
至多为 32 字节。
必须是
/etc/gbasedbt/allowed.surro
gates 文件中指定的代理
之一。
所有者
名称
surrog_group_ID 要映射 user 的
组标识编号。
surrog_group_id
值的列表必须包
含在括号中。
surrog_group_ID 不能是:

具有服务器管理特权
(DBSA 、
DBSSO 、AAO 和
精确数


GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 498
元素
描述
限制
语法
BARGROUP)的组
ID

组 0 (root,有时引
用为 wheel 或
system)

与组 bin 或组 sys 相
关联的组 ID
必须是
/etc/gbasedbt/allowed.surr
ogates 文件中指定的代理之
一。
surrog_user
在具有要映射
user 权限的
GBase 8s 主机计
算机上的现有操
作系统用户账户
(代理用户)的
名称。
必须符合您操作系统的规则。
必须是
/etc/gbasedbt/allowed.surro
gates 文件中指定的代理
之一。。
所有者
名称
user
您要映射到用户
属性的指定用户
的授权标识。
不能是 PUBLIC。
所有者
名称
user_ID
要映射 user 的
用户标识符号。
不能是用户 root 或用户
gbasedbt。
必须是
/etc/gbasedbt/allowed.surro
gates 文件中指定的代理
之一。
精确数

用法
只有 DBSA 才能运行 CREATE USER 语句。在非 root 安装中,除非用户将
DBSA 特权委托给另一个用户,否则安装服务器的用户等价于 DBSA 。
在 CREATE USER 语句定义的用户可以连接到数据库服务器之前,
USERMAPPING 配置参数必须设置成为支持映射用户的值。DBSA 可以发出
CREATE USER 语句以将用户映射到与适当级别的授权相对应的属性。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 499
还必须在 sysusers 的 SYSUSERMAP 表中输入值,以将用户映射到适当的用户
属性,以使 SQL 的映射用户已经正常工作。
CREATE USER 语句的执行可以用 CRUR 审计代码审计。
PASSWORD 子句
对于 root 特权的服务器,如果 OS 用户正在连接而还没有设置 USERMAPPING
配置参数,则尽管用户在当前数据库中存在,OS 认证仍会发生。当设置了
USERMAPPING 参数时,内部用户认证优先于 OS 认证。映射的用户都是内部
或外部认证的。当创建没有密码的用户时,将创建映射的用户。当创建有密码的
用户时,除非在此语句中指定了显式 PROPERTIES 子句,否则使用来在操作系
统的属性创建内部认证用户。当 CREATE USER 语句包含 PASSWORD 子句和
PROPERTIES 子句时,此用户是内部认证的用户,但是它具有 PROPERTIES 子
句中指定的代理属性。在这种情况中,代理用户或代理组必须在
/etc/gbasedbt/allowed.surrogates file 中列出。
PROPERTIES 子句
PROPERTIES 子句可以定义新的用户,并且可以可选地将此用户与包含组合主目
录的代理属性相关联。CREATE DEFAULT USER 是 CREATE USER 语句的特
例。CREATE DEFAULT USER 语句定义为缺省用户设置的属性。当定义完缺省
用户属性之后,您可以通过省略 PROPERTIES 子句创建新的具有缺省用户属性
的用户。 映射的用户可以使用代理用户属性连接到数据库服务器,如果它们使用
可插入身份验证模块(PAM)、单点登录(SSO)或内部身份验证。属性值不适
用于非 root 安装,但必须像 root 权限服务器一样指定。但是,代理用户和代理
组在非 root 安装中在 allowed.surrogates 文件中是不必需的。
AUTHORIZATION 子句
AUTHORIZATION 子句授权管理特权的子集。USERMAPPING 配置参数必须设
置成 ADMIN 以启用此子句。
注:
不推荐使用 AUTHORIZATION 子句(ALTER USER 的 AUTHORIZATION 子
句或 GRANT ACCESS TO PROPERTIES )。此语法在更高版本中不支持角色分
离。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 500
HOME 目录子句
使用 HOME 关键字为用户文件指定目录是可选的,但在某些情况下,这是非常
可取的。如果您没有指定主目录,具有同一主目录的内部认证用户将作为 GBase
8s 主机计算机上的代理用户账户。如果代理用户身份没有设置主目录,则 GBase
8s 为$GBASEDBTDIR/users 的用户文件创建目录。在这之后的情况中,
$GBASEDBTDIR/users 目录名称采用这种格式 uid.ID_number (如,uid.101)。
ACCOUNT LOCK 和 ACCOUNT UNLOCK 关键字
使用 ACCOUNT LOCK 和 ACCOUNT UNLOCK 关键字,DBSA 可以切换禁用
和启用指定用户对数据库服务器的访问。
示例
示例 1:创建映射用户
以下语句创建了名为 joe 的映射用户。
CREATE USER joe;
如果用户 joe 是 OS 用户,则 joe 禁用与其用户名称关联的操作系统属性。
如果用户 joe 不是 OS 用户,并且已经定义了缺省用户属性,则 joe 具有缺省
用户的代理属性。如果没有定义缺省语句,则会返回错误。
示例 2:创建内部认证用户:
以下示例创建了名为 joe 的内部认证用户,它的密码为 joebar:
CREATE USER joe WITH PASSWORD "joebar";
如果用户 joe 不是 OS 用户,并且已经定义了缺省用户属性,则 joe 具有缺省
用户的代理属性。如果没有定义缺省语句,则会返回错误。
示例 3:使用锁定的账户创建内部认证用户:
以下语句创建具有锁定的账户的名为 phil 的内部认证用户:
CREATE USER phil WITH PASSWORD "joebar" ACCOUNT LOCK;
如果用户 phil 不是 OS 用户,并且已经定义了缺省用户属性,则 phil 具有缺省
用户的代理属性。如果没有定义缺省语句,则会返回错误。
示例 4:创建具有特定属性的内部认证用户:

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 501
以下语句创建具有 UID 、组和主目录的内部认证用户 mary :
CREATE USER mary WITH PASSWORD "joebar" PROPERTIES UID 44567
GROUP(1234) HOME "/home/pd/osuser";
示例 5:创建具有代理用户的映射用户:
以下语句创建具有代理用户 foo_os 的映射用户 bill :
CREATE USER bill WITH PROPERTIES user "foo_os";
用户 bill 拥有用户 foo_os 的操作系统属性。
示例 6:创建缺省用户:
以下语句创建一个用户(内部命名为 PUBLIC),其中包含代理用户 tmp 的属
性:
CREATE DEFAULT USER WITH PROPERTIES USER "tmp";
创建的没有代理属性的其它用户将具有这些属性。

wal_buffers
参数说明:设置用于存放WAL 数据的共享内存空间的XLOG_BLCKSZ 数,
XLOG_BLCKSZ 的大小默认为8KB。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1200
该参数属于POSTMASTER 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:-1~218
如果设置为-1 ,表示wal_buffers 的大小随着参数shared_buffers 自动调整,为
shared_buffers 的1/32,这种情况下最小值为8 个XLOG_BLCKSZ,最大值为2048 个
XLOG_BLCKSZ,自动调整后的值小于最小值时会调整为最小值,大于最大值时会调整为
最大值。
如果设置为其他值,当小于4 时,会被默认设置为4。
默认值:2048,即16MB
设置建议:每次事务提交时,WAL 缓冲区的内容都写入到磁盘中,因此设置为很大的
值不会带来明显的性能提升。
如果将它设置成几百兆,
就可以在有很多即时事务提交的服务
器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。