返回首页

gbase数据、南大通用产品文档:GBase8a使用SET 加载数据文件

更新日期:2024年09月11日

示例
建表语句:
CREATE TABLE "t" ("a" varchar(10) DEFAULT NULL, "b" int(11)
DEFAULT NULL, "c" datetime DEFAULT NULL, "d" varchar(10)
DEFAULT NULL, "e" decimal(10,2) DEFAULT NULL );
数据文件:
Hello|01
Good|02

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1206
Better|03
加载过程:
gbase> LOAD DATA INFILE 'http://192.168.6.39/data.tbl' INTO TABLE t
FIELDS TERMINATED BY '|' SET c='2016-06-06
18:08:08',d='default',e=20.6;
Query OK, 3 rows affected
Task 2920 finished, Loaded 3 records, Skipped 0 records
查询入库数据:
gbase> SELECT * FROM t;
+--------+------+---------------------------------+---------+-------+
| a
| b
| c
| d
| e
|
+--------+------+----------------------------------+---------+-------+
| Hello
|
1 | 2016-06-06 18:08:08 | default | 20.60 |
| Good
|
2 | 2016-06-06 18:08:08 | default | 20.60 |
| Better |
3 | 2016-06-06 18:08:08 | default | 20.60 |
+--------+------+------------------------------------+---------+-------+
5rows in set

功能描述
向含有自增列的表中加载数据,
需使用table fields 指定列方式进行数据加载,不允
许指定自增列。
示例
CREATE TABLE lineitem
(
a int auto_increment primary key,
L_ORDERKEY
INT NOT NULL,
L_PARTKEY
INTEGER NOT NULL,
L_SUPPKEY
INTEGER NOT NULL,
L_LINENUMBER
INTEGER NOT NULL,
L_QUANTITY
DECIMAL(15,2) NOT NULL,
L_EXTENDEDPRICE
DECIMAL(15,2) NOT NULL,
L_DISCOUNT
DECIMAL(15,2) NOT NULL,
L_TAX
DECIMAL(15,2) NOT NULL,
L_RETURNFLAG
CHAR(1) NOT NULL,
L_LINESTATUS
CHAR(1) NOT NULL,
L_SHIPDATE
DATE NOT NULL,

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1031
L_COMMITDATE
DATE NOT NULL,
L_RECEIPTDATE DATE NOT NULL,
L_SHIPINSTRUCT CHAR(25) NOT NULL,
L_SHIPMODE
CHAR(10) NOT NULL,
L_COMMENT
VARCHAR(44) NOT NULL
);
gbase> LOAD DATA INFILE 'http://192.168.154.99/tpch1s/lineitem.tbl' INTO
TABLE
test.lineitem
FIELDS
terminated
by
'|'
table_fields
'L_ORDERKEY,L_PARTKEY,L_SUPPKEY,L_LINENUMBER,L_QUANTI
TY,L_EXTENDEDPRICE,L_DISCOUNT,L_TAX,L_RETURNFLAG,L_LIN
ESTATUS,L_SHIPDATE,L_COMMITDATE,L_RECEIPTDATE,L_SHIPINS
TRUCT,L_SHIPMODE,L_COMMENT';
Query OK, 6001215 rows affected (Elapsed: 00:00:07.60)
Task 5250 finished, Loaded 6001215 records, Skipped 0 records
gbase> SELECT count(distinct(a)) from lineitem;
+--------------------+
| count(distinct(a)) |
+--------------------+
|
6001215 |
+--------------------+
1 row in set (Elapsed: 00:00:01.09)

当 GBase 8s ESQL/C 程序执行 SQL 语句时,它有效地将语句传递给数据库服务器。
数据库服务器从数据库应用程序接收 SQL 语句,传递它们,优化数据检索路径,接收来
自数据库的数据,并将数据和状态信息返回给应用程序。

GBase 8s ESQL/C 程序和数据库服务器通过进程间通信机制相互通信。 GBase 8s
ESQL/C 程序是对话中的客户端进程,因为它从数据库服务器请求信息。数据服务器是服
务器进程,因为它提供了响应客户端请求的信息。客户端和服务器进程之间的分工在网络
中是有利的,其中数据可能不在与需要它的客户端程序相同的计算机上。

当编译 GBase 8s ESQL/C 程序时,它将自动配置为与同一台计算机(本地)或其他
计算机(远程)上的网络上的数据库服务器进行通信。下图显示了 GBase 8s ESQL/C 应用
程序和本地数据库服务器之间的连接。

图 1. 连接到本地数据库服务器的 ESQL/C 应用程序


下图显示了跨网络的 GBase 8s ESQL/C 应用程序与远程数据库服务器的连接。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 325 -

图 2. 连接到远程数据库服务器的 ESQL/C 应用程序


要建立与数据库服务器的连接,您的应用程序必须执行以下操作:
标识已经为应用程序的客户端服务器环境定义的数据库服务器连接
执行 SQL 语句以连接到数据库服务器