TabSeparated、TabSeparatedRaw、TabSeparatedWithNames和TabSeparatedWithNamesAndTypes

TabSeparated

默认格式,缩写:TSV,换行\n、制表符\t等符号依然显示为\n、\t

列之间使用tab制表符分隔,数据按行写入,每行结尾必须有换行符

可用于查询和插入

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

clickhouse-client --query="INSERT INTO test.tsv_demo FORMAT TabSeparated" --max_insert_block_size=100000 < tab.txt

# cat tab.txt
127.0.0.1 192.168.1.11 2020-08-24 17:43:00
192.168.1.100 192.168.1.101 2020-08-24 17:44:00
[root@ch2 tmp]# clickhouse-client
ClickHouse client version 20.3.9.70 (official build).
Connecting to localhost:9300 as user default.
Connected to ClickHouse server version 20.3.9 revision 54433. ch2 :) select * from test.tsv_demo; SELECT *
FROM test.tsv_demo ┌─srcip─────────┬─destip────────┬─time────────────────┐
│ 127.0.0.1 │ 192.168.1.11 │ 2020-08-24 17:43:00 │
│ 192.168.1.100 │ 192.168.1.101 │ 2020-08-24 17:44:00 │
└───────────────┴───────────────┴─────────────────────┘ 2 rows in set. Elapsed: 0.005 sec. ch2 :) exit
Bye.
[root@ch2 tmp]# myc
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 20.3.9.70-ClickHouse Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select * from test.tsv_demo;
+---------------+---------------+---------------------+
| srcip | destip | time |
+---------------+---------------+---------------------+
| 127.0.0.1 | 192.168.1.11 | 2020-08-24 17:43:00 |
| 192.168.1.100 | 192.168.1.101 | 2020-08-24 17:44:00 |
+---------------+---------------+---------------------+
2 rows in set (0.00 sec)
Read 2 rows, 139.00 B in 0.001 sec., 1790 rows/sec., 121.53 KiB/sec.

TabSeparated可以缩写为TSV

clickhouse-client --query="INSERT INTO test.tsv_demo FORMAT TSV" --max_insert_block_size=100000 < tab.txt

ch2 :) select * from test.tsv_demo format TSV;

SELECT *
FROM test.tsv_demo
FORMAT TSV 127.0.0.1 192.168.1.11 2020-08-24 17:43:00
192.168.1.100 192.168.1.101 2020-08-24 17:44:00
127.0.0.1 192.168.1.11 2020-08-24 17:43:00
192.168.1.100 192.168.1.101 2020-08-24 17:44:00

TabSeparatedRaw

TabSeparatedRaw格式可以解析制表、转行符,缩写TSVRaw,TSV不解析
只能在数据查询的时候使用

查询时如果列值中包括\n,则默认为该格式,即select * from a 的效果等价于 select * from a format TSVRaw;

建表语句:
create table escape_demo(name String, addr String, age UInt8, desc String) ENGINE=TinyLog;

# cat rw.txt

xiaomi nanjing\tjiangsu 23 From nanjing
xiaohong zheng\tzhou 23 \x41 gril

 

clickhouse-client --query="insert into test.escape_demo format TSV" < rw.txt

ch2 :) select * from escape_demo;

SELECT *
FROM escape_demo ┌─name─────┬─addr───────────────┬─age─┬─desc─────────┐
│ xiaomi │ nanjing jiangsu │ 23 │ From nanjing │
│ xiaohong │ zheng zhou │ 23 │ A gril │
└──────────┴────────────────────┴─────┴──────────────┘
ch2 :) select * from escape_demo format TSVRaw;

SELECT *
FROM escape_demo
FORMAT TSVRaw xiaomi nanjing jiangsu 23 From nanjing
xiaohong zheng zhou 23 A gril 2 rows in set. Elapsed: 0.005 sec. ch2 :) select * from escape_demo format TSV; SELECT *
FROM escape_demo
FORMAT TSV xiaomi nanjing\tjiangsu 23 From nanjing
xiaohong zheng\tzhou 23 A gril 2 rows in set. Elapsed: 0.004 sec.

TabSeparatedWithNames

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

ch2 :) select * from escape_demo format TSVWithNames;

SELECT *
FROM escape_demo
FORMAT TSVWithNames name addr age desc
xiaomi nanjing\tjiangsu 23 From nanjing
xiaohong zheng\tzhou 23 A gril

数据导入:
clickhouse-client --query="INSERT INTO escape_demo FORMAT TSVWithNames" < rw.txt

ch2 :) select * from escape_demo;

SELECT *
FROM escape_demo ┌─name─────┬─addr───────────────┬─age─┬─desc─────────┐
│ xiaomi │ nanjing jiangsu │ 23 │ From nanjing │
│ xiaohong │ zheng zhou │ 23 │ A gril │
│ xiaohong │ zheng zhou │ 23 │ A gril │
└──────────┴────────────────────┴─────┴──────────────┘

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

TabSeparatedWithNamesAndTypes

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

ch2 :) select * from escape_demo format TSVWithNamesAndTypes;

SELECT *
FROM escape_demo
FORMAT TSVWithNamesAndTypes name addr age desc
String String UInt8 String
xiaomi nanjing\tjiangsu 23 From nanjing
xiaohong zheng\tzhou 23 A gril
xiaohong zheng\tzhou 23 A gril

导入时前两行被忽略 ,rw.txt只有两行,所以导入后数据无变化

[root@ch2 tmp]# clickhouse-client --query="INSERT INTO escape_demo FORMAT TSVWithNamesAndTypes" < rw.txt
[root@ch2 tmp]# clickhouse-client
ClickHouse client version 20.3.9.70 (official build).
Connecting to localhost:9300 as user default.
Connected to ClickHouse server version 20.3.9 revision 54433. ch2 :) select * from escape_demo; SELECT *
FROM escape_demo ┌─name─────┬─addr───────────────┬─age─┬─desc─────────┐
│ xiaomi │ nanjing jiangsu │ 23 │ From nanjing │
│ xiaohong │ zheng zhou │ 23 │ A gril │
│ xiaohong │ zheng zhou │ 23 │ A gril │
└──────────┴────────────────────┴─────┴──────────────┘

clickhouse 输入输出格式的更多相关文章

  1. clickhouse输入输出格式 TSKV CSV

    TSKVTSKV格式不适合有大量小列的输出.TSKV的效率并不比JSONEachRow差.TSKV数据查询和数据导入.不需要保证列的顺序. 支持忽略某些值,这些列使用默认值,例如0和空白行.复杂类型的 ...

  2. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  3. c++ --> cin和cout输入输出格式

    cin和cout输入输出格式 Cout 输出 1>. bool型输出 cout << true <<" or " << false < ...

  4. C语言第一次作业——输入输出格式

    题目1温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代码 #include& ...

  5. hdu ACM Steps Section 1 花式A+B 输入输出格式

    acm与oi很大的一个不同就是在输入格式上.oi往往是单组数据,而acm往往是多组数据,而且题目对数据格式往往各有要求,这8道a+b(吐槽..)涉及到了大量的常用的输入输出格式.https://wen ...

  6. topcoder 的一些输入输出格式

    自从上年的11月份参加过TC的比赛后,就再也没有参加了,因为它的输入输出格式比较难接受,还有它的页面字体比较小,看得我很辛苦...藉口藉口--懒而已!不过以后我会尽量去参加的,为了提高自己的编程能力. ...

  7. POJ数据的输入输出格式

    POJ在评阅习题时需要向程序提供输入数据,并获取程序的输出结果.因此提交的程序需按照每个习题具体的输入输出格式要求处理输入输出.有的时候,测评系统给出程序的评判结果是“数据错误”或“结果错误”,有可能 ...

  8. Hadoop MapReduce常用输入输出格式

    这里介绍MapReduce常用的几种输入输出格式. 三种常用的输入格式:TextInputFormat , SequenceFileInputFormat , KeyValueInputFormat ...

  9. Hadoop(七):自定义输入输出格式

    MR输入格式概述 数据输入格式 InputFormat. 用于描述MR作业的数据输入规范. 输入格式在MR框架中的作用: 文件进行分块(split),1个块就是1个Mapper任务. 从输入分块中将数 ...

随机推荐

  1. spark搭建

    1.上传解压,配置环境变量 配置bin目录 2.修改配置文件 conf cp spark-env.sh.template spark-env.sh 增加配置 export SPARK_MASTER_I ...

  2. WebRTC概念介绍

    WebRTC WebRTC(Web Real-Time Communication).Real-Time Communication,实时通讯. WebRTC能让web应用和站点之间选择性地分享音视频 ...

  3. 【Python+postman接口自动化测试】(7)Postman 的使用教程

    Postman v6的使用 Postman: 简单方便的接口调试工具,便于分享和协作.具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档,接口监控 ...

  4. find 删除日志文件

    find 命令删除日志文件 find ./my_dir -mtime +10 -type f -delete EXPLANATIONS ./my_dir your directory (replace ...

  5. 菜鸡的Java笔记 - java 反射机制

    反射机制        1.观察 Class 类的使用        2.利用反射改善工程设计模式        3.反射操作类结构            content (内容)        1. ...

  6. 提升开发效率的notepad++一些快捷方法(实体类的创建和查询sql语句的编写)

    新手要创建数据库表中,对应字段名的实体类,是不是感觉很麻烦,可以用notepad++快速的把实体类中的字段名进行排版,随后直接粘入idea使用 下面是navicat的演示 选择一个表,右键选择设计表 ...

  7. python实现高斯图像金字塔

    一,定义 图像金字塔:同一图像的不同分辨率的子图集合,其生成方式有向上取样和向下取样.向下取样是从G0采样形成分辨率较低的G1,G1再采样形成分辨率较低的G2......,就构成了一个金字塔.向下取样 ...

  8. [luogu7207]Sob

    为了方便,先将$n$减小1,即两者范围分别为$[0,n]$和$[m,m+n]$ 结论:取$u=\min_{i\in [m,m+n],n\& i=n}i$,则$\forall 0\le i\le ...

  9. [atAGC052F]Tree Vertices XOR

    结论 注意到如果$x$周围有偶数个1,对$x$操作显然不会改变$a_{x}$,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令$a_{x}=a_{x}\oplus 1$ 称$\{ ...

  10. springboot静态工具类bean的注入

    工具类中调用数据.但是由于工具类方法一般都写成static,所以直接注入就存在问题. 所以写成了这样: package com.rm.framework.core; import org.spring ...