- 博客(723)
- 收藏
- 关注
转载 信息流广告:原生和gd合约的区别,以及竞价机制和计费方式
延伸二:实际广告投放中ECPM里面的“ctr”和“cvr”不是实际的,是预估ctr和预估cvr,在投放前或投放中广告系统就会对单条创意就会产出预估数据,预估模型建立的原理通过广告特征数据+用户画像数据+用户历史行为数据等,进行机器学习再产出初次单条创意的预估ctr和预估cvr,投放中阶段继续采集实际数据与转化数据进行再次学习。延伸一:曝光机会是有优先级的,根据媒体出售的广告形式,优先级依次是CPT广告>GD广告>竞价广告(上方所罗列的出价方式这种)创意A:ECPM=5%*3%*30*1000=45。
2024-08-08 22:06:32 228
转载 #### SQL语法顺序与执行顺序 ####
如果指定了LEFT JOIN,那么保留表中未匹配的行就会作为外部行添加到虚拟表2中,产生虚拟表3。:UNION连接的两个SELECT查询语句,会重复执行步骤1~7,产生两个虚拟表7,UNION会将这些记录合并到虚拟表8中。:根据GROUP BY子句中的列,对虚拟表2中的记录进行分组操作,产生虚拟表5。E:对虚拟表3进行WHERE条件过滤,符合条件的记录会被插入到虚拟表4中。:对虚拟表5进行HAVING过滤,符合条件的记录会被插入到虚拟表6中。:SELECT到一步才执行,选择指定的列,插入到虚拟表7中。
2024-08-01 22:40:46 66
转载 转载:LSM Tree 一种支持高效读写的存储引擎
写数据时,首先将数据缓存到内存中的一个有序树结构中(称为 memtable)。同时触发相关结构的更新,例如布隆过滤器、稀疏索引。当 memtable 积累到足够大时,会一次性写入磁盘中,生成一个内部有序的 segment 文件。该过程为连续写,因此效率极高。进行查询时,首先检查布隆过滤器。如果布隆过滤器报告数据不存在,则直接返回不存在。否则,按照从新到老的顺序依次查询每个 segment。在查询每个 segment 时,首先使用二分搜索检索对应的稀疏索引,找到数据所在的 offset 范围。
2024-07-04 21:50:50 84
原创 #### grpc比http性能高的原因 ####
field_number是.proto文件用于定义某个字段,比如对于上述消息结构,id是1,str是2,wow是3,wire_type是google官方定义的,它是消息结构类型的一种再次分类,每个wire_type都可以对应多种数据类型,每种数据类型都有对应的wire_type:可以观察到,protobuf支持的wire_type 范围是0~5,对应二进制也就是000~101,正好是三位,那么按照tag计算公式,field_number左移三位之后,再或上wire_type就组成了tag。
2024-06-27 16:49:48 1118
原创 #### 广告投放 ####
ecpm为千次展示收益,注意不是千次点击收益,展示了可能不点击,所以ecpm=1000*ctr*点击出价,其中点击出价来自广告主的竞价,ctr为某类用户在某类场景下对某类广告的点击率在线动态预估值,而广告平台为了提高收益则根据ecpm对广告排名展示(因为广告平台的核心资源就是广告位的曝光机会)。
2024-06-27 12:55:22 265
原创 ######## golang各章节终篇索引 ########
详细 可选 可选 可选 10个基本排序算法 LRU 参数传递 关系 内存模型 泛型编译/链接 string builder。
2024-06-12 13:08:27 586
原创 ######## redis各章节终篇索引 ############
关系:zset:ziplist(注意是可变长度的,下同)、skiplisthash:ziplisthashTable(是一种子结构,区别于hash)set:inset(有序列表,二分查找)、hashTablelist:quickList(由多个ziplist链接起来组成的)前置了解hashTable【string】【zset】【hash、set】【list】【bitmap】
2024-06-06 21:00:40 940
原创 ######## mysql各章节终篇索引 ########
####【终篇】mysql 事务及其实现 ####-CSDN博客https://blog.csdn.net/chushoufengli/article/details/107283914 #### innodb中各种SQL语句 加锁分析 ####_innodb select语句会加锁么-CSDN博客 #### innodb中的更新语句,执行流程 ####_innodb在执行更新操作时是查询后才做吗-CSDN博客#### innodb中的更新语句 在不同隔离级别下的加锁分析(主要看RR级别) ####_inn
2024-06-05 18:13:55 278
原创 #### 递归、回溯、dfs、动态规划、贪心、分治
【递归】递归就是自我调用,经常作为一种编程的实现方式,比如题主问题中的DFS 、动态规划、回溯法都可以用递归来实现,当然也可以用非递归来实现。很多时候一个概念也可以用递归的方式来定义(比如gnu)。【回溯】回溯是一种通用的算法,把问题分步解决,在每一步都试验所有的可能,当发现已经找到一种方式或者目前这种方式不可能是结果的时候,退回上一步继续尝试其他可能。很多时候每一步的处理都是一致的,这时候用递归来实现就很自然。【dfs】当回溯用于树的时候,就是深度优先搜索。
2024-05-14 13:29:45 350
转载 向量召回 ES
当用户的症状描述转化为一个向量时候,这时候即可从Es中进行搜索即可,在搜索的时候,需要使用Es的script_score的query,在query的scrip脚本中,将用户的向量放到查询语句的参数中,即可进行搜索,这里的搜索不是简单的文本匹配了,而是进行了语义层面的搜索。该向量具有表达一个疾病的含义,其是对疾病描述的embedding,在后续匹配过程中,只需要将用户输入的向量和ES中的向量进行匹配,即可找到最相关的向量。由于数据涉及到隐私,这里不进行提供,仅仅在源码中提供了数据的格式,方便跑通程序。
2024-04-18 21:57:50 399
转载 #### linux安装mysql ####
这里也有一个坑,centos7的防火墙已经更改为了firewall而不再是iptables,当然你想要改回来也可以,不过我觉得没必要,这里就不讲诉具体操作了,如果感兴趣可自行百度。完成了以上操作我们就可以在linux上来操作mysql了,但是如果我们想要远程访问的话还需要对外开放mysql的3306端口,或者直接关闭防火墙。(2)上图有是因为我之前已经装过了,如果你的是刚装的centos7的话,应该是没有的,有的话也没事,我们使用下面的命令强力删除即可。可以通过查看开放的端口,判断自己是否成功。
2023-04-16 11:56:21 287
原创 promQL
(2)[]内的是指定时间跨度,可以5m,[$__rate_interval]指看板选中的时间跨度。(4)rate(xxx[5m])指5m内xxx指标每秒的数值,sum指5m内每秒数值都展示。(1){}内的是指定label,$api指当前看板选中的api。(3)by后是分组依据。
2023-03-19 14:31:53 223
原创 mac安装开发工具:clipy、iterm2、go、brew、mysql、redis、wget等
(1)下载(2)打开安装程序进行安装,并设置账号密码(3)安装ok后,可在系统设置中看到并管理(4)配置环境变量(5)连接mysql -h127.0.0.1 -P3306 -uroot -p密码。
2023-03-05 15:26:33 972
原创 mac安装brew
安装/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"环境变量echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profileecho 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc sourc
2023-02-14 15:25:06 128
转载 #### protoc ####
以上述内容为例,假设我们有一个共用的 proto 文件 common.proto,此时 greeter.proto 如果想引用里面的message,就可以使用 import 关键字进行导入。参数针对的是protobuf,是proto文件的命名空间,它的作用是为了避免我们定义的接口,或者message出现冲突。参数是用来指定 protoc-gen-go 插件的工作方式和Go代码的生成位置,而上面的写法正是表明该插件的工作方式。的写法是,参数之间用逗号隔开,最后加上冒号来指定代码的生成位置,比如。
2023-02-14 15:17:47 1189
转载 es空间检索
方案优化的探索是没有没有止境的,Lucene的核心工程师 Michael McCandless受到论文《Bkd-Tree: A Dynamic Scalable kd-Tree》启发,基于BKD tree再次升级了地理位置数据索引建模和查询功能。在前面的版本中,对于数值区间查询的处理思路本质上都是term匹配,通过前缀实现了一个term管理一个区间,从而降低了区间查询需要遍历的term数量。搜索的时候,就不再是像Quadtree从整个世界开始定位,而是基于当前的点集合形成的空间来查找。
2023-02-02 17:39:22 678
原创 #### 距离的存储/检索/排序 ####
例如:东圃幼儿园的GeoHash是wtw3ued9m,查询1KM内的幼儿园时, 使用SELECT * FROM xxx WHERE 存储GeoHash的字段 like 'wtw3ued%';Geohash算法是一种地址编码,它能把二维的经纬度编码成一维的字符串,存到mysql的一列string类型即可,查询时计算处置后再查询。根据维基百科的球面计算公式,根据圆心坐标计算正方形四个点的坐标,查询正方形内的目标点。有误差,索引利用率不高,不易缓存,距离无序。缺点:查询语句长,索引效率差。有误差,边界8区问题。
2023-02-02 17:31:16 249
转载 各种空间索引方案对比
redis,一个功能强大、效率极高的缓存数据库(或许已经不仅仅是缓存数据库了),已经成为类似于关系存储型数据库在各个项目中不可或缺的组件了。首先考虑它是因为它的效率有保障,而且项目中几乎必备,运维代价很低。Redis 的 空间索引采用 GeoHash 原理,配合集合存储,查询效率接近 log(N)。Redis 3.0 以上版本支持空间索引,新项目不必考虑这些,而一般的老项目可能就需要升级 Redis 了,另外 PHP 中可能还要升级 Redis 的扩展,以支持 Redis 的空间索引函数。
2023-02-02 17:28:21 649
转载 #### grpc-go、grpc-java、brpc-cpp线程模型对比 ####
概括仅做个人备份,浏览请看原文概括三者都实现了一套称为的线程模型(主要使用),只不过他们的实现方式不一样:(1)grpc-go 基于 go语言原生的gmp模型(2)grpc-java 基于 netty的线程模型(3)brpc-cpp 基于 brpc-cpp自己写的一套线程模型。
2023-01-28 16:20:31 468
转载 #### protobuf数据序列化与json或xml数据序列化的传输效率的对比 ####
转自:https://juejin.cn/post/7034046510643806238仅做个人查阅及备份用途,浏览请看原文。当对 Protobuf 有了基本的认识后,就会明白了 Protobuf 序列化的数据会比 JSON、XML 传输效率更高。那为啥会高呢?本篇就带着这个问题一探究竟。
2023-01-28 15:44:13 758
转载 golang Stdout 和 Stderr 日志
转自 http://events.jianshu.io/p/ac89b3e8c65a 仅做个人备份,浏览请看原文。
2023-01-19 16:48:58 1417
原创 git refs/for 命令
而与之相对的refs/heads不需要cr。这个不是git的规则,而是gerrit的规则,gerrit是一种免费、开放源代码的代码审查软件。origin : 是远程的库的名字,可以用具体地址,也可以用本地记录的origin常量来表示。HEAD: 一个特别的指针,指向你正在工作的本地分支的指针,可以把它当做本地分支的别名。git pull 远程仓库地址 refs/changes/69/106040069/5。git push :
2023-01-07 17:25:54 1313
转载 PHP中empty和isset的区别
isset 函数虽然也会检测给定变量是否为 NULL 的情况,但更主要的目的用于检测给定目标参数是否设置。empty 主要用于:检测给定参数目标是否是“空值”。isset 主要用于:检测给定参数目标是否设置。
2023-01-06 14:57:45 265
原创 mac配置
开发软件:iterm2、vscode、goland、postman。软件:google chrome、微信。环境:go、git、lazygit。其他软件:clipy。
2022-12-26 14:48:14 111
原创 gitignore
gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。需要先把本地缓存删除,改变成未track状态,即取消add。例如忽略.idea文件夹(位置和.gitignore文件目录同级),则在.gitignore文件内新建一行.idea/。
2022-12-21 10:42:01 67
转载 Mac Vim 移动光标 快捷键
1、移动到行尾"$",移动到行首"0"(数字),移动到行首第一个字符处"^"6、移动光标到屏幕顶端"H",移动到屏幕中间"M",移动到底部"L"5、跳到第n行"ngg" 或 "nG" 或 ":n"4、移动到文档开始"gg",移动到文档结束"G"3、移动到下一个词"w",移动到上一个词"b"2、移动到段首"{",移动到段尾"}"7、移动到上次编辑文件的位置 "`"
2022-12-20 20:22:59 828
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人