TabSeparated系列格式

1.TabSeparated格式,简称TSV            

  • 默认格式,缩写:TSV,换行\n、制表符\t等符号依然显示为\n、\t
  • 列之间使用tab制表符分隔,数据按行写入,每行结尾必须有换行符
  • 可用于查询和插入

例如:

1)数据导入:

       1.1)新建一张测试表

CREATE TABLE tsv_demo(srcip String, destip String, time String) ENGINE = TinyLog;

       1.2)准备一个tab.txt文件,里面的数据以tab制表符为间隔

               

       1.3)上传到服务器上,使用导入命令以TabSeparated格式导入,TabSeparated可以简写成TSV

clickhouse-client --query="INSERT INTO tutorial.tsv_demo FORMAT TabSeparated" --max_insert_block_size=100000 < tab.txt
或者
clickhouse-client --query="INSERT INTO tutorial.tsv_demo FORMAT TSV" --max_insert_block_size=100000 < tab.txt

       1.4)出现错误

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给去掉

      命令:dos2unix 文件名称

        

       1.5)最后再次导入成功,查看结果

         

2)数据查询输出格式化为TSV格式

      命令:select * from tsv_demo FORMAT TSV或者select * from tsv_demo FORMAT TabSeparated

       

 2.TabSeparatedRaw格式,简写为TSVRaw

  • TabSeparatedRaw格式可以解析制表、转行符,缩写TSVRaw,TSV不解析
  •  只能在数据查询的时候使用 
  •  查询时如果列值中包括\n,则默认为该格式,即select * from a 的效果等价于 select * from a format TSVRaw;

例如:

      2.1)新建一张表

create table escape_demo(name String, addr String, age UInt8, desc String) ENGINE=TinyLog;

      2.2)准备一个rw.txt文件,里面的数据如下

             

      2.3)使用命令导入数据(导入之前需要使用dos2unix 文件名称转换一下)

             命令:clickhouse-client --query="insert into tutorial.escape_demo format TSV" < rw.txt

             

      2.4)直接使用select查询

           

      2.5) 使用TSVRaw格式化查询

              

      2.6)使用TSV格式化查询

              

 3.TabSeparatedWithNames,简称TSVWithNames

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

3.1)查询使用TSVWithNames格式化

       命令:select * from escape_demo format TSVWithNames;

       

3.2)数据导入

       命令:clickhouse-client --query="INSERT INTO tutorial.escape_demo FORMAT TSVWithNames" < rw.txt 

       查看当前有4条数据:

        

        执行导入后:

       

       rw.txt文件有两行数据,再次导入应该有6行,但使用该格式会认为rw.txt文件的第一行是列的名称,被忽略

4.TabSeparatedWithNamesAndTypes,简称TSVWithNamesAndTypes

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

4.1)在查询时使用

       命令:select * from escape_demo format TSVWithNamesAndTypes;

       

4.2)导入时前两行被忽略 ,rw.txt有3行,所以导入后数据加一条

     命令:clickhouse-client --query="INSERT INTO tutorial.escape_demo FORMAT TSVWithNamesAndTypes" < rw.txt

      原来的数据:

     

     执行命令后:

      

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值