├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ClickHouse 学习资料(文章/视频) 2 | 本库开始于2022年3月2号。 3 | 4 | ## ClickHouse 是什么? 5 | 1. ClickHouse 是一个数据库。它有 `create database`, `create table`, 自己的数据类型。等等。 6 | 2. 本库创建者的具体用例: PostgreSQL 依然是业务的主数据库, 数据同步到 ClickHouse,数据可视化用 Superset。 7 | 8 | ## 这是什么? 9 | 这里是一个资料列表,存放所有高质量的 ClickHouse 学习资料,包括文章,视频。 10 | 11 | ## 为什么做这个表? 12 | 网上 ClickHouse 的学习资料并没有想象的那么多。 13 | 我在学习过程中看到高质量资料就收集到这里,帮助其他想学 ClickHouse 的人。 14 | 15 | ## 列表 16 | * [(英文) Altinity Quickstart for ClickHouse | Build Your First App | ClickHouse Training](https://www.youtube.com/watch?v=phTu24qCIw0&t=1198s) 17 | 点评:五星推荐。非常适合新手观看。 18 | 2022年1月出的视频,59分钟50秒。 19 | 内容是对 ClickHouse 做入门介绍。 20 | * 会教你怎么安装 ClickHouse 21 | * 如何从命令行链接上 ClickHouse (使用 `clickhouse-client`) 22 | * 介绍 ClickHouse 内置的 Web UI `localhost:8123` 23 | * Database 和 Table 的概念 24 | * 一些方便的命令 25 | * `show databases` 列出 ClickHouse 里的所有数据库。 26 | * `select currentDatabase()` 输出当前数据库。 27 | * `show tables` 显示某个数据库里的所有表。 28 | * `describe table [表名]` 输出某张表的结构。 29 | * 使用 `use [数据库名]` 来切换不同的数据库。 30 | * ClickHouse 中的特殊数据库 31 | * default: 每次登陆后的默认数据库。 32 | * system: 系统表,metadata 存这里。 33 | * (18:24) 如何用 `CREATE TABLE` 创建表格并且指定数据类型,指定 Engine Type。等等。 34 | * (21:40) 各种插入数据的方法 (Use input formats to load raw data) 35 | ``` 36 | cat sdata.csv | clickhouse-client \ 37 | --database=sense \ 38 | --query='INSERT INTO sdata FORMAT CSVWithNames' 39 | ``` 40 | * (26:44) 如何更新或删除行。 41 | * 更新和删除的成本很高。并且是异步操作。 42 | * 教你怎么判断异步操作到底完成没有。 43 | * (28:00) 当运行 INSERT 的时候发生了什么。 44 | * (29分钟) Why MergeTree? 45 | * 33分钟:一个 SQL 示例,查询2017年里,哪位用户取消的行程最多。 46 | * 36分钟:ClickHouse 有很棒的 date-time support。 47 | * Date, DateTime, DateTime64 类型。 48 | * toYear(), toMonth(), toWeek(), toDayOfWeek, toDay(), to Hour()... 49 | * toYYYYMM(), toYYYYMMDD(), toYYYYMMDDhhmmsss() 50 | * 37分钟: ClickHouse 有很多 aggregates 51 | * 除了支持标准 SQL 里的 count(), avg(), sum(), min(), max() 52 | * 还有: 53 | * any() 54 | * anyLast() 55 | * avgWeighted() 56 | * uniq() 57 | * uniqExact() 58 | * quantile() 59 | * ... 60 | * 38分钟: Group By 语法。 61 | * 40分钟: JOIN 语法。(LEFT JOIN) 62 | * 41分钟: JOIN 详解 63 | * `LEFT [OUTER] JOIN` 64 | * `FULL [OUTER] JOIN` 65 | * `RIGHT [OUTER] JOIN` 66 | * `[INNER] JOIN` 67 | * `CROSS JOIN` 68 | * 42分钟: ClickHouse 是如何处理 Join 查询的? 69 | * 45分钟: ClickHouse 性能指南。 70 | * Add more CPU 71 | * Limit columns and rows in queries 72 | * 48分钟: Understanding what's going on in MergeTree。 73 | * 52分钟:压缩。 74 | * 55分钟:和 ClickHouse 搭配使用的各种软件 75 | * Client Libraries 76 | * Rendering 77 | * Apache Superset 78 | 79 | * [(书籍) ClickHouse原理解析与应用实践](https://book.douban.com/subject/35091211/) 80 | 这本书我粗略翻了一下,270页。似乎是市面上唯一一本中文书。 81 | 点评:非常适合新手观看。前面介绍了一下 ClickHouse 的历史,名字的由来,发展历程。 82 | 介绍了基本用法。 83 | 后面关于 MergeTree 的部分看不懂。 84 | 这本书可以买了之后备在手边,等需要的时候再翻。因为后半部分的内容没法马上用上,很复杂很多细节,也不可能全部记住。 85 | 86 | 87 | --------------------------------------------------------------------------------