活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      云数据库ClickHouse

      云数据库ClickHouse

        • 产品公告
        • 【资源池下线】云数据库ClickHouse下线部分资源池
        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 功能特性
        • 应用场景
        • 术语解释
        • 功能约束
        • 计费说明
        • 计费模式
        • 到期与欠费
        • 包年/包月
        • 续订与退订
        • 变更配置
        • 查看消费账单
        • 快速入门
        • 快速入门总流程
        • 创建实例
        • 创建账号
        • 连接数据库
        • 经典场景示例
        • ClickHouse数据迁移
        • ClickHouse数据迁移概述
        • 从MySQL迁移数据
        • 从本地存储迁移数据
        • 从Flink迁移数据
        • 从ClickHouse 自建集群迁移数据(方案一)
        • 从ClickHouse 自建集群迁移数据(方案二)
        • 从Kafka迁移数据
        • 用户指南
        • 集群管理
        • 实例管理
        • 实例变更
        • 计划重启时间
        • 标签管理
        • 可维护时间
        • 账号管理
        • 监控
        • 客户端连接
        • JDBC客户端
        • 命令行客户端
        • HTTP客户端
        • MySQL客户端
        • 查询
        • 正在运行的语句
        • 慢查询
        • 字典
        • ClickHouse可视化
        • 最佳实践
        • 实践教程
        • 开发指南
        • 基本SQL语法
        • CREATE DATABASE
        • CREATE TABLE
        • CREATE USER
        • CREATE VIEW
        • GRANT
        • INSERT INTO
        • SELECT
        • 常见数据类型
        • 数据库引擎
        • 表引擎概述
        • MaterializedMySQL引擎
        • 常见问题
        • 计费类
        • 管理类
        • 操作类
        • 购买类
        • 安全白皮书
        • 云数据库ClickHouse安全白皮书
        • 相关协议
        • 服务等级协议
        • 服务条款
          无相关产品

          本页目录

          帮助中心云数据库ClickHouse最佳实践实践教程
          实践教程
          更新时间 2025-02-27 09:53:10
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-02-27 09:53:10
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本页面介绍云数据库ClickHouse的实践教程。

          本页面以UK property prices和Brown University Benchmark数据集为例,演示了如何将测试数据集导入云数据库ClickHouse并进行数据检索与分析。

          准备工作

          在开始测试之前,需要完成以下准备工作:

          1. 创建了目标云数据库ClickHouse实例。详细的操作步骤,请参考创建实例。
          2. 创建了用于目标云数据库ClickHouse集群的数据库账号和密码。详细的操作步骤,请参考创建账号。
          3. 确保导入数据及执行命令的机器可以连接到云数据库ClickHouse实例。
          4. 根据云数据库ClickHouse集群的版本,下载并安装相应版本的clickhouse-client工具。

          步骤说明

          1. 打开命令行终端,并进入clickhouse-client工具所在的目录。
          2. 使用clickhouse-client连接到云数据库ClickHouse集群,使用先前创建的数据库账号进行身份验证。
          3. 下载相应数据集,这些数据集可以从开源网站获取。
          4. 将数据集导入到云数据库ClickHouse集群中,可以使用clickhouse-client的导入命令进行数据导入。
          5. 进行数据分析与查询,可以执行各种查询语句,比较查询性能指标如查询时间、吞吐量等。

          通过执行以上步骤,您可以将测试数据集导入到云数据库ClickHouse中,并进行性能测试以评估系统的查询性能和吞吐量。

          UK property prices数据集

          该数据集包含有关英格兰和威尔士的房地产交易价格的数据,从1995年开始提供,未压缩形式下数据集的大小约为4 GiB(在云数据库ClickHouse中仅占用约278 MiB)。

          1. 连接至数据库并建表

          建表语句如下:

          CREATE TABLE uk_price_paid
          (
              price UInt32,
              date Date,
              postcode1 LowCardinality(String),
              postcode2 LowCardinality(String),
              type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0),
              is_new UInt8,
              duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0),
              addr1 String,
              addr2 String,
              street LowCardinality(String),
              locality LowCardinality(String),
              town LowCardinality(String),
              district LowCardinality(String),
              county LowCardinality(String)
          )
          ENGINE = MergeTree
          ORDER BY (postcode1, postcode2, addr1, addr2);
          

          2. 预处理并插入数据

          我们将使用url函数将数据流式传输到云数据库ClickHouse中。我们首先需要对一些传入的数据进行预处理,包括:

          • 下面将邮政编码拆分为两个不同的列 - postcode1和postcode2,这样更适合存储和查询。
          • 将时间字段转换为日期,因为它只包含00:00时间。
          • 忽略UUid字段,因为在分析中不需要它。
          • 使用transform函数将type和duration转换为更易读的枚举字段。
          • 将is_new字段从单字符字符串(Y/N)转换为UInt8字段,取值为0或1。
          • 删除最后两列,因为它们的值都相同(为0)。

          url函数将数据从Web服务器流式传输到您的云数据库ClickHouse表中。以下命令将向uk_price_paid表中插入500万行数据:

          INSERT INTO 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 url(
              'http://prod.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-complete.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;
          

          输入命令并执行后请等待数据插入,等待时间取决于网络速度。

          3. 校验插入的数据

          通过查看插入了多少行来校验数据插入:

          SELECT count()
          FROM uk_price_paid
          

          在运行此查询时,数据集有27,450,499行,执行以下命令查看云数据库ClickHouse 中最终存储的数据大小:

          SELECT formatReadableSize(total_bytes)
          FROM system.tables
          WHERE name = 'uk_price_paid'
          

          可以从查询结果注意到插入数据仅有221.43 MiB。

          4. 执行查询进行数据分析

          Q1:每年平均价格

          SELECT
             toYear(date) AS year,
             round(avg(price)) AS price,
             bar(price, 0, 1000000, 80
          )
          FROM uk_price_paid
          GROUP BY year
          ORDER BY year
          

          查询结果如下:

          ┌─year─┬──price─┬─bar(round(avg(price)), 0, 1000000, 80)─┐
          │ 1995 │  67934 │ █████▍                                 │
          │ 1996 │  71508 │ █████▋                                 │
          │ 1997 │  78536 │ ██████▎                                │
          │ 1998 │  85441 │ ██████▋                                │
          │ 1999 │  96038 │ ███████▋                               │
          │ 2000 │ 107487 │ ████████▌                              │
          │ 2001 │ 118888 │ █████████▌                             │
          │ 2002 │ 137948 │ ███████████                            │
          │ 2003 │ 155893 │ ████████████▍                          │
          │ 2004 │ 178888 │ ██████████████▎                        │
          │ 2005 │ 189359 │ ███████████████▏                       │
          │ 2006 │ 203532 │ ████████████████▎                      │
          │ 2007 │ 219375 │ █████████████████▌                     │
          │ 2008 │ 217056 │ █████████████████▎                     │
          │ 2009 │ 213419 │ █████████████████                      │
          │ 2010 │ 236110 │ ██████████████████▊                    │
          │ 2011 │ 232805 │ ██████████████████▌                    │
          │ 2012 │ 238381 │ ███████████████████                    │
          │ 2013 │ 256927 │ ████████████████████▌                  │
          │ 2014 │ 280008 │ ██████████████████████▍                │
          │ 2015 │ 297263 │ ███████████████████████▋               │
          │ 2016 │ 313518 │ █████████████████████████              │
          │ 2017 │ 346371 │ ███████████████████████████▋           │
          │ 2018 │ 350556 │ ████████████████████████████           │
          │ 2019 │ 352184 │ ████████████████████████████▏          │
          │ 2020 │ 375808 │ ██████████████████████████████         │
          │ 2021 │ 381105 │ ██████████████████████████████▍        │
          │ 2022 │ 362572 │ █████████████████████████████          │
          └──────┴────────┴────────────────────────────────────────┘
          

          Q2:伦敦每年平均价格

          SELECT
             toYear(date) AS year,
             round(avg(price)) AS price,
             bar(price, 0, 2000000, 100
          )
          FROM uk_price_paid
          WHERE town = 'LONDON'
          GROUP BY year
          ORDER BY year
          

          查询结果如下:

          ┌─year─┬───price─┬─bar(round(avg(price)), 0, 2000000, 100)───────────────┐
          │ 1995 │  109110 │ █████▍                                                │
          │ 1996 │  118659 │ █████▊                                                │
          │ 1997 │  136526 │ ██████▋                                               │
          │ 1998 │  153002 │ ███████▋                                              │
          │ 1999 │  180633 │ █████████                                             │
          │ 2000 │  215849 │ ██████████▋                                           │
          │ 2001 │  232987 │ ███████████▋                                          │
          │ 2002 │  263668 │ █████████████▏                                        │
          │ 2003 │  278424 │ █████████████▊                                        │
          │ 2004 │  304664 │ ███████████████▏                                      │
          │ 2005 │  322887 │ ████████████████▏                                     │
          │ 2006 │  356195 │ █████████████████▋                                    │
          │ 2007 │  404062 │ ████████████████████▏                                 │
          │ 2008 │  420741 │ █████████████████████                                 │
          │ 2009 │  427754 │ █████████████████████▍                                │
          │ 2010 │  480322 │ ████████████████████████                              │
          │ 2011 │  496278 │ ████████████████████████▋                             │
          │ 2012 │  519482 │ █████████████████████████▊                            │
          │ 2013 │  616195 │ ██████████████████████████████▋                       │
          │ 2014 │  724121 │ ████████████████████████████████████▏                 │
          │ 2015 │  792101 │ ███████████████████████████████████████▌              │
          │ 2016 │  843589 │ ██████████████████████████████████████████▏           │
          │ 2017 │  983523 │ █████████████████████████████████████████████████▏    │
          │ 2018 │ 1016753 │ ██████████████████████████████████████████████████▋   │
          │ 2019 │ 1041673 │ ████████████████████████████████████████████████████  │
          │ 2020 │ 1060027 │ █████████████████████████████████████████████████████ │
          │ 2021 │  958249 │ ███████████████████████████████████████████████▊      │
          │ 2022 │  902596 │ █████████████████████████████████████████████▏        │
          └──────┴─────────┴───────────────────────────────────────────────────────┘
          

          Q3:最昂贵的社区

          SELECT
              town,
              district,
              count() AS c,
              round(avg(price)) AS price,
              bar(price, 0, 5000000, 100)
          FROM uk_price_paid
          WHERE date >= '2020-01-01'
          GROUP BY
              town,
              district
          HAVING c >= 100
          ORDER BY price DESC
          LIMIT 100
          
          ┌─town─────────────────┬─district───────────────┬─────c─┬───price─┬─bar(round(avg(price)), 0, 5000000, 100)─────────────────────────┐
          │ LONDON               │ CITY OF LONDON         │   578 │ 3149590 │ ██████████████████████████████████████████████████████████████▊ │
          │ LONDON               │ CITY OF WESTMINSTER    │  7083 │ 2903794 │ ██████████████████████████████████████████████████████████      │
          │ LONDON               │ KENSINGTON AND CHELSEA │  4986 │ 2333782 │ ██████████████████████████████████████████████▋                 │
          │ LEATHERHEAD          │ ELMBRIDGE              │   203 │ 2071595 │ █████████████████████████████████████████▍                      │
          │ VIRGINIA WATER       │ RUNNYMEDE              │   308 │ 1939465 │ ██████████████████████████████████████▋                         │
          │ LONDON               │ CAMDEN                 │  5750 │ 1673687 │ █████████████████████████████████▍                              │
          │ WINDLESHAM           │ SURREY HEATH           │   182 │ 1428358 │ ████████████████████████████▌                                   │
          │ NORTHWOOD            │ THREE RIVERS           │   112 │ 1404170 │ ████████████████████████████                                    │
          │ BARNET               │ ENFIELD                │   259 │ 1338299 │ ██████████████████████████▋                                     │
          │ LONDON               │ ISLINGTON              │  5504 │ 1275520 │ █████████████████████████▌                                      │
          │ LONDON               │ RICHMOND UPON THAMES   │  1345 │ 1261935 │ █████████████████████████▏                                      │
          │ COBHAM               │ ELMBRIDGE              │   727 │ 1251403 │ █████████████████████████                                       │
          │ BEACONSFIELD         │ BUCKINGHAMSHIRE        │   680 │ 1199970 │ ███████████████████████▊                                        │
          │ LONDON               │ TOWER HAMLETS          │ 10012 │ 1157827 │ ███████████████████████▏                                        │
          │ LONDON               │ HOUNSLOW               │  1278 │ 1144389 │ ██████████████████████▊                                         │
          │ BURFORD              │ WEST OXFORDSHIRE       │   182 │ 1139393 │ ██████████████████████▋                                         │
          │ RICHMOND             │ RICHMOND UPON THAMES   │  1649 │ 1130076 │ ██████████████████████▌                                         │
          │ KINGSTON UPON THAMES │ RICHMOND UPON THAMES   │   147 │ 1126111 │ ██████████████████████▌                                         │
          │ ASCOT                │ WINDSOR AND MAIDENHEAD │   773 │ 1106109 │ ██████████████████████                                          │
          │ LONDON               │ HAMMERSMITH AND FULHAM │  6162 │ 1056198 │ █████████████████████                                           │
          │ RADLETT              │ HERTSMERE              │   513 │ 1045758 │ ████████████████████▊                                           │
          │ LEATHERHEAD          │ GUILDFORD              │   354 │ 1045175 │ ████████████████████▊                                           │
          │ WEYBRIDGE            │ ELMBRIDGE              │  1275 │ 1036702 │ ████████████████████▋                                           │
          │ FARNHAM              │ EAST HAMPSHIRE         │   107 │ 1033682 │ ████████████████████▋                                           │
          │ ESHER                │ ELMBRIDGE              │   915 │ 1032753 │ ████████████████████▋                                           │
          │ FARNHAM              │ HART                   │   102 │ 1002692 │ ████████████████████                                            │
          │ GERRARDS CROSS       │ BUCKINGHAMSHIRE        │   845 │  983639 │ ███████████████████▋                                            │
          │ CHALFONT ST GILES    │ BUCKINGHAMSHIRE        │   286 │  973993 │ ███████████████████▍                                            │
          │ SALCOMBE             │ SOUTH HAMS             │   215 │  965724 │ ███████████████████▎                                            │
          │ SURBITON             │ ELMBRIDGE              │   181 │  960346 │ ███████████████████▏                                            │
          │ BROCKENHURST         │ NEW FOREST             │   226 │  951278 │ ███████████████████                                             │
          │ SUTTON COLDFIELD     │ LICHFIELD              │   110 │  930757 │ ██████████████████▌                                             │
          │ EAST MOLESEY         │ ELMBRIDGE              │   372 │  927026 │ ██████████████████▌                                             │
          │ LLANGOLLEN           │ WREXHAM                │   127 │  925681 │ ██████████████████▌                                             │
          │ OXFORD               │ SOUTH OXFORDSHIRE      │   638 │  923830 │ ██████████████████▍                                             │
          │ LONDON               │ MERTON                 │  4383 │  923194 │ ██████████████████▍                                             │
          │ GUILDFORD            │ WAVERLEY               │   261 │  905733 │ ██████████████████                                              │
          │ TEDDINGTON           │ RICHMOND UPON THAMES   │  1147 │  894856 │ █████████████████▊                                              │
          │ HARPENDEN            │ ST ALBANS              │  1271 │  893079 │ █████████████████▋                                              │
          │ HENLEY-ON-THAMES     │ SOUTH OXFORDSHIRE      │  1042 │  887557 │ █████████████████▋                                              │
          │ POTTERS BAR          │ WELWYN HATFIELD        │   314 │  863037 │ █████████████████▎                                              │
          │ LONDON               │ WANDSWORTH             │ 13210 │  857318 │ █████████████████▏                                              │
          │ BILLINGSHURST        │ CHICHESTER             │   255 │  856508 │ █████████████████▏                                              │
          │ LONDON               │ SOUTHWARK              │  7742 │  843145 │ ████████████████▋                                               │
          │ LONDON               │ HACKNEY                │  6656 │  839716 │ ████████████████▋                                               │
          │ LUTTERWORTH          │ HARBOROUGH             │  1096 │  836546 │ ████████████████▋                                               │
          │ KINGSTON UPON THAMES │ KINGSTON UPON THAMES   │  1846 │  828990 │ ████████████████▌                                               │
          │ LONDON               │ EALING                 │  5583 │  820135 │ ████████████████▍                                               │
          │ INGATESTONE          │ CHELMSFORD             │   120 │  815379 │ ████████████████▎                                               │
          │ MARLOW               │ BUCKINGHAMSHIRE        │   718 │  809943 │ ████████████████▏                                               │
          │ EAST GRINSTEAD       │ TANDRIDGE              │   105 │  809461 │ ████████████████▏                                               │
          │ CHIGWELL             │ EPPING FOREST          │   484 │  809338 │ ████████████████▏                                               │
          │ EGHAM                │ RUNNYMEDE              │   989 │  807858 │ ████████████████▏                                               │
          │ HASLEMERE            │ CHICHESTER             │   223 │  804173 │ ████████████████                                                │
          │ PETWORTH             │ CHICHESTER             │   288 │  803206 │ ████████████████                                                │
          │ TWICKENHAM           │ RICHMOND UPON THAMES   │  2194 │  802616 │ ████████████████                                                │
          │ WEMBLEY              │ BRENT                  │  1698 │  801733 │ ████████████████                                                │
          │ HINDHEAD             │ WAVERLEY               │   233 │  801482 │ ████████████████                                                │
          │ LONDON               │ BARNET                 │  8083 │  792066 │ ███████████████▋                                                │
          │ WOKING               │ GUILDFORD              │   343 │  789360 │ ███████████████▋                                                │
          │ STOCKBRIDGE          │ TEST VALLEY            │   318 │  777909 │ ███████████████▌                                                │
          │ BERKHAMSTED          │ DACORUM                │  1049 │  776138 │ ███████████████▌                                                │
          │ MAIDENHEAD           │ BUCKINGHAMSHIRE        │   236 │  775572 │ ███████████████▌                                                │
          │ SOLIHULL             │ STRATFORD-ON-AVON      │   142 │  770727 │ ███████████████▍                                                │
          │ GREAT MISSENDEN      │ BUCKINGHAMSHIRE        │   431 │  764493 │ ███████████████▎                                                │
          │ TADWORTH             │ REIGATE AND BANSTEAD   │   920 │  757511 │ ███████████████▏                                                │
          │ LONDON               │ BRENT                  │  4124 │  757194 │ ███████████████▏                                                │
          │ THAMES DITTON        │ ELMBRIDGE              │   470 │  750828 │ ███████████████                                                 │
          │ LONDON               │ LAMBETH                │ 10431 │  750532 │ ███████████████                                                 │
          │ RICKMANSWORTH        │ THREE RIVERS           │  1500 │  747029 │ ██████████████▊                                                 │
          │ KINGS LANGLEY        │ DACORUM                │   281 │  746536 │ ██████████████▊                                                 │
          │ HARLOW               │ EPPING FOREST          │   172 │  739423 │ ██████████████▋                                                 │
          │ TONBRIDGE            │ SEVENOAKS              │   103 │  738740 │ ██████████████▋                                                 │
          │ BELVEDERE            │ BEXLEY                 │   686 │  736385 │ ██████████████▋                                                 │
          │ CRANBROOK            │ TUNBRIDGE WELLS        │   769 │  734328 │ ██████████████▋                                                 │
          │ SOLIHULL             │ WARWICK                │   116 │  733286 │ ██████████████▋                                                 │
          │ ALDERLEY EDGE        │ CHESHIRE EAST          │   357 │  732882 │ ██████████████▋                                                 │
          │ WELWYN               │ WELWYN HATFIELD        │   404 │  730281 │ ██████████████▌                                                 │
          │ CHISLEHURST          │ BROMLEY                │   870 │  730279 │ ██████████████▌                                                 │
          │ LONDON               │ HARINGEY               │  6488 │  726715 │ ██████████████▌                                                 │
          │ AMERSHAM             │ BUCKINGHAMSHIRE        │   965 │  725426 │ ██████████████▌                                                 │
          │ SEVENOAKS            │ SEVENOAKS              │  2183 │  725102 │ ██████████████▌                                                 │
          │ BOURNE END           │ BUCKINGHAMSHIRE        │   269 │  724595 │ ██████████████▍                                                 │
          │ NORTHWOOD            │ HILLINGDON             │   568 │  722436 │ ██████████████▍                                                 │
          │ PURFLEET             │ THURROCK               │   143 │  722205 │ ██████████████▍                                                 │
          │ SLOUGH               │ BUCKINGHAMSHIRE        │   832 │  721529 │ ██████████████▍                                                 │
          │ INGATESTONE          │ BRENTWOOD              │   301 │  718292 │ ██████████████▎                                                 │
          │ EPSOM                │ REIGATE AND BANSTEAD   │   315 │  709264 │ ██████████████▏                                                 │
          │ ASHTEAD              │ MOLE VALLEY            │   524 │  708646 │ ██████████████▏                                                 │
          │ BETCHWORTH           │ MOLE VALLEY            │   155 │  708525 │ ██████████████▏                                                 │
          │ OXTED                │ TANDRIDGE              │   645 │  706946 │ ██████████████▏                                                 │
          │ READING              │ SOUTH OXFORDSHIRE      │   593 │  705466 │ ██████████████                                                  │
          │ FELTHAM              │ HOUNSLOW               │  1536 │  703815 │ ██████████████                                                  │
          │ TUNBRIDGE WELLS      │ WEALDEN                │   207 │  703296 │ ██████████████                                                  │
          │ LEWES                │ WEALDEN                │   116 │  701349 │ ██████████████                                                  │
          │ OXFORD               │ OXFORD                 │  3656 │  700813 │ ██████████████                                                  │
          │ MAYFIELD             │ WEALDEN                │   177 │  698158 │ █████████████▊                                                  │
          │ PINNER               │ HARROW                 │   997 │  697876 │ █████████████▊                                                  │
          │ LECHLADE             │ COTSWOLD               │   155 │  696262 │ █████████████▊                                                  │
          │ WALTON-ON-THAMES     │ ELMBRIDGE              │  1850 │  690102 │ █████████████▋                                                  │
          └──────────────────────┴────────────────────────┴───────┴─────────┴─────────────────────────────────────────────────────────────────┘
          

          Brown University Benchmark数据集

          MgBench 是机器生成的日志数据的一个新的分析基准。

          1. 下载数据并解压

          使用以下命令获取数据:

          wget https://datasets.clickhouse.com/mgbench{1..3}.csv.xz
          

          使用以下命令解压数据:

          xz -v -d mgbench{1..3}.csv.xz
          

          2. 建表

          新建数据库:

          CREATE DATABASE mgbench;
          
          USE mgbench;
          

          使用以下语句建表:

          CREATE TABLE mgbench.logs1 (
            log_time      DateTime,
            machine_name  LowCardinality(String),
            machine_group LowCardinality(String),
            cpu_idle      Nullable(Float32),
            cpu_nice      Nullable(Float32),
            cpu_system    Nullable(Float32),
            cpu_user      Nullable(Float32),
            cpu_wio       Nullable(Float32),
            disk_free     Nullable(Float32),
            disk_total    Nullable(Float32),
            part_max_used Nullable(Float32),
            load_fifteen  Nullable(Float32),
            load_five     Nullable(Float32),
            load_one      Nullable(Float32),
            mem_buffers   Nullable(Float32),
            mem_cached    Nullable(Float32),
            mem_free      Nullable(Float32),
            mem_shared    Nullable(Float32),
            swap_free     Nullable(Float32),
            bytes_in      Nullable(Float32),
            bytes_out     Nullable(Float32)
          )
          ENGINE = MergeTree()
          ORDER BY (machine_group, machine_name, log_time);
          
          
          CREATE TABLE mgbench.logs2 (
            log_time    DateTime,
            client_ip   IPv4,
            request     String,
            status_code UInt16,
            object_size UInt64
          )
          ENGINE = MergeTree()
          ORDER BY log_time;
          
          CREATE TABLE mgbench.logs3 (
            log_time     DateTime64,
            device_id    FixedString(15),
            device_name  LowCardinality(String),
            device_type  LowCardinality(String),
            device_floor UInt8,
            event_type   LowCardinality(String),
            event_unit   FixedString(1),
            event_value  Nullable(Float32)
          )
          ENGINE = MergeTree()
          ORDER BY (event_type, log_time);
          

          3. 插入数据

          clickhouse-client --query "INSERT INTO mgbench.logs1 FORMAT CSVWithNames" < mgbench1.csv
          clickhouse-client --query "INSERT INTO mgbench.logs2 FORMAT CSVWithNames" < mgbench2.csv
          clickhouse-client --query "INSERT INTO mgbench.logs3 FORMAT CSVWithNames" < mgbench3.csv
          

          4. 执行查询进行数据分析

          Q1.1:

          --What is the CPU/network utilization for each web server since midnight?
          
          SELECT machine_name,
                 MIN(cpu) AS cpu_min,
                 MAX(cpu) AS cpu_max,
                 AVG(cpu) AS cpu_avg,
                 MIN(net_in) AS net_in_min,
                 MAX(net_in) AS net_in_max,
                 AVG(net_in) AS net_in_avg,
                 MIN(net_out) AS net_out_min,
                 MAX(net_out) AS net_out_max,
                 AVG(net_out) AS net_out_avg
          FROM (
            SELECT machine_name,
                   COALESCE(cpu_user, 0.0) AS cpu,
                   COALESCE(bytes_in, 0.0) AS net_in,
                   COALESCE(bytes_out, 0.0) AS net_out
            FROM logs1
            WHERE machine_name IN ('anansi','aragog','urd')
              AND log_time >= TIMESTAMP '2017-01-11 00:00:00'
          ) AS r
          GROUP BY machine_name;
          

          Q1.2:

          -- Q1.2: Which computer lab machines have been offline in the past day?
          
          SELECT machine_name,
                 log_time
          FROM logs1
          WHERE (machine_name LIKE 'cslab%' OR
                 machine_name LIKE 'mslab%')
            AND load_one IS NULL
            AND log_time >= TIMESTAMP '2017-01-10 00:00:00'
          ORDER BY machine_name,
                   log_time;
          

          Q1.3

          -- Q1.3: What are the hourly average metrics during the past 10 days for a specific workstation?
          
          SELECT dt,
                 hr,
                 AVG(load_fifteen) AS load_fifteen_avg,
                 AVG(load_five) AS load_five_avg,
                 AVG(load_one) AS load_one_avg,
                 AVG(mem_free) AS mem_free_avg,
                 AVG(swap_free) AS swap_free_avg
          FROM (
            SELECT CAST(log_time AS DATE) AS dt,
                   EXTRACT(HOUR FROM log_time) AS hr,
                   load_fifteen,
                   load_five,
                   load_one,
                   mem_free,
                   swap_free
            FROM logs1
            WHERE machine_name = 'babbage'
              AND load_fifteen IS NOT NULL
              AND load_five IS NOT NULL
              AND load_one IS NOT NULL
              AND mem_free IS NOT NULL
              AND swap_free IS NOT NULL
              AND log_time >= TIMESTAMP '2017-01-01 00:00:00'
          ) AS r
          GROUP BY dt,
                   hr
          ORDER BY dt,
                   hr;
          

          Q1.4

          -- Q1.4: Over 1 month, how often was each server blocked on disk I/O?
          
          SELECT machine_name,
                 COUNT(*) AS spikes
          FROM logs1
          WHERE machine_group = 'Servers'
            AND cpu_wio > 0.99
            AND log_time >= TIMESTAMP '2016-12-01 00:00:00'
            AND log_time < TIMESTAMP '2017-01-01 00:00:00'
          GROUP BY machine_name
          ORDER BY spikes DESC
          LIMIT 10;
          

          Q1.5

          -- Q1.5: Which externally reachable VMs have run low on memory?
          
          SELECT machine_name,
                 dt,
                 MIN(mem_free) AS mem_free_min
          FROM (
            SELECT machine_name,
                   CAST(log_time AS DATE) AS dt,
                   mem_free
            FROM logs1
            WHERE machine_group = 'DMZ'
              AND mem_free IS NOT NULL
          ) AS r
          GROUP BY machine_name,
                   dt
          HAVING MIN(mem_free) < 10000
          ORDER BY machine_name,
                   dt;
          

          Q1.6

          -- Q1.6: What is the total hourly network traffic across all file servers?
          
          SELECT dt,
                 hr,
                 SUM(net_in) AS net_in_sum,
                 SUM(net_out) AS net_out_sum,
                 SUM(net_in) + SUM(net_out) AS both_sum
          FROM (
            SELECT CAST(log_time AS DATE) AS dt,
                   EXTRACT(HOUR FROM log_time) AS hr,
                   COALESCE(bytes_in, 0.0) / 1000000000.0 AS net_in,
                   COALESCE(bytes_out, 0.0) / 1000000000.0 AS net_out
            FROM logs1
            WHERE machine_name IN ('allsorts','andes','bigred','blackjack','bonbon',
                'cadbury','chiclets','cotton','crows','dove','fireball','hearts','huey',
                'lindt','milkduds','milkyway','mnm','necco','nerds','orbit','peeps',
                'poprocks','razzles','runts','smarties','smuggler','spree','stride',
                'tootsie','trident','wrigley','york')
          ) AS r
          GROUP BY dt,
                   hr
          ORDER BY both_sum DESC
          LIMIT 10;
          

          Q2.1

          -- Q2.1: Which requests have caused server errors within the past 2 weeks?
          
          SELECT *
          FROM logs2
          WHERE status_code >= 500
            AND log_time >= TIMESTAMP '2012-12-18 00:00:00'
          ORDER BY log_time;
          

          Q2.2

          -- Q2.2: During a specific 2-week period, was the user password file leaked?
          
          SELECT *
          FROM logs2
          WHERE status_code >= 200
            AND status_code < 300
            AND request LIKE '%/etc/passwd%'
            AND log_time >= TIMESTAMP '2012-05-06 00:00:00'
            AND log_time < TIMESTAMP '2012-05-20 00:00:00';
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  最佳实践
          下一篇 :  开发指南
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明