首页 > 其他分享 >clickhouse 21.1.5 单机性能测试

clickhouse 21.1.5 单机性能测试

时间:2023-06-12 10:14:48浏览次数:59  
标签:文件 csv 21.1 String 单机 file CSV clickhouse

数据集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亿多数据 很快了

标签:文件,csv,21.1,String,单机,file,CSV,clickhouse
From: https://www.cnblogs.com/linzm14/p/17469789.html

相关文章

  • lightdb 单机多实例集群部署
    本文章主要介绍我在部署lightdb单机多实例集群过程中开发的shell脚本,方便后续快速搭建集群。在搭建集群过程中我主要参考了以下文档。参考文档lightdbdistributedguide分布式组件canopy高可用组件ltcluster脚本node.sh该脚本运行在已经安装过lightdb单......
  • 单机下RocketMq安装-多Master模式
    版本:5.1.1官方下载地址:https://rocketmq.apache.org/zh/downloadjdk版本:jdk1.8.0_201在指定目录下新建文件夹rocketmq,并下载安装包到目录下cd/usr/localmkdirrocketmqwgethttps://dist.apache.org/repos/dist/release/rocketmq/5.1.1/rocketmq-all-5.1.1-bin-release.zi......
  • zookeeper单机伪集群安装配置(已验证)
    1.下载解压zookeeper(1)下载地址:略(2)解压:略要注意的是,你打算在你的单机上建立几个ZooKeeper服务器,你就建立几个目录,然后在每个目录里都解压zookeeper。2.部署规模为3的单机伪机群(1)server0新建目录data:/home/michael/opt/zookeeper/server0/zookeeper/data新建目录logs:/home/michael/......
  • docker 安装并配置nacos2.2.2 单机
    docker拉取文件找镜像参考mysql安装找镜像步骤:https://www.cnblogs.com/CodeLuckly/p/15710643.html拉取命令:dockerpullnacos/nacos-server:v2.2.2挂载目录:就是为了让nacos的容器中文件映射到宿主机上mkdir-p/mydata/nacos/logs/#新建logs目录......
  • 使用clickhouse和mysql查询时间对比
    业务场景,对于数据量过大的数据统计,跑脚本会很吃力先建立一个clickhouse的mysql引擎表关联本地mysql数据表,以下这个表会自动同步mysql主表数据CREATETABLEtest_table(idUInt32,messageString,contentString,remarkString,order_idString,user_idUInt......
  • 干货|开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析
    随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。 因此,本文将使用TPC-DS基准测试的99个查询语句来对比开源的ClickHouse、Doris、Presto以及ByConity这4个OLAP引......
  • binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse
    binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse原理:将解析binlog和执行SQL语句两个过程由两个线程来执行。其中,解析binlog的线程每次解析完一个事件后通过队列将SQL语句传给SQL执行线程,SQL执行线程从队列中取出SQL语句并按顺序依次执行,这样就保......
  • Oracle重建data pump(expdpd,impdp)How To Reload Datapump Utility EXPDP/IMPDP (Doc ID
    APPLIESTO:OracleDatabaseExadataExpressCloudService-VersionN/AandlaterOracleDatabaseBackupService-VersionN/AandlaterOracleDatabase-EnterpriseEdition-Version10.1.0.2andlaterOracleDatabaseCloudSchemaService-VersionN/Aand......
  • 【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索
    前言在OLAP实践中,在有数据更新的场景中,比如存储订单数据,我们经常会用到ReplaceingMergeTree引擎来去重数据,以获取数据的最新状态。但是ReplaceingMergeTree引擎实现数据的去重合并的操作是异步的,这样在实际查询的时候,其实是仍然有一部分数据是未进行合并的。为了保证统计数据的准......
  • clickhouse读写数据库3-- clickhouse_driver 模块
    这是用百度的文心一言生成的代码。刚开始2次都是错误的,明确指出clickhouse_driver没有占位符,让AI重新生成。重新生成了2次之后,才得到正确代码  #!/usr/bin/envpython#-*-coding:utf-8-*-#author:henry#desc:整理clickhouse读写的范例,方便日后读写click......