My homelab

wifi mesh和ap有什么区别? 老实说关于msh wifi的资料并不好找,基本都是厂商的宣传文章。并没有讲清楚mesh和ap的区别,大部分文章里面都讲最好配置有线回程,即mesh wifi路由最好接网线,那不就是ap了吗? mesh到底体现在哪里呢? 经过一些搜索,看来实际上并没有什么根本区别。mesh的基本特点就是多个mesh路由组成一个网状的网络,可以通过wifi互相通信互联,想象很美好,但家用的话,配置上有线回程,实际上并没有用到mesh的功能。只是相当于一个更容易配置的ap系统。 ...

June 7, 2024 · notsobad

Excel Tips

单元格公式中的变量 一个单元格如果是“A1 * B1 + C1”,然后希望复制这个单元格,其中A1和C1保持不变,那么公式应该改为“$A$1*B1+$C$1”, $A表示列固定,$1表示行固定,$A$1就是单元格固定。 函数 google sheet的函数列表:https://support.google.com/docs/table/25273 ...

May 29, 2024 · notsobad

Datascience

在HN上看到了一本书: Data science at the commandline,讲命令行下处理数据的方法,这个页面列出了书中用到的命令行工具。 这里面提到了一些工具,可以作为参考: Linux下的基础工具 awk sed grep sort uniq cut paste join wc head tail tr 需要安装的一些工具 jupyter, 这个就是传统的python数据分析工具了,可以做数据可视化。 csvkit,这个csv处理的工具包里包含了很多命令行工具,可以用来处理csv文件,比如csvstat、csvlook、csvcut等等。 ripgrep, 可以替代grep,速度很快。 jq,这个工具可以用来处理json文件,比如可以用jq '.[] | select(.age > 30)' file.json来过滤出年龄大于30的数据。 clickhouse-local,这个工具可以用来处理clickhouse的数据,比如可以用clickhouse-local --query="SELECT toHour(time) h, count(*) t, bar(t, 0, 100, 25) as c FROM file(hackernews.csv, CSVWithNames) GROUP BY h ORDER BY h"来查询数据。这篇blog:https://clickhouse.com/blog/extracting-converting-querying-local-files-with-sql-clickhouse-local 介绍了如何用clickhouse-local来处理数据。 duckdb,这个工具可以用来处理parquet文件,比如可以用duckdb file.parquet来查询数据。 结论 如果你需要快速分析一些数据,可以考虑命令行工具的组合,但是假如你要做的分析需要写复杂的脚本,那么不要犹豫,直接用python吧,快速的写一个python脚本比你折腾awk要省事的多。 ...

May 6, 2024 · notsobad

太平洋战争

最近逛书店,看到了《太平洋战争三部曲》,翻看了之后觉得很有兴趣继续读,就下载到kindle上继续阅读,断断续续的把三本快要看完了,中间又穿插着看了美剧《太平洋战争》,和书对照,里面有些互相引证的部分。美剧中的是以美军普通士兵的视角来看待太平洋上的一系列登岛作战,他们应该是属于当时的海军陆战队,其中有几场惨烈的战役,如瓜岛、冲绳等。 ...

February 29, 2024 · notsobad

Clickhouse Thinking

列存储 https://clickhouse.com/docs/knowledgebase/key-value ch的列存储,每一列是独立的文件存储,select * from test where k = 1 limit 10的查询,如果k是order by的列,那么查找会很快速的定位到文件,然后文件内查找定位到行,然后就得到所在文件的行数,之后再去找其他所有列对应的文件,然后读取对应行的数据,组合起来,才能得到这一行的数据。 ...

January 22, 2024 · notsobad

Clickhouse Projections

确认projection生效: https://clickhouse.com/docs/knowledgebase/projection_example ReadFromPreparedSource (for_column2) 可以看出是走了projection clickhouse-23.12 :) explain indexes = 1 SELECT count() from table1_projections where column2 > 999 and column1 > 1; ┌─explain─────────────────────────────────────┐ │ Expression ((Projection + Before ORDER BY)) │ │ Aggregating │ │ Filter │ │ ReadFromPreparedSource (for_column2) │ └─────────────────────────────────────────────┘ Using projections to speedup queries in Clickhouse This is important as this means we have to add all columns to projection that are used in the query. This is different from row-based databases indexes, which referrence entire rows. But columnar database doesn’t even know what row is, that’s why projection != index. Projection is just some part of the original table data stored in a different form, which is better suitable for certain queries. ...

January 19, 2024 · notsobad

Baby Talk

小朋友快要3岁了,有时候会说一些很有意思的话,这里做一些记录。 我好烦 //闹钟响了 Baby: 什么声音? Mom: 闹钟的声音 Baby:快把闹钟关掉,我好烦 //妈妈去关闹钟 无中生有 去取快递时 Baby: 是不是我的消防车到了 之前并没有答应过他要买消防车 拆快递时 Baby:这应该是我的消防车(很期待的表情) ...

January 18, 2024 · notsobad

Clickhouse Optimize

Query cache https://clickhouse.com/docs/en/operations/query-cache https://clickhouse.com/blog/introduction-to-the-clickhouse-query-cache-and-design v23.1 开始支持Query cache, 即可以缓存查询结果,可以选择针对会话启用。 设置项: query_cache_min_query_runs 查询运行过多少次才会启用缓存 query_cache_min_query_duration 查询运行时间超过多少才会缓存 query_cache_ttl cache 过期时间 query_cache_max_entries 往缓存表中存储的缓存结果条数 use_query_cache 此查询是否使用缓存 enable_reads_from_query_cache 此查询是否先从缓存中读 enable_writes_to_query_cache 此查询的结果是否写入缓存 Materialized View 物化视图,看这篇 ...

January 16, 2024 · notsobad

Clickhouse Deduplication

Deduplication Strategies 笔记 去重操作,CH不是在插入阶段去重,而是插入后,速度会很快,影响: 任何时间,数据中可能会有重复数据 分区合并时,才会去重 查询语句需要适配重复数据 几种合并: ReplacingMergeTree: 相同排序键的会被合并 CollapsingMergeTree: 有一个字段标识取消,可以声明取消前面的数据,然后再插入新数据,多线程写的情况不适用。 VersionedCollapsingMergeTree: 带有版本号的去重,可以 Q: 为什么数据没有被去重? ...

January 8, 2024 · notsobad

Clickhouse MV

《Everything you should know about materialized views.》 阅读笔记 原理 materialized views(以下简称MV)在insert的时候触发,并不会读源表,往一个表insert后,MV会从insert的数据中进行创建。 因此,源表甚至可以是个NULL Engine,即实际不写入数据,仅用来在inser时触发MV的动作。 ...

January 4, 2024 · notsobad