
春眠不觉晓
人间再无张居正
学习ing
展开
-
禁用clickhouse缓存
clickhouse禁用缓存翻译 2023-03-10 14:40:11 · 566 阅读 · 0 评论 -
在已经进入的clickhouse client中加入参数
备忘原创 2023-02-22 14:11:51 · 168 阅读 · 0 评论 -
clickhouse类似于mysql的explain操作
clickhouse-client --database='db' --send_logs_level=trace --query="select * table"原创 2022-04-18 18:08:11 · 566 阅读 · 0 评论 -
clickhouse将一列划分为多列
表结构show create table t_testSHOW CREATE TABLE t_test┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐│ CR原创 2022-03-01 15:12:04 · 1022 阅读 · 0 评论 -
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 · 1284 阅读 · 0 评论 -
将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 · 399 阅读 · 0 评论 -
python根据函数名称获取该函数所在的位置
来自python logging模块的__init__模块_srcfile = os.path.normcase(addLevelName.__code__.co_filename)原创 2021-04-06 22:51:47 · 729 阅读 · 0 评论 -
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 阅读 · 0 评论 -
分布式锁
系统部署架构 如果同时有多个请求访问,对存入redis中的数据进行减操作,则会存在数据一致性的问题,即使在业务代码中加锁。处理方式一 此时最简单的方式是在操作逻辑中使用redis的setnx操作设置一个值,并设置超时时间。在减操作完成后,删除相关的键。 但是这会存在一个问题,并发量不大的情况下,这一切都会好好运行,但是可能某个意外,导致: 当前线程在删除相关的键之前,超时时间已经到了,然后别的线程又运行的很快,别人又把这把锁给删除了。此时会存在空档期,导致又被别的线程获取原创 2021-03-21 00:08:16 · 186 阅读 · 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 · 1986 阅读 · 0 评论 -
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 阅读 · 0 评论 -
sqlalchemy的基类model不自动生成表
在写表时,可能会存在着继承关系,此时,sqlalchemy会默认的去创建这个基类表。显然我们不需要去这么做,解决方法是:class Base(Model): __abstract__ = True create_time = Column(...)原创 2021-02-04 22:18:43 · 685 阅读 · 1 评论 -
Python退出多重循环的方法
方法包装成函数,在多重循环中符合某个要求,直接return下面这个方法比较巧妙class MyException(Exception): passtry: for i in range(10): for j in range(10): if condition(i, j): raise MyExceptionexcept MyException: deal(i...原创 2020-03-27 17:05:08 · 678 阅读 · 2 评论 -
Python一些有用的操作--列表的按列访问,列表的转置
按行访问a = [ [1,2,3], [4,5,6], [7,8,9] ]for v in a: print(v)按列访问print( list( zip(*a) ) )转置print( list( zip(*a) )[::-1] )原创 2019-04-02 10:14:58 · 7707 阅读 · 0 评论 -
最短编辑距离
写给对问题有了解的人从一个例子开始(Leetcode72)a = 'horse', b= 'row'从a变成b最短需要几步?输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')从上面的解释我们可以知道什么?看第一步,将 'h' 替换为 'r'。- ...原创 2019-04-13 14:32:59 · 155 阅读 · 0 评论 -
Keras的Dot类
官方的定义为keras.layers.Dot(axes, normalize=False)它处于Merge模块中,查看源代码发现它的merge方式是这样的,如下PS:原链接def _merge_function(self, inputs): if len(inputs) != 2: raise ValueError('A `Dot` layer should b...原创 2019-05-08 17:11:20 · 7109 阅读 · 0 评论 -
Leetcode78与位运算操作
找到一个二进制数中的1例子:二进制数表示:100110101001如果能依次用:000000000001如果能依次用:000000000010.......如果能依次用:100000000000和上面的二进制数表示相与就知道哪里为1...原创 2019-05-06 10:16:43 · 303 阅读 · 0 评论 -
LeetCode166
只用注意一点,整数和整数相除是不会出现无限不循环小数的。所以在计算循环节时只用记录第一次出现重复的位置即可。原创 2019-05-15 12:29:25 · 397 阅读 · 0 评论 -
【算法导论】动态规划之矩阵链乘法Python实现
前提浏览了书中的整体流程,对代码的一些部分没太明白问题定义求多个矩阵相乘的最优计算顺序,使得计算量最低编程看转移方程的定义后将矩阵的行列大小定义为一个列表,本文定义方式p = [30, 35, 15, 5, 10, 20, 25] ,对矩阵的行列表示,说明有5个矩阵,第一个的阶数为3035, 第二个为3515, 第三个为15*5,以此类推只对上三角进行填表,填入顺序为从左到右,从...原创 2019-03-15 15:18:23 · 2888 阅读 · 0 评论