返回首页

gbase数据、南大通用产品文档:GBase8a查询结果导出语法

更新日期:2024年09月11日

语法格式
SELECT ... INTO OUTFILE 'storage_target ' [OPTION] FROM ...;
SELECT... FROM... INTO OUTFILE 'storage_target ' [OPTION];
参数说明
导出存储目标分8a 表与hive 表两种情况


a、8a 表:
storage_target:保存导出数据的路径及文件名,必须是绝对路径。如,
/home/gbase/test.txt。如果导出时,目标文件已经存在,则系统报告错误信息。



b、hive 表
storage_target:保存导出数据的目录,可以是绝对路径,如'/tmp/h1',或相对路
径,如’tmp/h1’。如果指定相对路径,则有两种情况:
保存导出数据的文件系统,支持HDFS 及本地文件系统LOCAL,默认值是
LOCAL。如果指定导出到本地文件系统,且目标目录已经存在,则会报错
“ERROR 1086 (HY000): File '/your/outfile/path' already exists”。如果指定导出

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 230
到HDFS,且目标目录已经存在,具体规则如下:
1) hive_export_use_ext_table = 0 (默认)时支持writemode
normal/overwrites/appends。
normal 要求导出目录为空,否则报错。
overwrites 会删除导出目录,再重新创建目录并导出文件。
appends 会追加写数据到导出目录。
如果目录目录不存在,三个参数都是创建新的目录,然后再导出数据。
2) hive_export_use_ext_table = 1 时只支持writemode overwrites ,指定
normal/appends 时报错。
因为hive_export_use_ext_table = 1 时,
UP 使用hive
的insert overwrite dirctory 语法导出数据 覆盖写到目标目录,只能支持覆
盖写。
OPTION 参数说明
OPTION 选项
说 明
FIELDS/COLUMNS
TERMINATED BY
字段分隔符,支持多个字符,如果不指定分隔符则默认值
“\t”,即TAB 键。
FIELDS/COLUMNS
[OPTIONALLY] ENCLOSED BY
字段包围符,可以自行指定单个字符为字段包围符,指定多
个字符时报错。
支持OPTIONALLY 选项,加OPTIONALLY 选项时仅对字
符串类型起作用,否则对所有字段都起作用。
默认为无字段包围符。
FIELDS/COLUMNS
ESCAPED
BY
转义标识符,可以自行指定单个字符为转义标识符,指定多
个字符时报错,
默认为
“\”

默认值在语句中写为:
FIELDS
ESCAPED BY '\\'。
LINES TERMINATED BY
行分隔符,支持多个字符,默认为“\n”。
LINES STARTING BY
行起始符,支持多个字符,默认为“”。
OPTION 语法约束:

可指定多个字符为字段分隔符,默认为“\t”。

可指定单个字符为字段包围符,指定多个包围符时报错。支持OPTIONALLY
选项,加OPTIONALLY 选项时仅对字符串类型起作用,否则对所有字段都起
作用。默认为无字段包围符。

可指定单个字符为转义标识符,指定多个转义符时报错。

可指定多个字符为换行符,默认为“\n”。

可指定多个字符为行首分隔符,默认为“”。

如果需要同时设置多个FIELDS/COLUMNS 和LINES 的参数,则需要注意的
是, FIELDS/COLUMNS 参数与LINES 参数不能相互交叉混合设置。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 231

在一条完整的SELECT ... INTO OUTFILE 语句中,FIELDS/COLUMNS 或
LINES 保留字仅可出现一次。

SELECT...INTO OUTFILE...支持导出复杂SQL 语句的查询结果。
注意
HIVE 引擎的导出的文本文件中,以’\n’作为行分隔符。
HIVE 引擎执行SELECT INTO OUTFILE 时,不支持SORT BY、CLUSTER BY、
DISTRIBUTE BY 子句。
如果是HIVE 表,不支持 ENCLOSED BY、STARTING BY。
HIVE 引擎只支持单个字符的转义符和分割符。

查看典型的 ODBC 应用程序架构。
下图显示了具有驱动管理器和 GBase 8s ODBC Driver 的典型的 ODBC 应用程序架构。
图: 典型的 ODBC 应用程序架构

在此场景中,如果应用程序启用 Unicode 的 API,则必须将其连接到启用 Unicode 的
GBase 8s ODBC Driver
(3.8 版本或更高)

来确保数据没有丢失。
如果应用程序调用 ANSI
ODBC API,则应用程序可以链接到启用 Unicode 的驱动程序或 ANSI 驱动程序。
GBase 8s ODBC Driver 继续支持 GBase 8s GLS。
因此,
在字符缓冲区中获取的所有数据都
可以在客户端语言环境代码集中获取。只有使用宽字符缓冲区获取的数据才使用 Unicode。

在 Windows(TM) 上,
如果 ODBC 驱动程序没有启用 Unicode,
则 ODBC Driver Manager
会将所有的 Unicode API 函数调用映射到 ANSI ODBC API。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 245 -
如果 ODBC 驱动程序启用了 Unicode,
则 Windows(TM) ODBC Driver Manager
(4.0 版本
或更高)将所有的 ANSI ODBC API 映射到 Unicode ODBC API。 用于 UNIX(TM) 的
Data Direct(之前称为 Merant)驱动程序管理器也使用这种方式。
重要:
CSDK Version 2.70 中有两个 ODBC 驱动程序。
一个只有 ANSI API
(称为 ANSI ODBC
Driver Version 3.34),另一个有 ANSI 和 UNICODE API(称为 Unicode ODBC Driver Version

GBase 8a MPP CLuster 提供了较为丰富的日志,各种日志有不同的用途,较为常
用的包括:

trace 日志(记录SQL 的完整执行过程,主要用于分析性能)。

system 日志(系统日志也叫错误日志,记录数据库服务启动、停止等重
要操作,
并可记录数据库服务宕库等异常情况的程序堆栈,
可辅助开发人
员查错)。

express 日志(记录express 引擎内部执行过程中的一些重要信息,包括异
常等,有时可用于查错)。

SQL 日志(也叫general log,可用于记录数据库执行过的SQL 语句)

慢日志(可用于查找慢语句)。
通过各种日志,
可以帮我们排查错误,
分析性能等,
大部分日志的使用可
以参看产品手册等文档,下面重点介绍使用日志进行排错和性能分析。