clickhouse 输入输出格式
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 输入输出格式的更多相关文章
- clickhouse输入输出格式 TSKV CSV
TSKVTSKV格式不适合有大量小列的输出.TSKV的效率并不比JSONEachRow差.TSKV数据查询和数据导入.不需要保证列的顺序. 支持忽略某些值,这些列使用默认值,例如0和空白行.复杂类型的 ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- c++ --> cin和cout输入输出格式
cin和cout输入输出格式 Cout 输出 1>. bool型输出 cout << true <<" or " << false < ...
- C语言第一次作业——输入输出格式
题目1温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代码 #include& ...
- hdu ACM Steps Section 1 花式A+B 输入输出格式
acm与oi很大的一个不同就是在输入格式上.oi往往是单组数据,而acm往往是多组数据,而且题目对数据格式往往各有要求,这8道a+b(吐槽..)涉及到了大量的常用的输入输出格式.https://wen ...
- topcoder 的一些输入输出格式
自从上年的11月份参加过TC的比赛后,就再也没有参加了,因为它的输入输出格式比较难接受,还有它的页面字体比较小,看得我很辛苦...藉口藉口--懒而已!不过以后我会尽量去参加的,为了提高自己的编程能力. ...
- POJ数据的输入输出格式
POJ在评阅习题时需要向程序提供输入数据,并获取程序的输出结果.因此提交的程序需按照每个习题具体的输入输出格式要求处理输入输出.有的时候,测评系统给出程序的评判结果是“数据错误”或“结果错误”,有可能 ...
- Hadoop MapReduce常用输入输出格式
这里介绍MapReduce常用的几种输入输出格式. 三种常用的输入格式:TextInputFormat , SequenceFileInputFormat , KeyValueInputFormat ...
- Hadoop(七):自定义输入输出格式
MR输入格式概述 数据输入格式 InputFormat. 用于描述MR作业的数据输入规范. 输入格式在MR框架中的作用: 文件进行分块(split),1个块就是1个Mapper任务. 从输入分块中将数 ...
随机推荐
- 设计模式二--模板方法Template method
模式分类: 书籍推荐:重构-改善既有代码的设计 重构获得模式 设计模式:现代软件设计的特征是"需求的频繁变化".设计模式的要点是 "寻找变化点,然后在变化点处应用设计模式 ...
- Cain工具的使用
这次是用windows xp当肉鸡,用Windows2003进行监听 这是一个基于ARP协议的漏洞的攻击 先要确认两个虚拟机之间能够互相ping通和都能正常访问网页 首先安装好Cain后,张这个样子: ...
- Linux ns 5. IPC Namespace 详解
文章目录 1. 简介 2. 源码分析 2.1 copy_ipcs() 2.2 ipcget() 2.3 ipc_check_perms() 2.4 相关系统调用 参考文档: 1. 简介 进程间通讯的机 ...
- CF264BGood Sequences
CF264BGood Sequences 题面 大意 寻找最长递增字串,使得相邻两个数不互质. 思路 动态规划思想,ans记录当前的数以下标i为约数答案,使得需要填进去的数肯定与前一个数不互质.在开始 ...
- Python 深拷贝和浅拷贝的区别
python的复制,深拷贝和浅拷贝的区别 在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 ...
- jpg与jpeg的区别在哪
JPG文件的优点是体积小巧,并且兼容性好,因为大部分的程序都能读取这种文件,这是因为JPG格式不仅是一个工业标准格式,而且更是web的标准文件格式.JPG文件如此拥有如此便利的条件,难怪得到了业余玩家 ...
- 五、Zookeeper的Shell操作
前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式 二.JAVA API实现HDFS 三.MapReduce编程实例 四.Zookeeper3.7安装 Zookeepe ...
- Identity Server 4 从入门到落地(二)—— 理解授权码模式
Identity Server 的目的是认证和授权,我们需要理解认证和授权的工作过程.这就需要了解OAuth 2.0的四种授权模式,下面这张图是授权码模式的工作过程,至少我在一开始看得一头雾水: 现在 ...
- P6072 『MdOI R1』Path
考虑我们有这样操作. 我们只要维护两点在子树内和两点在子树外的异或和即可. 前者可以类似于线段树合并的trie树合并. 后者有两种做法: 一种是把dfn序翻倍:然后子树补变成了一个区间最大异或问题,可 ...
- 洛谷 P7323 - [WC2021] 括号路径(启发式合并)
题面传送门 emmmm----怎么评价这个题嘛...感觉纯论算法,此题根本谈不上难题,不过 WC 时候太智障只拿了个 48pts 就走人了.总之,技不如人,甘拜吓疯( 首先要注意到几件事情: 如果 \ ...