ClickHouse快速安装教程(MacOS)

news2024/11/17 13:39:19

文章目录

  • ClickHouse快速安装教程(MacOS)
    • 1.ClickHouse
    • 2.快速安装
    • 3.快速启动
      • 3.1.启动服务器
      • 3.2.启动客户端
    • 4.使用案例
      • 1.配置文件
      • 2.启动CK服务
      • 3.创建数据库
      • 4.创建表
      • 5.插入数据
      • 6.查询数据

ClickHouse快速安装教程(MacOS)

1.ClickHouse

ClickHouse®是一个用于在线分析处理(OLAP)的高性能、面向列的SQL数据库管理系统(DBMS)。ClickHouse专门针对大规模数据分析和实时查询的场景进行优化。它被设计用于高效处理PB级以上的数据,并能在秒级内完成复杂的查询分析。

OLAP场景的关键特征

  • 绝大多数是读请求
  • 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
  • 已添加到数据库的数据不能修改。
  • 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
  • 宽表,即每个表包含着大量的列
  • 查询相对较少(通常每台服务器每秒查询数百次或更少)
  • 对于简单查询,允许延迟大约50毫秒
  • 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
  • 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
  • 事务不是必须的
  • 对数据一致性要求低
  • 每个查询有一个大表。除了他以外,其他的都很小。
  • 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中

ClickHouse具有以下特点:

  1. 高性能:采用了列式存储和压缩技术,在处理大规模数据时能够快速高效地进行数据读取和查询。它使用了向量化查询引擎和多级缓存,可以实现即时的查询结果响应。
  2. 分布式架构:支持水平扩展,可以轻松地在集群中添加或删除节点。它使用分片和复制机制来实现高可用性和数据冗余。
  3. 强大的查询功能:支持标准的SQL查询语言,并提供了丰富的查询函数和聚合操作,可以方便地进行复杂的数据分析和数据挖掘。
  4. 可伸缩性:能够处理海量数据,并且能够在不降低性能的情况下轻松地扩展到更多的节点,以满足不断增长的数据需求。
  5. 低延迟查询:通过使用基于内存的数据存储和高效的查询引擎,可以在毫秒级的时间范围内处理查询请求,适用于需要实时响应的场景。 总之,ClickHouse是一个专门用于大规模数据分析和实时查询的高性能分布式列式数据库,它具有高可扩展性和低延迟查询的优势,适用于需要处理大量数据和复杂查询的应用场景。

2.快速安装

本地下载ClickHouse最简单的方法是运行以下curl命令:

curl https://clickhouse.com/ | sh

下载ClickHouse(执行本命令安装完成后,你可以编辑ClickHouse的配置文件来自定义参数和设置,例如监听地址、端口,以及数据存储和备份的路径等。)

3.快速启动

3.1.启动服务器

./clickhouse server

3.2.启动客户端

./clickhouse client

可以看到会出现以下警告:最大线程数低于30000。处理大量同时进行的查询可能会出现问题。

Warnings:
 * Maximum number of threads is lower than 30000. There could be problems with handling a lot of simultaneous queries.

这个警告表明,当前设置的线程数可能不足以处理大量的同时查询。您可以通过修改ClickHouse的配置文件来增加线程数。在/etc/clickhouse-server/config.xml文件中找到max_threads设置,并根据您的服务器性能和负载情况进行调整

4.使用案例

1.配置文件

添加配置文件 config.xml

<clickhouse>
  	<logger>
        <level>trace</level>
        <log>/Users/admin/ck/data/logs/clickhouse.log</log>
        <errorlog>/Users/admin/ck/data/logs/error.log</errorlog>
        <size>500M</size>
        <count>5</count>
    </logger>
    <http_port>8123</http_port>
    <tcp_port>9000</tcp_port>
    <interserver_http_port>9001</interserver_http_port>
    <interserver_http_host>127.0.0.1</interserver_http_host>  
    <listen_host>0.0.0.0</listen_host>
    <max_connections>4096</max_connections>
    <keep_alive_timeout>300</keep_alive_timeout>
    <max_concurrent_queries>1000</max_concurrent_queries>
    <uncompressed_cache_size>8589934592</uncompressed_cache_size>
    <mark_cache_size>5368709120</mark_cache_size>
  	<default_profile>default</default_profile>
    <default_database>default</default_database>
    <builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>
    <max_session_timeout>3600</max_session_timeout>
    <default_session_timeout>300</default_session_timeout>
    <max_table_size_to_drop>0</max_table_size_to_drop>
    <merge_tree>
        <parts_to_delay_insert>300</parts_to_delay_insert>
        <parts_to_throw_insert>600</parts_to_throw_insert>
        <max_delay_to_insert>2</max_delay_to_insert>
    </merge_tree>
    <max_table_size_to_drop>0</max_table_size_to_drop>
    <max_partition_size_to_drop>0</max_partition_size_to_drop>

    <!-- Path to data directory, with trailing slash. -->
    <path>/Users/admin/ck/data/</path>

    <!-- Path to temporary data for processing hard queries. -->
    <tmp_path>/Users/admin/ck/data/tmp/</tmp_path>
    <!-- Sources to read users, roles, access rights, profiles of settings, quotas. -->
    <user_directories>
        <users_xml>
            <!-- Path to configuration file with predefined users. -->
          	<!-- 此处的目录地址指向下方的users.xml -->
            <path>/Users/admin/ck/users.xml</path>
        </users_xml>
        <local_directory>
            <!-- Path to folder where users created by SQL commands are stored. -->
            <!-- 用户创建sql语句的存储目录 -->
            <path>/Users/admin/ck/users/</path>
        </local_directory>
    </user_directories>
</clickhouse>

添加用户配置文件 users.xml

<clickhouse>
  	<profiles>
        <default>
            <max_memory_usage>10000000000</max_memory_usage>
            <use_uncompressed_cache>0</use_uncompressed_cache>
            <load_balancing>random</load_balancing>
        </default>
        <readonly>
            <max_memory_usage>10000000000</max_memory_usage>
            <use_uncompressed_cache>0</use_uncompressed_cache>
            <load_balancing>random</load_balancing>
            <readonly>1</readonly>
        </readonly>
    </profiles>
    <quotas>
        <!-- Name of quota. -->
        <default>
            <interval>
                <queries>0</queries>
                <errors>0</errors>
                <result_rows>0</result_rows>
                <read_rows>0</read_rows>
                <execution_time>0</execution_time>
            </interval>
        </default>
    </quotas>
    <users>
        <default>
          <!-- 明文:123456 -->
  <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
          <networks>
                <ip>::/0</ip>
            </networks>  
          <profile>default</profile>
          <quota>default</quota>
          <access_management>1</access_management>
        </default>
    </users>
</clickhouse>

⚠️注意:

如果不配置以上配置文件,使用CK默认的配置,在新增用户并配置权限会出现以下问题:DB::Exception: Could not insert user test because there is no writeable access

在这里插入图片描述

2.启动CK服务

与之前不同,此处使用指定的配置文件启动,也就是上节的配置文件地址。

./clickhouse server --config-file=/Users/admin/ck/config.xml

启动客户端,与之前一样。

3.创建数据库

CREATE DATABASE IF NOT EXISTS test

4.创建表

CREATE TABLE IF NOT EXISTS test.t_users
(
    `id` String COMMENT 'ID',
  	`name` Nullable(String) COMMENT '名称',
  	`age` Nullable(Int64) COMMENT '年龄',
  	`create_date` Nullable(Date) DEFAULT toDate(now()) COMMENT '创建时间'
) ENGINE = MergeTree 
PRIMARY KEY(id);

5.插入数据

INSERT INTO test.t_users(id,name,age) VALUES (1, 'jack', 18)

6.查询数据

select * from test.t_users where id = '1'

20240611160724911.png&pos_id=img-wqtrt12o-1718093364139)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用 Google 搜索结果页来引导?

在数据驱动的决策世界中&#xff0c;获取准确而全面的信息至关重要。Google 搜索结果抓取是一种强大的技术&#xff0c;可以让企业、调查人员和研究人员从搜索引擎结果中提取可靠的数据。本综合指南将深入研究 Google 搜索结果的最佳实践、工具和道德考量&#xff0c;以确定能够…

PB-03F 二次开发——GPIO中断

文章目录 前言一、函数介绍1. hal_gpioin_register2. hal_gpio_init3. hal_gpio_pin_init4. hal_gpio_fast_write5. hal_gpio_read6. hal_gpioin_enable7. hal_gpioin_disable二、工具1. 硬件2. 软件 三、GPIO demo示例1. main.c2. 项目框架3. 注意 四、 烧录总结 前言 本文简…

数据结构下的线性回归模型

文章目录 1. 线性回归模型的基本概念与原理2. 数据结构在构建线性回归模型中的应用2.1 数组和矩阵2.2 列表2.3 字典2.4 数据框架 3. 线性回归模型的实现方法4. 示例代码演示总结 线性回归是统计学中最基础也是应用最广泛的预测模型之一&#xff0c;主要用于分析两个或两个以上变…

八轴光电测径仪在传统四大行业的具体应用

关键字:八轴测径仪, 智能测径仪,工业测径仪, 非接触测径仪,蓝鹏测控 八轴光电测径仪在多个行业中都有广泛的应用&#xff0c;尤其是在需要高精度尺寸控制的领域。以下是一些具体的应用实例&#xff1a; 这些应用展示了八轴光电测径仪在不同行业中的多样性和重要性。通过提供高精…

落地台灯什么牌子的比较好?五款适合学生使用的大路灯分享

以往只知道养孩子难&#xff0c;但到底有多难&#xff0c;心里确实没有个切实的预期&#xff0c;但随着我家孩子越长越大&#xff0c;我才知道原来想要把孩子的身心健康照顾好到底是有多难&#xff01;吃、穿、住、行无一不要精心挑选&#xff0c;就是为了能给他营造一个更好的…

StarRocks vs. Trino: 高并发性能背后的技术优势是什么?

Trino&#xff08;之前称 PrestoSQL&#xff09;项目最初由 Meta 开发&#xff0c;旨在让数据分析师能够在广泛的 Apache Hadoop 数据仓库上执行交互式查询。其高效处理大型数据集和复杂查询的能力&#xff0c;以及多数据源连接的灵活性&#xff0c;使其迅速成为大规模组织的首…

【初阶数据结构】深入解析顺序表:探索底层逻辑

&#x1f525;引言 本篇将深入解析顺序表:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &…

【必会面试题】布隆过滤器

目录 基本组成部分&#xff1a;工作原理&#xff1a;特点&#xff1a;一个简单的示例应用场景&#xff1a; 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率极高且查询速度很快的概率型数据结构&#xff0c;用于测试一个元素是否属于一个集合。布隆过滤器的基本…

【CGAL】Region_Growing检测圆柱,保存结果并输出圆柱体参数

目录 说明代码展示结果展示问题说明 说明 这篇博客以代码为主&#xff0c;使用CGAL中的region growing方法检测圆柱体。将不同的圆柱按不同颜色保存&#xff0c;并输出圆柱体的中心坐标、轴方向以及半径。 region growing的具体思想网上的文章已经有很多&#xff0c;可以参考这…

万界星空科技定制化MES系统,实现数字化生产

一、MES生产管理系统强调三个方面&#xff1a; 1、MES是对整个车间制造过程的优化&#xff0c;而不是单一的解决某个生产瓶颈。 2、MES必须提供实时收集生产过程中数据的功能&#xff0c;并作出相应的分析和处理。 3、MES需要与计划层和控制层进行信息交互&#xff0c;通过企业…

算法day25

第一题 394. 字符串解码 解法&#xff1a;模拟栈的完成上述的操作&#xff1b; 分析&#xff1a; 下面以如图的字符串来分析&#xff1b; 首先定义一个数字栈用来存放数字&#xff0c;同时定义一个容器stringbuffer栈&#xff0c;里面用来存放字符串&#xff1b; 1、遇到数字&…

若依RuoYi-Vue分离版—配置多数据源

若依RuoYi-Vue分离版—配置多数据源 一、修改application-druid.yml二、修改pom文件&#xff0c;引入依赖第一种&#xff1a;下载jar包到本地&#xff0c;然后引入&#xff08;我这边用的是这种&#xff09;本地引入的&#xff0c;打包时需要加上配置 第二种&#xff1a;从远程…

JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格

1. 表格位置定点 2.执行效果展示&#xff08;截取PDF文件图片&#xff09; 3.执行代码 当我们使用Apache PDFBox库在PDF文件中创建带有表格的内容&#xff0c;需要遵循几个步骤。PDFBox本身并没有直接的API来创建表格&#xff0c;但我们可以通过定位文本、绘制线条和单元格矩形…

如何在Visual Studio Code中禁用Less文件保存时自动编译为CSS的功能

第一步&#xff1a;点击扩展&#xff0c;搜索Easy Less&#xff0c;并找到对应的扩展设置 第二步&#xff1a;点击在setting.json中编辑 第三步&#xff1a;将此段代码复制粘贴 "compress": false, // 是否压缩"sourceMap": false, // 是否生成map文件&am…

揭秘ASA归因统计的奥秘,Xinstall带您轻松上手!

在移动互联网时代&#xff0c;App推广已成为企业获取用户、提升品牌知名度的重要手段。然而&#xff0c;如何准确衡量推广效果&#xff0c;如何精准定位目标用户&#xff0c;一直是困扰着众多App运营者的难题。今天&#xff0c;我们就来谈谈ASA&#xff08;Apple Search Ads&am…

怎么监控电脑屏幕上的画面?监控电脑屏幕的优秀软件有哪些

怎么监控电脑屏幕上的画面呢&#xff1f;当然是用监控软件啦&#xff0c;它的功能超乎你的想象&#xff0c;下面我将详细介绍如何使用监控软件来监控屏幕&#xff0c;内容将包含监控软件的选择、安装、配置以及具体监控功能的实现等方面。 一、选择监控软件 在选择监控软件时&…

SonarQube安全扫描常见问题

目录 一、SonarQube质量报告 二、SonarQube扫描常见问题和修复方法 三、SonarQube质量配置 最近小编在使用SonarQube工具进行代码扫描&#xff0c;检查代码异味&#xff0c;系统漏洞等&#xff0c;实际过程中也遇到了不少问题&#xff0c;这篇文章主要列举我遇到的常见问题和…

鸿蒙开发文件管理:【@ohos.document (文件交互)】

文件交互 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。本模块接口后续将废弃。不建议在OpenHarmony使用以下接口&#xff0c;调用以下接口将抛出异常。 导入模块 import document from ohos.d…

H1B签证/年薪近$6.5万|美国加州大学戴维斯分校博士后申请成功

N博士信息与通信工程专业毕业,希望到美国加州及周边地区从事博士后工作&#xff0c;且最好是H1B签证。我们为其申请到美国加州大学洛杉矶分校及戴维斯分校的职位&#xff0c;年薪为64,480美元&#xff0c;最终其选择可以办理H1B签证的加州大学戴维斯分校。 N博士背景&#xff1…

Django中配置日志

在Django中配置日志的方法非常简单&#xff0c;只需要在 setting 文件中添加配置项&#xff0c;系统会自动生成相应的日志文件&#xff0c;也可以配置调试时显示内容&#xff0c;报错发送邮件等操作。 在setting.py中添加以下配置。 # 日志配置 LOGS_DIRS os.path.join(BASE…