- 博客(76)
- 资源 (1)
- 收藏
- 关注
原创 clickhouse带条件插入数据
备忘,sql的逻辑是如果不存在就插入,但是暂时不知道如果存在则更新的sql语句应该怎么写,因为clickhouse的插入暂不支持更新的方法。
2023-06-25 19:38:18
354
原创 clickhouse增加物化(MATERIALIZED)列和列重命名
【代码】clickhouse增加物化(MATERIALIZED)列和列重命名。
2023-05-25 15:09:43
702
原创 clickhouse输出成JSONEachRow格式并在前面后面加上括号
由于目前的数据存在clickhouse中,需要将数据导出来成JSONEachRow的格式,但是经过搜索发现,clickhouse将Uint64格式的字段变成了字符串,这显然不符合需求,一通搜索后,发现了这篇。公司项目需要用到全文检索,但是不想用到elasticsearch。自己随便调研的时候发现了一个叫。
2023-03-16 17:34:33
424
原创 套接字的shutdown与close
分别运行上面的server.py与client.py,可以发现在server.py在接收一次后,就无法接收了,因为对于server来说,它的读通道被关闭了。此时再次运行server.py和client.py,则可以发现在server端接收了3次后,无法向client端发送数据。,当时在shutdown与close中没有加入例子,这篇文章是一篇补充。将server.py的shutdown参数换成socket.WR。
2023-01-16 15:15:28
173
原创 shell中查看上一个进程的返回状态码
从上面可以看到,当命令pwd正常运行后,可以得到一个正确的返回值0,而输入一个不存在的命令后,则返回码为127,表示错误。
2023-01-12 21:44:58
787
原创 requests库报错,requests.exceptions.SSLError: HTTPSConnectionPool (Caused by SSLError(SSLError(1, ‘[SSL:
解决request库ssl证书报错问题
2022-07-19 15:26:43
1111
原创 python asyncio异步编程中需要了解的方法记录
In [11]: len(method), len(method1)Out[11]: (117, 148)In [12]: [v for v in method if "server" in v or "connection" in v or "create" i ...: n v or "open" in v]Out[12]:['create_subprocess_exec', 'create_subprocess_shell', 'create_task', 'open_conn
2022-05-19 20:11:29
201
原创 调试正在运行的python程序的性能问题
工具集viztracerpy-spy用法viztracer带上attach参数viztracer --attach $pidpy-spy top --pid $pidpy-spy示例root@test:/usr/local/miniconda3/bin# ./py-spy top -i --full-filenames -p 656364Collecting samples from '/usr/local/bin/python3 -u /usr/local/test/
2022-05-19 20:09:46
362
原创 调试正在运行的python程序的性能问题
工具集viztracerpy-spy用法viztracer带上attach参数viztracer --attach $pidpy-spy top --pid $pid
2022-05-19 20:07:42
116
原创 调试正在运行的python程序的性能问题
工具集viztracerpy-spy用法viztracer带上attach参数viztracer --attach $pidpy-spy --pid $pid
2022-05-19 17:42:55
117
原创 python获取某个类的所有函数、方法
import inspectclass A: def __init__(self): pass def a(self): pass def b(self): pass def __c(self): passprint(inspect.getmembers(A, inspect.isfunction))print(inspect.getmembers(A, inspect.isbuiltin))
2022-05-10 17:24:02
3035
原创 clickhouse类似于mysql的explain操作
clickhouse-client --database='db' --send_logs_level=trace --query="select * table"
2022-04-18 18:08:11
565
原创 clickhouse将一列划分为多列
表结构show create table t_testSHOW CREATE TABLE t_test┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐│ CR
2022-03-01 15:12:04
1022
转载 mysql优化
原文一条sql执行很慢可能的原因,如何优化?情况一大多数情况下很正常,偶尔很慢数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。执行的时候,遇到锁,如表锁、行锁sql写的烂了情况二这条 SQL 语句一直执行的很慢没有用上索引或则索引失效:例如该字段没有索引;或则由于对字段进行运算、函数操作导致无法用索引有索引可能会走全表扫描怎样判断是否走全表扫描:索引区分度(索引的值不同越多,区分度越高),称为基数,而数据量大时不可能全部扫描一遍得到基数,而是采样部分数据进行预
2022-01-11 16:42:40
108
原创 python的弱引用weakref
强引用class t: def __init__(self, a): self.a = a def __repr__(self): return str(self.a) __str__ = __repr__tt = t(1)b = tt # b是tt的强引用print(b, tt) # 两者值一样,均为1del tt # 删除原始对象print(b) # 引用的原始对象tt被删除,b依然可以访问,为1强引用就是原始
2021-12-13 16:57:26
856
原创 python类属性
python类属性的不足实例化属性之间会互相影响class C: x = {}c = C()c.x['a'] = 1print(c.x) # {'a': 1}print(C.x) # {'a': 1}cc = C()cc.x['b'] = 2print(cc.x) # {'a': 1, 'b': 2}print(c.x) # {'a': 1, 'b': 2}print(C.x) # {'a': 1, 'b': 2}这一点从
2021-07-28 15:04:06
96
原创 python将uint型数字转化成bytes类型
前提这里讨论的数字为uint类型代码import arrayif hasattr(array.array, "tobytes"): def array_tobytes(arry): return arry.tobytes() def array_frombytes(arry, bs): return arry.frombytes(bs)else: def array_tobytes(arry): return arry.
2021-04-22 19:31:52
1283
原创 将IPV4转化成数字
def _ip_int_from_string(ip_str): octets = ip_str.split('.') return int.from_bytes(map(lambda x: int(x, 10), octets), 'big')ip_str = '123.45.67.64'r = _ip_int_from_string(ip_str)print(r)print(int.from_bytes([123, 45, 67, 64], 'big')) # 与上面效果相
2021-04-09 13:50:53
398
原创 python根据函数名称获取该函数所在的位置
来自python logging模块的__init__模块_srcfile = os.path.normcase(addLevelName.__code__.co_filename)
2021-04-06 22:51:47
729
原创 time命令输出重定向到文件
因为工作原因,需要将csv文件插入到clickhouse数据库,但是由于csv文件太大,导致在插入数据过程中ssh直接断掉,从而无法看到time的输出结果。解决方法{ time cat http.csv | clickhouse-client --host=127.0.0.1 --query="Insert into default.http FORMAT CSV";} 2>>time.log...
2021-03-24 14:21:45
260
原创 分布式锁
系统部署架构 如果同时有多个请求访问,对存入redis中的数据进行减操作,则会存在数据一致性的问题,即使在业务代码中加锁。处理方式一 此时最简单的方式是在操作逻辑中使用redis的setnx操作设置一个值,并设置超时时间。在减操作完成后,删除相关的键。 但是这会存在一个问题,并发量不大的情况下,这一切都会好好运行,但是可能某个意外,导致: 当前线程在删除相关的键之前,超时时间已经到了,然后别的线程又运行的很快,别人又把这把锁给删除了。此时会存在空档期,导致又被别的线程获取
2021-03-21 00:08:16
185
2
原创 python关闭socket
在我以前的理解中,关闭套接字等价于conn.close(),但是从gunicorn和socketserver的代码来看,我的理解有一些偏差。socketserver关闭请求 def shutdown_request(self, request): """Called to shutdown and close an individual request.""" try: #explicitly shutdown. socket.cl
2021-03-10 17:35:02
1985
原创 python实现管道
首先,感谢abersheeran ,他也是index.py的作者。看了这段代码不禁感叹: 天才就是99%的汗水+1%的灵感,但没有这1%的灵感那99%的汗水也是徒劳 大佬的思路我们还是看看就好,能理解就行了,创造出来还是很有难度的代码from functools import partialclass F(partial): def __ror__(self, other): return self(other) # def __or__(
2021-03-03 19:12:22
1219
2
原创 从bottle框架学习适配者模式
定义Adapter_pattern,引自wiki,可能需要特殊手段打开。代码片段本文使用bottle框架0.4.10版本的代码做例子class ServerAdapter(object): def __init__(self, host='127.0.0.1', port=8080, **kargs): self.host = host self.port = int(port) self.options = kargs def __
2021-03-03 11:35:49
166
原创 sqlalchemy的基类model不自动生成表
在写表时,可能会存在着继承关系,此时,sqlalchemy会默认的去创建这个基类表。显然我们不需要去这么做,解决方法是:class Base(Model): __abstract__ = True create_time = Column(...)
2021-02-04 22:18:43
678
1
原创 关于如何写事件循环的一些思考
声明 本文只讨论如何写针对网络请求的事件循环前置要求使用过asyncio或者类似的库,对协程这个概念有一些了解。协程是有状态的。另外进程也有状态的,比如挂起,就绪,运行等。。。time.sleep发生了什么 来思考这样一个情形,你写了一个程序,这个程序会sleep N秒,但是这个会影响到你接收QQ消息吗?显然不会!!! 你可能觉得进程之间资源不共享,所以A进程的操作不会影响到QQ进程。那回到原点,操作系统又是怎么知道你刚好休眠了N秒的。 这个问题我没有查过,有经验
2021-01-27 23:37:23
124
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人