数据导入整数从零开始
Data import integer start with zero
我是第一次使用 clickhouse
,当我像这样导入时:
cat /home/data/_XDR_IMPORT_1001_20001010_000001_.tsv | clickhouse-client --password=123 --query="INSERT INTO ts FORMAT TSV";
它给我一个错误:
Column 13, name: dpc, type: Nullable(Int32), parsed text: "0"
ERROR: garbage after Nullable(Int32): "3242"
这是因为我有一个类型为 Int32 的列 (dpc),并且该列的值为 03242,所以导入过程似乎只需要 0 并试图在它之后找到抽头。
请帮助任何人?
将 dpc 字段更改为字符串
并添加新列
ALTER TABLE ts
ADD COLUMN dpc_int UInt64 MATERIALIZED toUInt64(dpc);
好的,您可以使用以下命令:
sed -E "s/(\t+)0([0-9]+)//g" 1.tsv /home/data/_XDR_IMPORT_1001_20001010_000001_.tsv | clickhouse-client --password=123 --query="INSERT INTO ts FORMAT TSV";
希望第一列不包含前导零 ;)
我是第一次使用 clickhouse
,当我像这样导入时:
cat /home/data/_XDR_IMPORT_1001_20001010_000001_.tsv | clickhouse-client --password=123 --query="INSERT INTO ts FORMAT TSV";
它给我一个错误:
Column 13, name: dpc, type: Nullable(Int32), parsed text: "0" ERROR: garbage after Nullable(Int32): "3242"
这是因为我有一个类型为 Int32 的列 (dpc),并且该列的值为 03242,所以导入过程似乎只需要 0 并试图在它之后找到抽头。
请帮助任何人?
将 dpc 字段更改为字符串 并添加新列
ALTER TABLE ts
ADD COLUMN dpc_int UInt64 MATERIALIZED toUInt64(dpc);
好的,您可以使用以下命令:
sed -E "s/(\t+)0([0-9]+)//g" 1.tsv /home/data/_XDR_IMPORT_1001_20001010_000001_.tsv | clickhouse-client --password=123 --query="INSERT INTO ts FORMAT TSV";
希望第一列不包含前导零 ;)