暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库KingbaseES COPY命令及签名

原创 数据猿 2023-12-11
711


KingbaseES COPY命令及签名

关键字:

KingbaseES、COPY、签名、人大金仓

概述

COPY命令

copy命令用于在文件和表之间进行数据复制,该命令包括copy to和copy from。其中copy to是指将一个表的内容复制到一个文件,而copy from是将文件中的数据复制到表中。COPY命令的格式如下:

\copy { table [ (column_list) ] | ( query ) } { from | to } { ‘filename’| program ‘command’} | stdin | stdout | pstdin | pstdout } [[ with] option [,…])] [ where condition ]

其中option可以是:

FORMAT format_name

FREEZE [ Boolean ]

DELIMITER ‘delimiter_character’

NULL ‘null_string’

HEADER [ Boolean ]

QUOTE ‘quote_character’

ESCAPE ‘escape_character’

FORCE_QUOTE ( column [,…] | *)

FORCE_NOT_NULL ( column [,…])

FORCE_NULL ( column [,…])

ENCODING ‘encoding_name’

其中table表示已有表的表名;

column_list表示要被复制的列;

query表示查询语句,将查询结果导出

filename表示输入或输出的文件名

program ‘command’表示要执行的命令。copy from中,输入从该命令的输出获取;copy to中,输出写入到该命令的标准输入;

stdin表示指定标准输入流;

stdout表示指定标准输出流;

boolean表示执行选项打开还是关闭,true、false;

FORMAT选择要读取或写入的数据格式,如txt、csv等;

DELIMITER指定分割每列的字符;

NULL指定表示一个空值的字符串

HEADER指定文件包含标题行

ENCODING指定文件的编码,如果省略则默认使用当前客户端编码;

WHERE表示cop from时指定条件,如果不满足则不会写入。

示例

copy命令可以操作的文件类型包括:txt、sql、csv、压缩文件和二进制格式。

  1. csv格式
    1. copy test1 to '/home/KES/test1.csv' delimiter '|' csv header;
    2. copy test1 from '/home/KES/test1.csv';
  2. txt格式
    1. copy test1 to '/home/KES/test1.txt';
    2. copy test1 from '/home/KES/test1.txt';
  3. sql格式
    1. copy test1 to '/home/KES/test1.sql';
    2. copy test1 from '/home/KES/test1.sql';
  4. 压缩文件
    1. copy test1 to program 'gzip>/home/KES/test1.gz';
  5. 二进制格式
    1. copy test1(id) to stdout binary;
    2. copy test1(id) from stdin binary;

签名

KES在copy命令操作二进制格式时,在头文件中增加签名(旧版本中签名为PGCOPY、新版本签名为KBCOPY)。执行copy to命令时,KES生成签名:

执行copy from命令时,KES会读取并验证二进制标头中的签名,如果签名不符合预期则报错。

参考文档:

KingbaseES ksql工具用户指南及参考

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论