clickhouse 21.1.5 单机性能测试

数据集1 英国房地产支付价格

https://clickhouse.com/docs/zh/getting-started/example-datasets/uk-price-paid

问题

由于公司电脑的Ubuntu子系统访问不了内网,下载不了数据,我是在电脑之间下载csv文件然后在子系统Ubuntu进行如下SQL 导入的

错误是因为在尝试解析CSV文件的过程中,ClickHouse遇到了格式错误。这种问题通常是由于某一行的数据格式错误导致的,可能是因为某个值中包含了未转义的逗号,或者该行的列数与预期不符。
 为了解决这个问题,你可以:
 1. 手动检查并修复CSV文件中的有问题的行,或者
2. 使用Python脚本在导入ClickHouse之前清理CSV文件。
 以下是一个Python脚本示例,它读取CSV文件,检查每行的列数是否正确,然后将清理后的数据写入新文件:
import csv
 input_file = "path/to/your/input.csv"
output_file = "path/to/your/output.csv"
expected_columns = 16
 with open(input_file, "r") as f_in, open(output_file, "w", newline="") as f_out:
    reader = csv.reader(f_in)
    writer = csv.writer(f_out)
     for row_num, row in enumerate(reader, start=1):
        if len(row) == expected_columns:
            writer.writerow(row)
        else:
            print(f"跳过行 {row_num},因为列数不正确")
 print("已将清理后的CSV文件保存到", output_file)
将 `path/to/your/input.csv` 和 `path/to/your/output.csv` 替换为实际的输入和输出CSV文件的路径。同时,更新 `expected_columns` 变量以匹配CSV文件中预期的列数。
 运行此脚本后,您可以尝试再次将清理后的CSV文件导入ClickHouse。

拷贝数据到clickhouse 默认路径下

mv ./ck-test-data-england/pp-complete-2.csv    /var/lib/clickhouse/user_files/

导入数据到表中

INSERT INTO testing.uk_price_paid
WITH
   splitByChar(' ', postcode) AS p
SELECT
    toUInt32(price_string) AS price,
    parseDateTimeBestEffortUS(time) AS date,
    p[1] AS postcode1,
    p[2] AS postcode2,
    transform(a, ['T', 'S', 'D', 'F', 'O'], ['terraced', 'semi-detached', 'detached', 'flat', 'other']) AS type,
    b = 'Y' AS is_new,
    transform(c, ['F', 'L', 'U'], ['freehold', 'leasehold', 'unknown']) AS duration,
    addr1,
    addr2,
    street,
    locality,
    town,
    district,
    county
FROM file(
    'pp-complete-2.csv',
    'CSV',
    'uuid_string String,
    price_string String,
    time String,
    postcode String,
    a String,
    b String,
    c String,
    addr1 String,
    addr2 String,
    street String,
    locality String,
    town String,
    district String,
    county String,
    d String,
    e String'
) SETTINGS max_http_get_redirects=10;

验证数据

这里具体的操作就不 post 了,毋容置疑 ck 的速度是很快的。

1 数据量

2 空间大小

数据集2 来自 The OpenSky Network 2020 的众包空中交通数据

https://clickhouse.com/docs/zh/getting-started/example-datasets/opensky

数据验证

1 数据量

2 空间大小

数据3 Star Schema Benchmark

https://clickhouse.com/docs/zh/getting-started/example-datasets/star-schema

验证数据

数据量 1亿多条

空间大小

聚合计算


耗费 440ms 1亿多数据 很快了

posted @ 2023-06-12 09:56  linzm14  阅读(119)  评论(0编辑  收藏  举报