- 博客(21)
- 收藏
- 关注
原创 用户画像构建方法调研和初步解决方案
近期,由于项目需求,需要构建一套消费者的用户画像。这是一套偏大数据处理和实时数仓领域的解决方案,因为之前对这个领域并不熟悉,因此做了下前期的方案调研和初步的解决方案设计,本文将这个过程做个记录总结,希望能够对同样第一次接触这个领域,需要入门的同学有所帮助。一. 用户画像构建方法调研在方案调研前期,主要是调研业界现有的主流用户画像构建方案。通过网上的搜索和学习,发现用户画像的构建方案大都大同小异,其中,《用户画像:方法论与工程化解决方案》 一书对用户画像做了较为全面的整理和概括,因此,笔者前期主要是快速学
2020-12-16 19:57:44 3784 2
原创 row_number() over函数学习
最近在项目中遇到一个这样的需求:有一个流量图,需要统计从A节点流出的流量,以及每一个下游节点收到的流量,用于统计比例,每一条流量的边作为sql的一行进行存储。如下面的sql所示:create Table `test_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id,系统自增', pre_node_name varchar not null comment '上游节点名称', pre_node_out int not null comment
2020-06-30 20:28:08 290
原创 MySQL索引学习
最近,在项目中要对一个mysql表建立唯一索引,但是发生了一系列自己意料之外的现象,因此趁机巩固下mysql索引相关的知识。1. 唯一性约束不起作用首先,本文中所用的mysql版本是5.7.14:select version();得到的结果:5.7.14.6.3-20171229-log我对我的表建立了一个唯一索引,包含几列:CREATE UNIQUE INDEX UK_IDX_TEST_A_B_C ON testTable (A, B, C);这里A、B、C都有可能为NULL,但是不
2020-06-30 09:27:55 212
原创 代码整洁之道读书笔记
为什么要保持代码整洁?高大上:软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关;而代码质量与其整洁度成正比。软件质量 <=> 代码质量 <=> 整洁度。如果将软件比作一座宏大的建筑的话,那么宏大建筑中最细小的部分,比如关不紧的门、有点儿没铺平的地板,甚至是凌乱的桌面,都会将整个大局的魅力毁灭殆尽。这就是整洁代码之所系。贴合实际:代码混乱的代价:随着混乱的增加,团队生产力持续下降,趋向于零。(混乱增加,生产力下降 -> 管理层增加人手,期望提升生产力
2020-06-23 14:17:58 413
原创 浅谈Python C扩展
很多时候,我们需要写Python的C扩展,例如为了提高速度,用一些C的库等等。本文首先整理了python调用C扩展以及在C中调用python的方法;然后重点分析了CPython API中的引用计数问题。 在python应用中,为了对性能进行优化,我们常常需要写python的C扩展,将一些关键代码用C进行重写以提高性能;同时,我们也可以用在C中调用python的方法,例如写回调函数等。不管是p
2018-01-31 00:03:26 19576 4
原创 VS2015编译python 3.6.4源码
用了很久python, 最近决定在windows下编译python的源代码,还是遇到了几个坑,花了几个小时==谨记此文,希望为后来者避开这些坑。首先,我们从官网下载python 3.6.4的源代码,选择Gzipped source tarball 或者 XZ compressed source tarball然后,我们解压开源码,进入到PCbuild目录,里面有VS的工程文件pcbuild...
2018-01-23 23:54:24 2963
原创 CMake入门学习笔记
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译)过程。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
2018-01-09 21:13:42 916
原创 python调用C++之pybind11入门
python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单,现在我们就简单记下Pybind11的入门操作。1. pybind11简介与环境安装pybind11是一个轻量级的只包含头文件的库,它主要是用来在已有的 C++代码的基础上做扩展,它的语法
2018-01-06 14:38:14 49200 12
原创 Python模块搜索路径
最近在学习python的C++扩展(pybind11),写完一个扩展模块之后,想要在自己的环境中以后都能自动导入这个模块,而不用手动去添加路径(修改sys.path)应该怎么弄?以前最开始学习Python的时候看过这块内容,然而时间长了总会记忆不清,就再回顾了一遍。 概括来说,Python的自动搜索路径是这样的:程序的根目录PYTHONPATH环境变量设置的目录标准库的目录任何能
2018-01-06 13:21:33 17096 2
原创 python 脚本通用优化技巧
不知不觉用python已经一年半有余,学而不思则罔,决定花些时间好好总结下python脚本中的一些通用优化技巧,让自己在工作中少走点弯路。有些优化技巧并不只限于python,为了方便,一起写在本文中。
2017-12-26 13:44:14 2193
原创 python slots初探
1. slots的用法1.1 基本用法之前学习python的时候,知道使用slots能够节省内存,然而却没有在实际项目中使用过,而且也不清楚为什么能够节省内存?能够节省多少内存?记忆总是那么脆弱,那么干脆来个彻底的探索,并记录之。 首先,我们看看slots的基础用法:class A(object): __slots__ = ['name', 'attr'] d
2017-12-07 20:27:14 1631
转载 python编程的中文问题
字符编码问题是每个程序员必定会遇到的,同样,python的中文问题一直是一个非常令人头疼的问题,本文将介绍Python中涉及到中文细节问题。建议在阅读这篇文章之前,先前往字符编码详解这篇文章了解相关字符编码的原理细节。str和Unicode在Python中有两种默认的字符串:str和Unicode:str字符串本质上是一个字节流,是原字符经过编码之后的一个个字节
2016-06-15 16:09:06 5264
原创 DirectX 9的安装与配置
最近刚开始学Direct3D,首先要安装DirectX并配置环境,主要包括三个步骤:一、安装DirectX SDK二、配置环境三、链接.lib文件,运行示例四、Error Code s1023的解决方案一、安装DirectX SDK首先登陆Microsoft Download Center下载最新版本的DirectX SDK: https://www.microso
2016-01-05 13:15:04 7503 1
转载 size_type、size_t、different_type以及ptrdiff_t
size_type 在标准库string类型中,最容易令人产生误解就是size()成员函数的返回值了,如果不深入分析的话,大多人都会认为size()的返回值为int类型,其实不然。事实上,size操作返回的是string::size_type类型的值。 那怎样理解size_type这一类型呢,我引用《C++ Primer》一段原文简单解释一下: string类类型和许多其他
2015-10-20 22:37:44 527
转载 STL map和unordered_map的区别
今天看到 boost::unordered_map, 它与 stl::map的区别就是,stl::map是按照operator而boost::unordered_map是计算元素的Hash值,根据Hash值判断元素是否相同。所以,对unordered_map进行遍历,结果是无序的。用法的区别就是,stl::map 的key需要定义operator最后,说,当不需要结果排好序时,
2015-08-26 20:28:57 1048
转载 数据库索引详解
一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会
2015-08-26 15:16:16 439
原创 数据库基础知识复习
由于很久没有用数据库相关的知识,突然用起来好多东西还是有点记忆模糊,就复习了下SQL的基础知识,看的书是日本人MICK写的《SQL基础教程》,该书非常简单,适合对数据库完全不知道的入门教程,里面甚至没有范式以及索引的介绍。下面是自己在看的过程中记录下的对于自己来说比较容易遗忘的知识点。《SQL基础教程》1、当聚合键中包含NULL时,也会将NULL作为一组特定的数据。2、除了select
2015-08-25 10:52:19 1023
转载 http中get方法和post方法的区别
两种最常用的 HTTP 方法是:GET 和 POST。什么是 HTTP?超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息
2015-08-24 16:33:37 477
转载 ASCII,Unicode和UTF-8
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与
2015-08-12 16:03:16 354
转载 C++四种显示转换
C++ 是一门强类型转换,因此不同自定义类型之间的转换必须进行显式转换,当然基础数据类型也可以进行显式转换。short a = 10;int b;b = (int) a; // c-like cast notationb = int (a); // functional notation以上是基础数据类型之间进行传统的强制类型转换。这种强制类型转换可以在两种指向不同类型对象的
2015-07-24 20:10:17 777
转载 数据库基础复习之左连接和右连接
关于左连接和右连接总结性的一句话:左连接where只影向右表,右连接where只影响左表。左连接:select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID左连接后的检索结果是显示tbl1的所有数据和tbl2中满足where 条件的数据。简言之 Left Join影响到的是右边的表右连接:select * from
2015-07-24 17:22:57 357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人