日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

03_ClickHouse数据格式,TabSeparated、TSKV、CSV格式、JSON格式、Parquet、ORC、其它数据格式(Native,Pretty,Values,Vertical等)

發布時間:2024/9/27 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 03_ClickHouse数据格式,TabSeparated、TSKV、CSV格式、JSON格式、Parquet、ORC、其它数据格式(Native,Pretty,Values,Vertical等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、TabSeparated
1.1 TabSeparated
1.2 TabSeparatedRaw
1.3 TabSeparatedWithNames
1.4 TabSeparatedWithNamesAndTypes
2 TSKV
3 CSV格式:CSV、CSVWithNames
3.1 CSV格式
3.1.1 準備表
3.1.2 準備數據
3.1.3 導入csv格式的表
3.2 CSVWithNames
4 JSON系列格式
4.1 JSON
4.2 JSONCompact
4.3 JSONEachRow
5 Parquet
6 ORC
7 其它常見的數據格式
7.1 Native
7.2 Null
7.3 Pretty
7.4 Values
7.5 Vertical
7.6 XML

1、TabSeparated

這個系列的格式包括:TabSeparated、TabSeparatedRaw、TabSeparatedWithNames和TabSeparatedWithNamesAndTypes

特點:
數據按行寫入,tab制表符分隔。使用嚴格Unix命令行。

默認格式:
簡寫:TSV
數據插入和數據查詢時,均可使用。

1.1 TabSeparated

數據按行寫入,tab制表符分隔。使用嚴格Unix命令行。
注意:最后一行必須包含換行符。
默認格式。
簡寫:TSV
數據插入和數據查詢時,均可使用。

使用clickhouse-client query的方式查詢10條結果,并將值存儲到aaa.tsv格式里面。

[root@xxxxx ~]# clickhouse-client --query "select WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID from tutorial.hits_v1 limit 10 FORMAT TabSeparated" > aaa.tsv [root@xxxxx ~]# [root@xxxxx ~]# cat aaa.tsv 7043438415214026105 1 14050 8585742290196126178 2014-03-17 57 4944118417295196513 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4675118455796596620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 5996666368919599438 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4907059686366943622 1 54 610708775678702928 2014-03-17 57 9126318258181481721 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4710091431795314620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8986102154348410145 1 54 610708775678702928 2014-03-17 57 8632456315223530327 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8894287528226995594 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 [root@xxxxx ~]#

建表,并按照TabSeparated格式導入數據到表中

[root@xxxxx ~]# clickhouse-client -m ClickHouse client version 20.9.3.45 (official build). Connecting to localhost:9000 as user default. Connected to ClickHouse server version 20.9.3 revision 54439.xxxxx :) CREATE TABLE test.TabSeparated_demo :-] ( :-] `WatchID` UInt64, :-] `JavaEnable` UInt8, :-] `Title` String, :-] `RegionID` UInt32, :-] `UserID` UInt64, :-] `EventDate` Date, :-] `CounterID` UInt32 :-] ) :-] ENGINE = MergeTree() :-] PARTITION BY toYYYYMM(EventDate) :-] ORDER BY (CounterID, EventDate, intHash32(UserID)) :-] SAMPLE BY intHash32(UserID) :-] SETTINGS index_granularity = 8192;CREATE TABLE test.TabSeparated_demo (`WatchID` UInt64,`JavaEnable` UInt8,`Title` String,`RegionID` UInt32,`UserID` UInt64,`EventDate` Date,`CounterID` UInt32 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192Ok.0 rows in set. Elapsed: 0.008 sec. xxxxx :)

導入數據到表中

[root@xxxxx ~]# clickhouse-client --query "INSERT INTO test.TabSeparated_demo FORMAT TabSeparated" --max_insert_block_size=100000 < aaa.tsv [root@xxxxx ~]# clickhouse-client --query "select * from test.TabSeparated_demo FORMAT TabSeparated" 7043438415214026105 1 14050 8585742290196126178 2014-03-17 57 4944118417295196513 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4675118455796596620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 5996666368919599438 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4907059686366943622 1 54 610708775678702928 2014-03-17 57 9126318258181481721 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4710091431795314620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8986102154348410145 1 54 610708775678702928 2014-03-17 57 8632456315223530327 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8894287528226995594 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 [root@xxxxx ~]#

如果在導入過程中出現類似下面的錯誤:

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給去掉。

轉換為UNIX格式:

[root@xxxxx ~]# yum install -y dos2unix; (在沒有dos2Unix的時候執行) 已加載插件:fastestmirror base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 mysql-connectors-community | 2.6 kB 00:00:00 mysql-tools-community | 2.6 kB 00:00:00 mysql57-community | 2.6 kB 00:00:00 updates | 2.9 kB 00:00:00 Loading mirror speeds from cached hostfile* base: mirrors.huaweicloud.com* extras: mirrors.huaweicloud.com* updates: mirrors.huaweicloud.com 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 dos2unix.x86_64.0.6.0.3-7.el7 將被 安裝 --> 解決依賴關系完成依賴關系解決=======================================================================================================================================================================================================Package 架構 版本 源 大小 ======================================================================================================================================================================================================= 正在安裝:dos2unix x86_64 6.0.3-7.el7 base 74 k事務概要 ======================================================================================================================================================================================================= 安裝 1 軟件包總下載量:74 k 安裝大小:190 k Downloading packages: dos2unix-6.0.3-7.el7.x86_64.rpm | 74 kB 00:00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction正在安裝 : dos2unix-6.0.3-7.el7.x86_64 1/1 驗證中 : dos2unix-6.0.3-7.el7.x86_64 1/1 已安裝:dos2unix.x86_64 0:6.0.3-7.el7 完畢! [root@xxxxx ~]# [root@xxxxx ~]# dos2unix tsv_demo.tsv

1.2 TabSeparatedRaw

簡稱:TSVRaw
TabSeparatedRaw格式不會對行數據進行轉義,即不會將換行、制表符等轉換為轉義字符。
只能在數據查詢的時候使用。

zhangsan nanjing\tjiangsu 23 From nanjing lisi hangzhou\tzhejiang 32 \x41 amazing place xiaoming hefei\tanhui 25 notepad

建表語句:

create table escape_demo(name String,addr String,age UInt8,desc String) ENGINE=TinyLog;select * from escape_demo FORMAT TSV; zhangsan nanjing\tjiangsu 23 From nanjing lisi hangzhou\tzhejiang 32 A amazing place xiaoming hefei\tanhui 25 notepad3 rows in set. Elapsed: 0.005 sec.SELECT * FROM escape_demo FORMAT TabSeparatedRaw;zhangsan nanjing jiangsu 23 From nanjing lisi hangzhou zhejiang 32 A amazing place xiaoming hefei anhui 25 notepad3 rows in set. Elapsed: 0.005 sec

1.3 TabSeparatedWithNames

在查詢時,TabSeparatedWithNames格式的第一行顯示列的名稱
在數據導入時,第一行完全被忽略,不會解析第一行為表頭。
簡稱:TSVWithNames
在數據查詢和數據導入均可使用。

數據導入:

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

數據查詢:

select * from escape_demo FORMAT TSVWithNames;

再如查詢:

xxxxx :) use tutorial;USE tutorialOk.0 rows in set. Elapsed: 0.002 sec. xxxxx :) show tables;SHOW TABLES┌─name──────┐ │ hits_v1 │ │ visits_v1 │ └───────────┘2 rows in set. Elapsed: 0.005 sec. xxxxx :) select WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID from tutorial.hits_v1 limit 10 FORMAT TSVWithNames;SELECT WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID FROM tutorial.hits_v1 LIMIT 10 FORMAT TSVWithNames## 注意下面的第一行數據,這一行數據是表頭。WatchID JavaEnable Title RegionID UserID EventDate CounterID 7043438415214026105 1 14050 8585742290196126178 2014-03-17 57 4944118417295196513 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4675118455796596620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 5996666368919599438 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4907059686366943622 1 54 610708775678702928 2014-03-17 57 9126318258181481721 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4710091431795314620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8986102154348410145 1 54 610708775678702928 2014-03-17 57 8632456315223530327 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8894287528226995594 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 5710 rows in set. Elapsed: 0.014 sec. xxxxx :)

1.4 TabSeparatedWithNamesAndTypes

在查詢時,TabSeparatedWithNamesAndTypes格式在主數據的前面額外顯示兩行數據,第一行顯示列的名稱, 第二行顯示列的數據類型。
在數據導入時,前面兩行的數據完全被忽略。
簡寫:TSVWithNamesAndTypes
在數據導入和查詢時均可使用。

xxxxx :) select WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID from tutorial.hits_v1 limit 10 FORMAT TSVWithNamesAndTypes;SELECT WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID FROM tutorial.hits_v1 LIMIT 10 FORMAT TSVWithNamesAndTypes## 注意下面的前兩行數據。WatchID JavaEnable Title RegionID UserID EventDate CounterID UInt64 UInt8 String UInt32 UInt64 Date UInt32 7043438415214026105 1 14050 8585742290196126178 2014-03-17 57 4944118417295196513 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4675118455796596620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 5996666368919599438 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4907059686366943622 1 54 610708775678702928 2014-03-17 57 9126318258181481721 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4710091431795314620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8986102154348410145 1 54 610708775678702928 2014-03-17 57 8632456315223530327 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8894287528226995594 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 5710 rows in set. Elapsed: 0.027 sec. xxxxx :)

2 TSKV

TSKV格式不適合有大量小列的輸出.
TSKV的效率并不比JSONEachRow差.
TSKV數據查詢和數據導入。
不需要保證列的順序。
支持忽略某些值,這些列使用默認值,例如0和空白行。復雜類型的值必須指定,無法使用默認值。

查看:

xxxxx :) select WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID from tutorial.hits_v1 limit 10 FORMAT TSKV;SELECT WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID FROM tutorial.hits_v1 LIMIT 10 FORMAT TSKVWatchID=7043438415214026105 JavaEnable=1 Title= RegionID=14050 UserID=8585742290196126178 EventDate=2014-03-17 CounterID=57 WatchID=4944118417295196513 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4675118455796596620 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=5996666368919599438 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4907059686366943622 JavaEnable=1 Title= RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=9126318258181481721 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4710091431795314620 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8986102154348410145 JavaEnable=1 Title= RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8632456315223530327 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8894287528226995594 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=5710 rows in set. Elapsed: 0.012 sec. xxxxx :)

導出:

[root@xxxxx ~]# clickhouse-client --query "select WatchID,JavaEnable,Title,RegionID,UserID,EventDate,CounterID from tutorial.hits_v1 limit 10 FORMAT TSKV" > tskv.demo [root@xxxxx ~]# cat tskv.demo WatchID=7043438415214026105 JavaEnable=1 Title= RegionID=14050 UserID=8585742290196126178 EventDate=2014-03-17 CounterID=57 WatchID=4944118417295196513 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4675118455796596620 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=5996666368919599438 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4907059686366943622 JavaEnable=1 Title= RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=9126318258181481721 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=4710091431795314620 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8986102154348410145 JavaEnable=1 Title= RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8632456315223530327 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 WatchID=8894287528226995594 JavaEnable=1 Title=вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID=54 UserID=610708775678702928 EventDate=2014-03-17 CounterID=57 [root@xxxxx ~]#

建表

[root@xxxxx ~]# clickhouse-client -m ClickHouse client version 20.9.3.45 (official build). Connecting to localhost:9000 as user default. Connected to ClickHouse server version 20.9.3 revision 54439.xxxxx :) create table escape_demo( :-] `WatchID` UInt64, :-] `JavaEnable` UInt8, :-] `Title` String, :-] `RegionID` UInt32, :-] `UserID` UInt64, :-] `EventDate` Date, :-] `CounterID` UInt32 :-] ) ENGINE=TinyLog :-] PARTITION BY toYYYYMM(EventDate) :-] ORDER BY (CounterID, EventDate, intHash32(UserID)) :-] SAMPLE BY intHash32(UserID) :-] SETTINGS index_granularity = 8192;CREATE TABLE escape_demo (`WatchID` UInt64,`JavaEnable` UInt8,`Title` String,`RegionID` UInt32,`UserID` UInt64,`EventDate` Date,`CounterID` UInt32 ) ENGINE = TinyLog PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192Received exception from server (version 20.9.3): Code: 57. DB::Exception: Received from localhost:9000. DB::Exception: Table default.escape_demo already exists.. 0 rows in set. Elapsed: 0.017 sec. xxxxx :)

導入:

clickhouse-client --query "insert into escape_demo FORMAT TSKV" < tskv.demo

3 CSV格式:CSV、CSVWithNames

3.1 CSV格式

CSV默認的分隔符為逗號,format_csv_delimiter設置自定義的分隔符。

CSV中的雙引號使用兩個雙引號轉義。
支持數據的查詢和數據導入。

3.1.1 準備表

[root@xxxxx ~]# clickhouse-client -m ClickHouse client version 20.9.3.45 (official build). Connecting to localhost:9000 as user default. Connected to ClickHouse server version 20.9.3 revision 54439.xxxxx :) create table csv_demo(create_date Date, update_time DateTime, desc String) ENGINE=TinyLog;CREATE TABLE csv_demo (`create_date` Date,`update_time` DateTime,`desc` String ) ENGINE = TinyLogOk.0 rows in set. Elapsed: 0.008 sec. xxxxx :)

3.1.2 準備數據

[root@xxxxx ~]# vim csv_dmeo.csv[root@xxxxx ~]# cat csv_dmeo.csv 2014-03-23|2014-03-23 14:10:14|Apache Spark achieves high performance 2014-03-23|2014-03-23 15:10:30|Spark offers over 80 high-level operators 1395990600|1395904200|Learning Apache "Spark" is easy [root@xxxxx ~]#

3.1.3 導入csv格式的表

[root@xxxxx ~]# clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO csv_demo FORMAT CSV" < csv_dmeo.csv [root@xxxxx ~]# xxxxx :) select * from csv_demo FORMAT CSV;SELECT * FROM csv_demo FORMAT CSV"2014-03-23","2014-03-23 14:10:14","Apache Spark achieves high performance" "2014-03-23","2014-03-23 15:10:30","Spark offers over 80 high-level operators" "1970-01-01","2014-03-27 15:10:00","Learning Apache ""Spark"" is easy"3 rows in set. Elapsed: 0.005 sec. xxxxx :)

數據查看:

set format_csv_delimiter='|' select * from csv_demo FORMAT CSV;

3.2 CSVWithNames

CSVWithNames會打印表頭的信息。
支持數據的導入和數據的查看。

xxxxx :) select * from csv_demo FORMAT CSVWithNames;SELECT * FROM csv_demo FORMAT CSVWithNames"create_date","update_time","desc" "2014-03-23","2014-03-23 14:10:14","Apache Spark achieves high performance" "2014-03-23","2014-03-23 15:10:30","Spark offers over 80 high-level operators" "1970-01-01","2014-03-27 15:10:00","Learning Apache ""Spark"" is easy"3 rows in set. Elapsed: 0.003 sec. xxxxx :)

4 JSON系列格式

JSON系列的有JSON、JSONCompact和JSONEachRow

4.1 JSON

JSON格式只支持數據的輸出,不支持數據的解析(數據導入)。

xxxxx :) create table t_json_demo(id UInt8, prov String) ENGINE=TinyLog;CREATE TABLE t_json_demo (`id` UInt8,`prov` String ) ENGINE = TinyLogOk.0 rows in set. Elapsed: 0.052 sec. xxxxx :) insert into t_json_demo values (1, 'jiangsu'),(1, 'jiangsu'),(2, 'anhui'),(2, 'anihu'),(3, 'beijing');INSERT INTO t_json_demo VALUESOk.5 rows in set. Elapsed: 0.005 sec. xxxxx :) select * from t_json_demo tjd FORMAT JSON;SELECT * FROM t_json_demo AS tjd FORMAT JSON{"meta":[{"name": "id","type": "UInt8"},{"name": "prov","type": "String"}],"data":[{"id": 1,"prov": "jiangsu"},{"id": 1,"prov": "jiangsu"},{"id": 2,"prov": "anhui"},{"id": 2,"prov": "anihu"},{"id": 3,"prov": "beijing"} ],"rows": 5,"statistics":{"elapsed": 0.005569144,"rows_read": 5,"bytes_read": 81} }5 rows in set. Elapsed: 0.010 sec. xxxxx :)

默認情況下,Int64和UInit64的整型使用雙引號包裹,如果要移除雙引號,設置配置參數output_format_json_quote_64bit_integers為0

rows_before_limit_at_least : 只有查詢包含LIMIT時才輸出,只有在包含group by的語句中才有意義。當查詢沒有LIMIT時, 執行結果的最小行數。

xxxxx :) select * from t_json_demo tjd limit 2 FORMAT JSON;SELECT * FROM t_json_demo AS tjd LIMIT 2 FORMAT JSON{"meta":[{"name": "id","type": "UInt8"},{"name": "prov","type": "String"}],"data":[{"id": 1,"prov": "jiangsu"},{"id": 1,"prov": "jiangsu"} ],"rows": 2,"rows_before_limit_at_least": 2,"statistics":{"elapsed": 0.002507346,"rows_read": 2,"bytes_read": 34} }2 rows in set. Elapsed: 0.005 sec. xxxxx :)

4.2 JSONCompact

JSON格式的數據以對象的方式輸出, 而JSONCompact以數組的方式輸出。
JSONCompact只支持數據的查看, 不支持數據的導入。

xxxxx :) select * from t_json_demo tjd limit 2 FORMAT JSONCompact;SELECT * FROM t_json_demo AS tjd LIMIT 2 FORMAT JSONCompact{"meta":[{"name": "id","type": "UInt8"},{"name": "prov","type": "String"}],"data":[[1, "jiangsu"],[1, "jiangsu"] ],"rows": 2,"rows_before_limit_at_least": 2,"statistics":{"elapsed": 0.002586191,"rows_read": 2,"bytes_read": 34} }2 rows in set. Elapsed: 0.005 sec. xxxxx :)

4.3 JSONEachRow

每行數據以換行符分隔的JSON對象。
支持數據的輸入和數據導入。

xxxxx :) select * from t_json_demo tjd limit 2 FORMAT JSONEachRow;SELECT * FROM t_json_demo AS tjd LIMIT 2 FORMAT JSONEachRow{"id":1,"prov":"jiangsu"} {"id":1,"prov":"jiangsu"}2 rows in set. Elapsed: 0.005 sec. xxxxx :)

輸入導入:
對象中鍵值對的順序可任意排列。
可以缺失某些字段

xxxxx :) create table UserActivity (PageViews UInt8, UserID String, Duration UInt64, Sign Int8) ENGINE TinyLog;CREATE TABLE UserActivity (`PageViews` UInt8,`UserID` String,`Duration` UInt64,`Sign` Int8 ) ENGINE = TinyLogOk.0 rows in set. Elapsed: 0.052 sec. xxxxx :) INSERT INTO UserActivity FORMAT JSONEachRow {"PageViews":5, "UserID":"4324182021466249494", "Duration":146,"Sign":-1}{"UserID":"4324182021466249494","PageViews":6,"Duration":185,"Sign":1};

缺失值的處理:

CREATE TABLE IF NOT EXISTS example_table (x UInt32,a DEFAULT x + 2 ) ENGINE = Memory;insert into example_table FORMAT JSONEachRow {"x":3, "a":5} {"x":4};

效果圖:

xxxxx :) CREATE TABLE IF NOT EXISTS example_table :-] ( :-] x UInt32, :-] a DEFAULT x + 2 :-] ) ENGINE = Memory;CREATE TABLE IF NOT EXISTS example_table (`x` UInt32,`a` DEFAULT x + 2 ) ENGINE = MemoryOk.0 rows in set. Elapsed: 0.005 sec. xxxxx :) insert into example_table FORMAT JSONEachRow {"x":3,"a":5}{"x":4};INSERT INTO example_table FORMAT JSONEachRowOk.2 rows in set. Elapsed: 0.006 sec. xxxxx :) select * from example_table FORMAT JSONEachRow;SELECT * FROM example_table FORMAT JSONEachRow{"x":3,"a":"5"} {"x":4,"a":"6"}2 rows in set. Elapsed: 0.004 sec. xxxxx :)

參數:input_format_defaults_for_omitted_fields
如果為0,則x和a的默認值等于0(即UInt32數據類型的默認值)
如果為1,則x的默認值等于0,但a的默認值等于x+2.

xxxxx :) CREATE TABLE json_each_row_nested (n Nested (s String, i Int32) ) ENGINE = Memory;CREATE TABLE json_each_row_nested (`n` Nested( s String, i Int32) ) ENGINE = MemoryOk.0 rows in set. Elapsed: 0.005 sec. xxxxx :) INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n.s": ["abc", "def"], "n.i": [1, 23]};INSERT INTO json_each_row_nested FORMAT JSONEachRowOk.1 rows in set. Elapsed: 0.005 sec. xxxxx :) INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n": { "s": ["aaa", "bbb"],"i": [2, 30]}};INSERT INTO json_each_row_nested FORMAT JSONEachRowCode: 117, e.displayText() = DB::Exception: Unknown field found while parsing JSONEachRow format: n: (at row 1) , Stack trace (when copying this message, always include the lines below):0. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Exception.cpp:27: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x18e1b360 in /usr/lib/debug/usr/bin/clickhouse 1. /build/obj-x86_64-linux-gnu/../src/Common/Exception.cpp:37: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0xe736dad in /usr/lib/debug/usr/bin/clickhouse 2. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/string:2134: DB::JSONEachRowRowInputFormat::skipUnknownField(StringRef const&) (.cold) @ 0x1660be4b in /usr/lib/debug/usr/bin/clickhouse 3. /build/obj-x86_64-linux-gnu/../src/Processors/Formats/Impl/JSONEachRowRowInputFormat.cpp:191: DB::JSONEachRowRowInputFormat::readJSONObject(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&) @ 0x16609e13 in /usr/lib/debug/usr/bin/clickhouse 4. /build/obj-x86_64-linux-gnu/../src/Processors/Formats/Impl/JSONEachRowRowInputFormat.cpp:257: DB::JSONEachRowRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x1660a306 in /usr/lib/debug/usr/bin/clickhouse 5. /build/obj-x86_64-linux-gnu/../src/Processors/Formats/IRowInputFormat.cpp:64: DB::IRowInputFormat::generate() @ 0x165aa161 in /usr/lib/debug/usr/bin/clickhouse 6. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:1003: DB::ISource::work() @ 0x1651f65b in /usr/lib/debug/usr/bin/clickhouse 7. /build/obj-x86_64-linux-gnu/../src/Processors/Formats/InputStreamFromInputFormat.h:49: DB::InputStreamFromInputFormat::readImpl() @ 0x164e364d in /usr/lib/debug/usr/bin/clickhouse 8. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:1003: DB::IBlockInputStream::read() @ 0x156c6d3d in /usr/lib/debug/usr/bin/clickhouse 9. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:1003: DB::ParallelParsingBlockInputStream::parserThreadFunction(std::__1::shared_ptr<DB::ThreadGroupStatus>, unsigned long) @ 0x164e7aa0 in /usr/lib/debug/usr/bin/clickhouse 10. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:4206: std::__1::__function::__func<DB::ParallelParsingBlockInputStream::scheduleParserThreadForUnitWithNumber(unsigned long)::'lambda'(), std::__1::allocator<DB::ParallelParsingBlockInputStream::scheduleParserThreadForUnitWithNumber(unsigned long)::'lambda'()>, void ()>::operator()() @ 0x164e8724 in /usr/lib/debug/usr/bin/clickhouse 11. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xe7650a7 in /usr/lib/debug/usr/bin/clickhouse 12. /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.h:170: ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() const @ 0xe76581a in /usr/lib/debug/usr/bin/clickhouse 13. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xe7645b7 in /usr/lib/debug/usr/bin/clickhouse 14. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:2615: void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()> >(void*) @ 0xe762b03 in /usr/lib/debug/usr/bin/clickhouse 15. start_thread @ 0x7e25 in /usr/lib64/libpthread-2.17.so 16. __clone @ 0xf834d in /usr/lib64/libc-2.17.so(version 20.9.3.45 (official build))Exception on client: Code: 117. DB::Exception: Unknown field found while parsing JSONEachRow format: n: (at row 1)Connecting to localhost:9000 as user default. Connected to ClickHouse server version 20.9.3 revision 54439.xxxxx :) set input_format_import_nested_json=1;SET input_format_import_nested_json = 1Ok.0 rows in set. Elapsed: 0.007 sec. xxxxx :) INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n": { "s": ["aaa", "bbb"],"i": [2, 30]}};INSERT INTO json_each_row_nested FORMAT JSONEachRowOk.1 rows in set. Elapsed: 0.004 sec. xxxxx :)

上面的例子說明:
如果要將類似:{“n”: { “s”: [“aaa”, “bbb”],“i”: [2, 30]}} 這種分層JSON對象插入,需要設置input_format_import_nested_json=1。即執行set input_format_import_nested_json=1;

對于ClickHouse,默認input_format_import_nested_json=0。

5 Parquet

支持Parquet格式的導出和導入。

Parquet和ClickHouse類型的匹配關系:
Parquet data type (INSERT)| ClickHouse data type| Parquet data type (SELECT)
UINT8,BOOL UInt8 UINT8
INT8 Int8 INT8
UINT16 UInt16 UINT16
INT16 Int16 INT16
UINT32 UInt32 UINT32
INT32 Int32 INT32
UINT64 UInt64 UINT64
INT64 Int64 INT64
FLOAT,HALF_FLOAT Float32 FLOAT
DOUBLE Float64 DOUBLE
DATE32 Date UINT16
DATE64,TIMESTAMP DateTime UINT32
STRING,BINARY String STRING
— FixedString STRING
DECIMAL Decimal DECIMAL

不支持的Parquet數據類型:DATE32, TIME32, FIXED_SIZE_BINARY, JSON, UUID, ENUM。

注意:ClickHouse表的列名必須與Parquet表的列名一致。
ClickHouse表的列數據類型可以不同于插入的Parquet數據類型。在插入數據時, ClickHouse根據上表解釋數據類型,然后將數據類型轉換為ClickHouse表的列數據類型。

數據的導出:

clickhouse-client --query="SELECT * FROM tsv_demo FORMAT Parquet" > parquet_demo.parquet

數據導入:

create table parquet_demo (srcip String, destip String, time String) ENGINE=TinyLog; cat parquet_demo.parquet | clickhouse-client --query="INSERT INTO parquet_demo FORMAT Parquet"

6 ORC

僅支持ORC格式的寫入

ORC和CH數據類型的匹配關系:

ORC data type (INSERT)|ClickHouse data type
UINT8, BOOL UInt8
INT8 Int8
UINT16 UInt16
INT16 Int16
UINT32 UInt32
INT32 Int32
UINT64 UInt64
INT64 Int64
FLOAT, HALF_FLOAT Float32
DOUBLE Float64
DATE32 Date
DATE64, TIMESTAMP DateTime
STRING, BINARY String
DECIMAL Decimal

不支持的ORC數據類型:DATE32,TIME32,FIXED_SIZE_BINARY,JSON,UUID,ENUM。
Not: ClientHouse表的列名必須與ORC表的列名一致。

使用Spark生成ORC文件: val list = List(("113.248.234.232", "123.212.22.01", "2018-07-12 14:35:31"),("115.248.158.231", "154.245.56.23", "2020-07-12 13:26:26"),("115.248.158.231", "154.245.56.23", "2020-07-12 13:22:13"),("187.248.135.230", "221.228.112.45", "2019-08-09 13:17:39"),("187.248.234.232", "221.228.112.24", "2019-08-09 20:51:16"),("115.248.158.231", "154.245.56.23", "2020-07-12 17:22:56") )val rdd = sc.makeRDD(list) import spark.implicits._ val df = rdd.toDF("srcip", "destip", "time") df.repartition(1).write.format("orc").mode("append").save("/tmp/orc")

測試表:

create table orc_demo (srcip String, destip String, time DateTime) ENGINE=TinyLog;

數據導入:

cat file.orc | clickhouse-client --query="INSERT INTO orc_demo FORMAT ORC"

7 其它常見的數據格式

7.1 Native

數據以二進制數據塊的方式進行讀寫。
數據的導出:

clickhouse-client --query="SELECT * FROM tsv_demo FORMAT Native" > a.native

數據的導出:

clickhouse-client --query="insert into tsv_demo FORMAT Native" < a.native

再如:

xxxxx :) show tables;SHOW TABLES┌─name──────────────┐ │ TabSeparated_demo │ │ test │ └───────────────────┘2 rows in set. Elapsed: 0.006 sec. xxxxx :) select * from TabSeparated_demo FORMAT Native;SELECT * FROM TabSeparated_demo FORMAT NativeWatchIDUInt64y,kQ?aaf D? 8w[ᅫ?8S9?D:2§~?O?3]A!5OLμ|W?/H¥?=( b?{ JavaEnableUInt8TitleStringjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силваjвышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силв.RegionIDUInt32?66666666UserIDUInt64??ˉ&wP鑰?P鑰?P鑰?P鑰?P鑰?P鑰?P鑰?P鑰?P鑰?y EventDateDate?????????? CounterIDUInt329999999999 10 rows in set. Elapsed: 0.010 sec. xxxxx :)

7.2 Null

主要用于測試性能。 查詢會被處理,并且數據會被傳送到客戶端,但是什么也不輸出。
Null格式只能用于查詢,不能用于數據的導入。

7.3 Pretty

PrettyCompact : 在交互式模式下,默認的數據顯示格式。
PrettySpace

xxxxx :) select * from TabSeparated_demo FORMAT PrettyCompact;SELECT * FROM TabSeparated_demo FORMAT PrettyCompact┌─────────────WatchID─┬─JavaEnable─┬─Title───────────────────────────────────────────────────────────┬─RegionID─┬──────────────UserID─┬──EventDate─┬─CounterID─┐ │ 70434384152140261051 │ │ 1405085857422901961261782014-03-1757 │ │ 49441184172951965131 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 46751184557965966201 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 59966663689195994381 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 49070596863669436221 │ │ 546107087756787029282014-03-1757 │ │ 91263182581814817211 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 47100914317953146201 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 89861021543484101451 │ │ 546107087756787029282014-03-1757 │ │ 86324563152235303271 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ │ 88942875282269955941 │ вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва │ 546107087756787029282014-03-1757 │ └─────────────────────┴────────────┴─────────────────────────────────────────────────────────────────┴──────────┴─────────────────────┴────────────┴───────────┘10 rows in set. Elapsed: 0.005 sec. xxxxx :) xxxxx :) select * from TabSeparated_demo FORMAT PrettySpace;SELECT * FROM TabSeparated_demo FORMAT PrettySpaceWatchID JavaEnable Title RegionID UserID EventDate CounterID7043438415214026105 1 14050 8585742290196126178 2014-03-17 57 4944118417295196513 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4675118455796596620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 5996666368919599438 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4907059686366943622 1 54 610708775678702928 2014-03-17 57 9126318258181481721 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 4710091431795314620 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8986102154348410145 1 54 610708775678702928 2014-03-17 57 8632456315223530327 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 8894287528226995594 1 вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва 54 610708775678702928 2014-03-17 57 10 rows in set. Elapsed: 0.007 sec. xxxxx :)

7.4 Values

每行之間使用逗號分隔,列之間也是使用逗號分隔。在括號中打印每一行。
INSERT INTO XX values

INSERT INTO XX FORMAT Values;

insert into tsv_demo FORMAT Values (‘115.248.158.231’, ‘115.248.158.232’, ‘2020-07-12 17:22:56’), (‘115.248.158.231’, ‘115.248.158.232’, ‘2020-07-12 17:22:56’);

7.5 Vertical

數據以垂直的格式進行展示。\G

xxxxx :) select * from TabSeparated_demo FORMAT Vertical;SELECT * FROM TabSeparated_demo FORMAT VerticalRow 1: ────── WatchID: 7043438415214026105 JavaEnable: 1 Title: RegionID: 14050 UserID: 8585742290196126178 EventDate: 2014-03-17 CounterID: 57Row 2: ────── WatchID: 4944118417295196513 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 3: ────── WatchID: 4675118455796596620 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 4: ────── WatchID: 5996666368919599438 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 5: ────── WatchID: 4907059686366943622 JavaEnable: 1 Title: RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 6: ────── WatchID: 9126318258181481721 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 7: ────── WatchID: 4710091431795314620 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 8: ────── WatchID: 8986102154348410145 JavaEnable: 1 Title: RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 9: ─────── WatchID: 8632456315223530327 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 57Row 10: ─────── WatchID: 8894287528226995594 JavaEnable: 1 Title: вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва RegionID: 54 UserID: 610708775678702928 EventDate: 2014-03-17 CounterID: 5710 rows in set. Elapsed: 0.007 sec. xxxxx :)

7.6 XML

只支持數據的查看。
SELECT * from tsv_demo limit 2 FORMAT XML;

xxxxx :) select * from TabSeparated_demo FORMAT XML;SELECT * FROM TabSeparated_demo FORMAT XML<?xml version='1.0' encoding='UTF-8' ?> <result><meta><columns><column><name>WatchID</name><type>UInt64</type></column><column><name>JavaEnable</name><type>UInt8</type></column><column><name>Title</name><type>String</type></column><column><name>RegionID</name><type>UInt32</type></column><column><name>UserID</name><type>UInt64</type></column><column><name>EventDate</name><type>Date</type></column><column><name>CounterID</name><type>UInt32</type></column></columns></meta><data><row><WatchID>7043438415214026105</WatchID><JavaEnable>1</JavaEnable><Title></Title><RegionID>14050</RegionID><UserID>8585742290196126178</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>4944118417295196513</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>4675118455796596620</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>5996666368919599438</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>4907059686366943622</WatchID><JavaEnable>1</JavaEnable><Title></Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>9126318258181481721</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>4710091431795314620</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>8986102154348410145</WatchID><JavaEnable>1</JavaEnable><Title></Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>8632456315223530327</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row><row><WatchID>8894287528226995594</WatchID><JavaEnable>1</JavaEnable><Title>вышивка в Москве - Образовать фото мочия - Почта Mail.Ru: Силва</Title><RegionID>54</RegionID><UserID>610708775678702928</UserID><EventDate>2014-03-17</EventDate><CounterID>57</CounterID></row></data><rows>10</rows><statistics><elapsed>0.004350061</elapsed><rows_read>10</rows_read><bytes_read>1102</bytes_read></statistics> </result>10 rows in set. Elapsed: 0.007 sec. xxxxx :)

總結

以上是生活随笔為你收集整理的03_ClickHouse数据格式,TabSeparated、TSKV、CSV格式、JSON格式、Parquet、ORC、其它数据格式(Native,Pretty,Values,Vertical等)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 最新日韩精品 | 亚洲区欧美区 | 久久久久久久av | 日韩午夜片 | 日韩经典中文字幕 | 九九热视频在线 | 一区二区三区影院 | 人与禽一级全黄 | 青青操视频在线 | 国产免费av片在线观看 | 欧美系列在线观看 | 女教师痴汉调教hd中字 | 亚洲美女色| 久久国产精品久久精品国产 | 日韩av资源| 囯产精品久久久久久 | 亚洲69视频 | 噼里啪啦动漫高清在线观看 | 国产日韩av在线播放 | 国内精品一区二区三区 | 影音先锋美女 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 中文字幕在线播放第一页 | 精品一区二区三区视频 | 色综合久久久久无码专区 | 久久乐视频 | 久久久久久久成人 | 色撸撸在线视频 | 国产精品亚州 | 懂色av懂色av粉嫩av分享吧 | 无码国产精品一区二区色情男同 | 国产一区二区精品在线 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 九九午夜视频 | a天堂视频| 成年午夜视频 | 久久精品视频国产 | 小柔的淫辱日记(h | 欧美激情一区二区三区免费观看 | 国产色爽 | 人人曰| 大地资源影视在线播放观看高清视频 | 外国黄色网址 | 日本高清www免费视频 | 亚洲一二三四视频 | 国产手机在线播放 | 中国黄色三级视频 | 日韩国产成人无码av毛片 | 亚洲无在线观看 | 日韩亚洲精品在线 | 亚洲理论视频 | 性色免费视频 | 日本少妇毛茸茸高潮 | 天天谢天天干 | 黄色av网站免费观看 | 国产日韩免费 | 人妻一区二区三区在线 | 亚洲一区二区在线免费 | 一区二区在线免费观看视频 | 国产高清免费观看 | 爱爱视频天天干 | 美乳在线播放 | 最好看的2019中文大全在线观看 | 日韩精品人妻中文字幕 | 99在线播放 | 日本在线观看中文字幕 | 国模大尺度自拍 | 亚洲精品理论 | av在线高清观看 | 久久躁日日躁aaaaxxxx | 18成人免费观看网站下载 | 日韩一区二区高清 | 久久久久久午夜 | 朝鲜黄色片 | 婷婷色综合 | 亚洲精品在线视频观看 | 四虎国产在线 | 美乳人妻一区二区三区 | 水蜜桃91 | 嫩草视频在线观看免费 | 国产在线不卡视频 | 成人激情视频在线观看 | 激情小说五月天 | 欧美午夜视频在线观看 | www.色在线| 亚洲精品激情 | 天天爽夜夜爽视频 | 玩弄白嫩少妇xxxxx性 | 国产成人免费片在线观看 | 91亚洲一区 | 婷婷精品视频 | 国产精品久久久久蜜臀 | 久久久久久久国产精品毛片 | 久久久久夜| 色翁荡息又大又硬又粗又爽 | 国产区免费 | 国产精品成人Av | 色播在线观看 | av一级|