clickhouse和mysql的不同用法之陷入误区
前言我们的数据计算式基于clickhouse的,由于接触clickhouse不久,看官网介绍语法和mysql是类似的,就放心大胆的使用mysql的大量语法,然后遇到了一个很奇怪的问题,也是这个奇怪的问题让我对列式数据库有了更深入的了解。 遇到的问题先了解一下clickhouse对列式数据库的图表述: 再了解一下mysql的行式数据库的图表述: 然后下面这样一段sql: 123456select a,0 as b,0 as cfrom tbl_xxxwhere del = 1 and (1>1 or b in (1,2,3) or c in (4,5,6))group by a,b,corder by a desc 这样一段很简单的sql,在clickhouse中却无论如何都查询不出结果,明明在where条件在数据库中满足条件的数据量非常的多,却出现这样奇怪的现象。 排查问题 排查到的问题1:以为是 1>1这个语句导致了数据库无法查询出数据,所以将1>1 改成了...
go-web容器化中遇到的两个问题
前言今年开始接触并且实践到Golang,近期自己写了一个相册的服务,是基于前后端分离的模式,由Go提供rest给web页面使用。在项目前期是直接使用的打包完成的二进制文件执行,在管理方面存在一些不方便的地方,所以周末抽时间将其容器化,实现自动化的部署方案,主要就是采用coding的devops流程,容器化使用的还是docker容器,使用的是alpine的镜像,在这个过程中遇到一些问题,下面会详细讲出,以此记录。 docker容器化过程将服务自动化发布流程还是比较简单的,分为以下几步:1、github上创建对应的代码仓库,作为源代码的提交2、在coding上新建一个项目,与github的代码库绑定(github同时也提供github...
standard-notes之集成自己的插件库
前言上一篇文章写了怎么部署standard notes的自建笔记本,在使用过程中发现还需要很多的插件来配合更好的使用standard notes,来做数据备份以及更好的编辑文档。standard notes的插件是可插拔的,简而言之就是将静态页面加载到页面中,来使用其中的功能,达到增强的目的。 关于standard notes...
好用的日常笔记本standard notes
前言很久很久之前就一直在找一些好用的并且开源的note app,尝试过trilium、蚂蚁笔记、notion、语雀 都没有找到我心仪的那一款,要么是数据是存储在境外,一旦国家的墙更厚了,就尬了,另外一些就是数据很分散,备份出来的数据无法很顺利的导入到其他的app中。直到有一天我发现了Standard notes。 关于Standard notesStandard notes是一款免费、开源且完全加密的笔记应用程序。 简单介绍一些它的优点: 开源 代码开源,可以自己创建对应的服务,将数据存储在自己的自建数据库中,这也是我最看重的一点 免费 知识付费时代,有一些免费的可维护的项目也是很难得,该产品也是通过开源的形式,然后使用官方的服务队插件进行收费 完全加密 按照文档的说法是完全的端到端加密,数据在浏览器进行接口传输之前就已经进行了加密,避免网络传输过程中被拦截后数据泄露的场景 部署Standard notesStandard notes大部分语言是使用node写的,按照微服务的方式进行拆分,分为几大块: 服务层: 同步服务器...
基于authelia的最佳实践
前言作为一名工程师,在这个繁杂的网络世界中,想有自己的一片净土。自己有很多的网站,方便自己工作生活,但是苦于网络安全问题不敢轻易部署在公网中,所以发掘了这块一款SSO工具:authelia,他能很方便的在nginx层给你的网站加上独属于你的防火墙,账号密码,如果网站很多,并且没有自己独立的账号系统,那这款工具可以说非常适合你了。 关于autheliaAuthelia是一个开源身份验证和授权服务器,可通过Web门户为您的应用程序提供2要素身份验证和单点登录(SSO)。它充当反向代理(如nginx,Traefik或HAProxy)的伴侣,以使他们知道查询是否应该通过。未经身份验证的用户将重定向到Authelia登录门户。目前主要可用功能 几种第二因素方法: 带有Yubikey的安全密钥(U2F)。 使用Google...
scp日常使用记录
scp 在平常会比较常用,所以记录一下对应的基本使用方法。 scp 命令介绍scp 是使用ssh协议的sftp文件上传方式,可以将文件、文件夹在服务器和本地机器之间互传,在没有图形化客户端的条件还是比较好用的 常见使用方法从服务器下载文件或者文件夹到本地123456#下载文件scp -P 30010 <username>@<hostname>:/data/ToolsetIdeaPlugin-1.0.0.zip .#下载文件夹scp -P 30010 -r <username>@<hostname>:/data . 注意: -r 代表下载递归文件夹,如果非文件夹可去掉 -P 大写的P代表对应host的端口,为了安全考虑,我们一般不会使用22作为ssh的端口 命令最后有一个 . 表示当前目录的意思。 从服务器下载多个文件到本地12# 下载多个文件到当前文件夹scp -P 30010 <username>@<hostname>:/data/\{a.md, b.md,...
Linux安装mongodb
前言因为需要部署蚂蚁笔记,就想着将数据库放在云上,后来发现基本上所有的云厂商对Mongodb收费都比较高昂,所以就选择了便宜的方案,在公有云服务器上自建mongodb服务。mongodb服务构建主要是使用的docker,数据挂载在磁盘固定的位置,并且定时进行同步 步骤 使用docker最新版的mongodb镜像 1docker pull mongo 给mongodb创建对应的本地数据存储空间以及数据备份空间 12mkdir -p /data/mongo-datamkdir -p /data/mongo-backup 写docker容器创建命令 1234#创建mongo容器并且指定对外Port为20011 挂载数据内容以及备份内容,`--auth` 开启mongo认证,不建议在公网环境暴露docker run -d -p 20011:27017 --name mongo -v /data/mongo-data:/data/db -v /data/mongo-backup:/data/backup mongo...
Git常用命令
仓库12345678# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url] 配置123456789# 显示当前的Git配置$ git config --list# 编辑Git配置文件$ git config -e [--global]# 设置提交代码时的用户信息$ git config [--global] user.name "[name]"$ git config [--global] user.email "[email address]" 增加、删除文件123456789101112131415161718192021# 添加指定文件到暂存区$ git add [file1] [file2] ...# 添加指定目录到暂存区,包括子目录$ git add [dir]# 添加当前目录的所有文件到暂存区$ git add .# 添加每个变化前,都会要求确认#...
ubuntu配置clash
前言作为一名软件开发攻城狮,日常佛跳墙是有必要的。近期讲win电脑上安装了ubuntu系统准备作为开发的主力系统。本次记录一下如何在ubuntu (20.04)安装 clash作为访问google.com的工具。 下载clash访问到 clash的Github地址,发现访问比较慢,别急,有方法: 访问IP地址查询 然后获取到最近的访问github的IP 执行命令sudo vi /etc/hosts 写入2.74.223.119 github.comhost 再次访问github发现速度飙升,然后下载对应系统的包 启动clash 运行sudo gzip -d clash.gz 解压对应文件夹 运行sudo cp clash的解压后的地址 /usr/local/bin/clash 复制可执行文件到bin中 执行clash 生成默认的配置文件 执行cd /home/用户名/.config/clash可以看到对应的配置文件config.yaml 将你自己的配置文件修改为config.yaml 然后再次执行clash 就可以正常的使用路由规则了,如果需要后台运行执行nohup...