clickhouse输入输出格式之TabSeparated系列【TabSeparated、TabSeparatedRaw、TabSeparatedWithNames和TabSeparatedWith】

TabSeparated(默认格式,简写:TSV)

数据的导入导出

数据按行写入,tab制表符分隔。使用严格Unix命令行。

注意

注意:最后一行必须包含换行符。

格式的适用范围

数据插入和数据查询时,均可使用。

案例演示

进入clickhouse 创建数据库创建数据表

clickhouse-client -m

#进入clickhouse创建数据库
create database if not exists test;
#创建所需表
use test;
CREATE TABLE tsv_demo(srcip String, destip String, time String) ENGINE = TinyLog;

创建tsv_demo01.tsv文件,填写内容

# 创建tsv_demo01.tsv文件
vim tsv_demo01.tsv
# 数据导入
clickhouse-client --query "INSERT INTO test.tsv_demo FORMAT TabSeparated" --max_insert_block_size=100000 < tsv_demo01.tsv

可能会出现报错情况

[root@ch01 clickhouseData]# clickhouse-client --query "INSERT INTO test.tsv_demo FORMAT TabSeparated" --max_insert_block_size=100000 < tsv_demo01.tsv
Code: 117. DB::Exception:
You have carriage return (\r, 0x0D, ASCII 13) at end of first row.
It's like your input data has DOS/Windows style line separators, that are illegal in TabSeparated format. You must transform your file to Unix format.
But if you really need carriage return at end of string value of last column, you need to escape it as \r.
报错原因

这是由于windows使用\r\n表示回车换行, 在linux中使用\n表示换行。 因此,需要将\r给去掉。

解决办法

将tsv_demo01.tsv转换为UNIX格式
dos2unix tsv_demo.tsv
备注: dos2unix命令没有可以使用yum安装yum install -y dos2unix

进行指定输出格式查询

select * from tsv_demo FORMAT TSV;
在这里插入图片描述

TabSeparatedRaw(简称:TSVRaw)

数据的导入导出

与TabSeparated没有太大区别,TabSeparatedRaw格式不会对行数据进行转义, 即不会将换行、制表符等转换为转义字符。

格式的适用范围

只能在数据查询的时候使用。

案例演示

进入clickhouse 创建数据表

clickhouse-client -m

#创建所需表
use test;
create table escape_demo(name String, addr String, age UInt8, desc String) ENGINE=TinyLog;

创建escape_demo.tsv文件,制造数据

# 创建escape_demo.tsv文件
vim escape_demo.tsv
# 数据导入
clickhouse-client --query="insert into test.escope_demo FORMAT TSV" < escape_demo.tsv

进行指定输出格式查询

select * from escape_demo FORMAT TSV;
在这里插入图片描述

TabSeparatedWithNames(简称:TSVWithNames)

数据的导入导出

  • 在查询时,TabSeparatedWithNames格式的第一行显示列的名称
  • 在数据导入时,第一行完全被忽略,不会解析第一行为表头。

格式的适用范围

在数据查询和数据导入均可使用

案例演示

导入数据

clickhouse-client --query="INSERT INTO test.escape_demo FORMAT TSVWithNames" < escape_demo.tsv

数据查询

select * from escape_demo FORMAT TSVWithNames;

TabSeparatedWithNamesAndTypes(简写:TSVWithNamesAndTypes)

数据的导入导出

  • 在查询时,TabSeparatedWithNamesAndTypes格式在主数据的前面额外显示两行数据,第一行显示列的名称, 第二行显示列的数据类型。
  • 在数据导入时,前面两行的数据完全被忽略。

格式的适用范围

在数据导入和查询时均可使用

案例演示

select * from escape_demo FORMAT TabSeparatedWithNamesAndTypes;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值