- 博客(65)
- 资源 (2)
- 收藏
- 关注
原创 数据密集型应用系统设计(一)
前四章详细讲了增强数据密集型应用系统所需的一些基本原则,有一定经验的可以跳过,直接读第五章。不然真的浪费时间呀= =
2022-10-11 19:03:22
707
原创 【踩坑记录】运行时弹窗 无法打开“XXX”,因为无法验证开发者。
原因:Mac新系统安全设置变严格,导致某些文件无法被读取苹果官方解释及解决:https://support.apple.com/zh-cn/guide/mac-help/mh40616/11.0/mac/11.0。
2022-08-24 17:27:52
1371
原创 《剑指Offer》笔记-第二章 面试需要的基础知识
二、面试需要的基础知识数据结构数组字符串链表树栈和队列算法和数据操作查找和排序递归和循环位运算
2022-02-27 21:53:01
239
1
原创 《剑指Offer》笔记-第一章 面试流程
一、面试流程面试的三种形式电话尽可能用形象的语言把细节说清楚远程共享桌面思考清楚再开始编码要有良好的代码命名和缩进对齐习惯能够单元测试现场准备几个问题面试的三个环节行为面试环节讲项目经验, 建议用STAR模型描述每一个项目Situation: 简短的项目背景Task:自己完成的任务Action:为了完成任务自己做了哪些工作,怎么做的Result:自己的贡献这方面的信息可以写得具体些,最好能用数字加以说明。如果是参与功能开发,可以说按时完成了多少功能;如果做
2022-02-24 15:47:46
195
原创 Hue源码解析之-数据预览逻辑实现
从hue导入器进入页面调用/indexer/api/indexer//indexer/api/indexer/guess_field_types接口,根据页面选择参数,传递format到后端,{..."format": { "type": "csv", "fieldSeparator": ",", "recordSeparator": "\\n", "quoteChar": "\"", "hasHeader": true, "status": 0 },...}
2021-12-06 18:39:25
923
原创 读《编写可读代码的艺术》
1. 代码应当易于理解一、表面层次的改进2. 把信息装到名字里把信息塞入名字中。读者仅通过读到名字就可以获得大量信息。使用专业的单词一一例如,不用Get,而用 Fetchi或者Down load 可能会更好,这由上下文决定。避免空泛的名字,像tmp和retval,除非使用它们有特殊的理由使用具体的名字来更细致地描述事物Server Can Start这个名字就比 Canlistenonport更不清楚。给变量名带上重要的细节例如:在值为毫秒的变量后面加上ms,或者在还需要转义
2021-10-27 18:41:09
202
原创 python刷题三(入门题:数列的和)
描述数列的定义如下:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。输入描述:输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。输出描述:对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。示例1输入:81 42 2输出:94.733.41答案:解题思路:import mathdef math_sqrt(n, m): count = 0
2021-10-10 15:20:39
1609
原创 python刷题二(入门题:找零)
描述Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N (0 < N \le 1024)N(0<N≤1024)的商品,请问最少他会收到多少硬币?输入描述:一行,包含一个数N。输出描述:一行,包含一个数,表示最少收到的硬币数。示例1输入:200输出:17说明:花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。备注:对于100%的数据,N (0 &l
2021-10-07 17:54:58
233
原创 python刷题一(入门题:处理拼写错误)
描述我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼
2021-10-07 17:14:35
810
原创 python之列表、元祖详细对比
全方位列表、元祖对比一、 列表可变,元祖不可变。1. 为什么元祖不可变?从内存来解释,元祖的每个值在内存中存放于一个地址值,这个地址值是不可变的。2. 修改元祖中的列表元素值,元祖还是不可变的吗?可以向元祖中添加扩充元素,这不代表元祖可变,id(元祖)会发现,它的地址值已经变化。创建了另一个指向同一对象的元祖元祖可以接受一个可变对象作为元素,比如元祖中包含一个列表,修改了元祖中的列表里的值,这个元祖中的列表的地址值值固定的,虽然列表的值变了,但列表的地址值不变,元祖没变。二、元祖速
2021-10-07 12:34:37
821
原创 Python之单元测试
Python之单元测试典型的单元测试步骤创建测试计划编写测试用例,准备测试数据编写测试脚本编写被测代码,代码完成后执行测试脚本修正代码缺陷,重新测试直到代码修正结束让测试驱动开发一、Python的单元测试框架PyUnit(unittest)是Python的标准库1. 测试固件(test fixtures)测试相关的准备工作和清理工作setUp():完成初始化工作tearDown():资源释放# 被测试类 myClass.pyclass MyClass(o
2021-07-30 17:08:57
474
2
原创 常用python执行shell的命令
一、os.system(“pwd”)1.返回值依赖于系统,程序阻塞等待返回直接返回系统的调用返回值windows、Linux下是不一样的2.样例二、os.popen(command[, mode[, bufize]])1. 执行后的结果是个字符串2. 使用import osresult = os.popen("pwd").read()3.样例三、commands模块(Python2中的模块)1. 有以下三个函数:函数说明备注getoutput(c
2021-07-29 12:43:09
4123
原创 数据标注平台-LabelStudio
一、简介label-studio是一个开源的数据标注、注释工具技术:后端纯python编写,使用了flask前端:React + MST存储:本地存储jsondir-jsonstask-jsoncompletions-dirAmazon AWS 简单存储服务(S3)读取label-studio start my_project --init --source s3 --source-path my-s3-bucket写入:label-studio st
2021-01-29 12:04:00
9057
2
原创 增量处理框架:Hudi
Hudi(Hadoop Upserts and Incrementals)增量处理框架一、工作原理:DFS上对数据进行索引和布局,分为插入更新和增量拉取。存储类型:CopyOnWrite(写时复制):仅使用列文件格式(parquet)存储数据 在写入过程执行同步合并,并更新版本重写文件。即使更新一行,都将重写整个parquet文件,文件越大,花费时间越长。 读视图:快照查询、增量查询MergeOnRead(读时合并):使用列式(parquet)加基于行(avro)的文件格式组
2020-12-15 11:51:00
1342
翻译 hive静态分区与动态分区 (全网搜索整理笔记)
hive分区。默认是静态分区。分区的好处:将列值作为目录存放数据,这样查询时,根据分区列过滤,只需查询对应目录下的数据,快速定位,查询效率高。Hive的分区方式:Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并非一个实际字段。当在插入数据的时候指定分区,其就是新建一个目录或者子目录,或者在原有的目录上添加数据文件静态分区静态分区分区的值是确定的新增分区或者是加载分区数据时,已经指定分区名creare table if not exist.
2020-07-29 11:44:37
329
翻译 sql查询优化与volcano Optimizer
Volcano Optimizer简介:提供了一套sql解析与执行接口,包含sql查询和执行相关任务的执行代码,只需将数据模型
2020-07-12 19:18:28
283
原创 grpc初使用全攻略
grpc里的客户端可以像调用本地对象一样,直接调用另一台机器上服务端的应用一、什么是gRPC在服务端实现一个接口,定义一个服务,指定能被远程调用的方法,并运行一个gRPC服务来处理客户端调用用proto files创建gRPC服务,用protocol buffers消息类型定义方法参数和返回类型。1. 支持的语言:Go、python、ruby、C++、Java、node.js、C#...
2020-04-22 23:36:26
258
转载 计算机网络-TCP/IP四层、TCP/IP五层、OSI七层协议
引入:四层协议、五层协议、七层协议模型如下一、应用层应用层(Application Layer)是OSI参考模型的最高层它是计算机用户,以及各种应用程序和网络之间的接口其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及 应用所需的监...
2020-04-21 00:24:29
405
原创 大数据可视化展示工具:Grafana简介
Grafana 是一款采用 go 语言编写的开源应用主要用于大规模指标数据的可视化展现。有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器支持Graphite、zabbix、InfluxDB、Prometheus 和 OpenTSDB 作为数据源最新版本4.3.1已经支持 MySQL 数据源。Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持多...
2020-04-16 23:00:52
1193
转载 ELK
ELK是什么?ELK是3个开源产品的组合:ElasticsearchLogstashKibanaElasticsearch是一个基于Lucene搜索引擎的NoSQL数据库。Logstash是一个日志管道工具,接受数据输入,执行数据转换,然后输出数据。Kibana是一个界面层,在Elasticsearch之上工作。另外,ELK栈中还包含称为Beats的日...
2020-04-16 22:52:13
134
原创 Kafka-实时数据处理系统
简介Apache Kafka,2011年成为开源Apache项目,然后于2012年成为First-class Apache项目。Kafka是用Scala和Java编写的。Apache Kafka是基于发布订阅的容错消息系统。 它是快速,可扩展和设计分布。优点:可以横向扩展、高可靠,而且还变态快消息结构:Kafka内部是一个消息队列组件一、Broker(代理)Kafka集群...
2020-04-16 22:41:30
761
原创 redis不加密,导致服务器被黑,执行挖矿程序
做到以下这几点,可保证Redis安全启动:不能以root用户来启动!!!端口:避免用默认6379端口地址:避免仅监听本地地址密码:密码设置复杂一点redis-cli登录时不要通过redis-cli -a YouPassword来登录,而是先登录后验证,redis-cli后,输入auth YouPassword的方式限制Redis的文件目录访问权限设置redis的主目录权限为700...
2020-04-13 10:31:53
600
原创 Go语言基础之文本处理
文本、文件处理一、 字符串处理Go标准库中的strings和strconv1. 字符串操作Containsfunc Contains(s, substr string) bool功能:字符串s中是否包含substr,返回bool值Joinfunc Join(a []string, sep string) string字符串连接,把slice a 通过sep连接起...
2020-02-17 23:55:21
373
原创 Go语言基础之异常处理
异常处理1. error接口接口定义: // 内建的接口定义type error interface { Error() string}// 标准库代码包errorspackeage errorstype errorString struct { text string}func New(text string) error { return &er...
2020-02-17 23:38:10
139
原创 Go语言基础之面向对象编程
Go语言并没有沿袭传统面向对象编程中的诸多概念封装:通过方法实现继承:通过匿名字段实现多态:通过接口实现一、匿名组合1. 匿名字段匿名字段(嵌入字段):go支持只提供类型,而不写字段名的方式匿名字段也是结构体时:这个结构体所拥有的全部字段都被隐式地引入了当前定义的这个结构体//人type Person struct { name string ...
2020-02-17 17:46:39
148
原创 Go语言基础之复合类型
分类:指针(pointer)、数组(arry)、切片(slice)、字典(map)、结构体(struct)一、指针1. 基本操作默认值nil, 没有NULL常量操作符"&"取变量地址"*"通过指针访问目标对象保存某个变量的地址,需要指针类型*int保存int的地址不支持指针运算,不支持"->"运算符直接用“.”访问目标成员不能操作没有合法指向的内存...
2020-02-16 17:43:27
232
原创 Go语言基础之工程管理
工程管理一. 工作区1. 介绍分文件编程(多个源文件)必须放在src目录同一个目录,包名必须一样同一个目录,调用别的文件的函数,直接调用即可,无需包名引用不同目录,包名不一样调用不同包里面的函数,格式:包名.函数名()调用别的包的函数,这个包函数名字如果是小写,无法让别人调用,要使之可以调用,需要首字母大写2. GOPATH环境变量go env查看go相关的环境变量代...
2020-02-13 02:33:38
148
原创 Go语言基础之函数
一、函数1. 定义格式基本组成:关键字func、函数名、参数列表、返回值、函数体和返回语句只有一个返回值且不声明变量,可以省略括号2. 自定义函数1. 无参无返回值func TestFunc() { a := 2 fmt.Println("This is a test func, a is ", a)}func main() { TestFunc() //无参无...
2020-02-13 01:58:30
98
原创 Go语言初识
一、Go语言介绍1. 介绍、优势部署简单静态语言,但有动态语言的感觉开发效率高 GC(内存垃圾回收机制)支持并发含很多第三方库2. 用来做什么服务器编程分布式系统网络编程内存数据库云平台二、基础类型1. 命名字母或下划线开头关键字不能用于自定义名字2. 变量:1). 变量声明变量声明了必须要使用只是声明没有初始化的变量,默认为0 同一个{}里...
2020-02-12 18:51:40
175
原创 实时同步MySQL数据到ES
实时同步MySQL数据到ES前情:经过查询,网上大概有以下三种方式1)elasticsearch-jdbc,独立的第三方工具(只支持es 二点几的版本,不支持5.6.1及更高版本)2)logstash-jdbc,logstash官方插件安装logstash安装logstash-jdbchttps://gems.ruby-china.com3)go-mysql-elastics...
2020-01-08 18:18:39
797
原创 Centos7自启动
Centos7自启动几种方式一、服务的方式自启动/etc/init.d下相关程序的启动脚本ln -s /etc/init.d/服务名/etc/rc.d/rc3.d/S100服务名//S:开机自启动 100:启动顺序二、systemctl三、定时启动脚本...
2019-12-04 14:54:44
289
PyQt5入门.pdf
2019-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人