创建表的语句:导入JSON到ClickHouse
CREATE TABLE event(
date Date,
src UInt8,
channel UInt8,
deviceTypeId UInt8,
projectId UInt64,
shows UInt32,
clicks UInt32,
spent Float64
) ENGINE = MergeTree(date, (date, src, channel, projectId), 8192);
原始数据是这样的:
{ "date":"2016-03-07T10:00:00+0300","src":2,"channel":18,"deviceTypeId ":101, "projectId":2363610,"shows":1232,"clicks":7,"spent":34.72,"location":"Unknown", ...}
...
文件与载有下面的命令数据:
cat *.data|sed 's/T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]+0300//'| clickhouse-client --query="INSERT INTO event FORMAT JSONEachRow"
clickhouse-client抛出异常:
Code: 117. DB::Exception: Unknown field found while parsing JSONEachRow format: location: (at row 1)
是否可以跳过JSON对象中没有出现在表格描述中的字段?
有更方便的方式指定clickhouse客户端的设置: clickhouse-client --input_format_skip_unknown_fields = 1 --query =“INSERT INTO event FORMAT JSONEachRow;” – uYSIZfoz