自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 原型模式(prototype)

为了实现深复制,需要采用流的形式读入当前对象的二进制输入,再写出该二进制数据对应的对象。浅复制:将一个对象复制之后,生成一个新的对象,新对象的所有成员变量(基本类型或引用类型)都含有与原有对象相同的值,如果原有对象的成员变量是基本数据类型,就会将这个变量的值复制一份到新对象里面,如果原有对象的成员变量是引用数据类型,那么这个引用指向的对象不会新生成一份,而是,在新对象里面的这个引用与原有对象的引用指向的是同一个对象。所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。

2024-09-29 16:55:07 647

原创 python模块之getopt

元组的列表,第二个是args剥离短选项及其参数和长选项及其参数之后剩余的参数列表。类似,但默认使用GNU风格的选项解析模式,这意味着选项参数和非选项参数可以混合,而。前缀的选项,value表示该option对应的参数,可以为空字符串表示无参数。要解析的参数列表,但不包括当前执行的python脚本名称,一般等同于。如果不需要短选项,可以设置为空字符串。,同样会在遇到第一个非选项参数时停止解析。表示需要给定参数,不支持可选参数。要识别的短选项字符串,如果后接。传递了值给不需要参数的长选项。

2024-09-25 17:52:39 579

转载 装饰器模式二

【代码】装饰器模式二。

2024-09-24 15:09:59 37

转载 Kerberos认证流程详解

在Windows的kerberos认证过程中,Client将自己的信息发送给KDC,然后KDC使用krbtgt用户的Hash作为密钥进行加密,生成TGT。白银票据不同于黄金票据,白银票据的利用过程是伪造 TGS,通过已知的授权服务密码生成一张可以访问该服务的 TGT,因为在票据生成过程中不需要使用KDC,所以可以绕过域控制器,且很少留下日志。Kerberos 作为一种可信任的第三方认证服务,是通过传统的。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址 的信任,不要求网络上所有主机的。

2024-09-23 18:37:13 90

原创 设计模式推荐网站

以及腾讯云社区和阿里云社区等的文章。

2024-09-23 17:19:04 275

转载 装饰器模式一

装饰器模式(Decorator Pattern)是一种结构型设计模式,它可以在不改变现有对象的结构的情况下,动态地给对象增加一些额外的功能。装饰器模式通过创建一个包装对象(即装饰器)来包裹真实对象,并在保持真实对象的接口不变的前提下,为其提供额外的功能。装饰器模式可以将不同功能的单个模块规划至不同的装饰器类中,各装饰器类独立自主,各司其职。客户端可以根据自己的需求自由搭配各种装饰器,每加一层装饰就会有新的特性体现出来,巧妙的设计让功能模块层层叠加,装饰之上套装饰,最终使原始对象的特性动态地得到增强。

2024-09-23 16:51:40 78

转载 @Qualifier

Spring 中 @Qualifier 注解还能这么用?_qualifier注解的使用方法-CSDN博客

2024-09-23 16:47:05 16

转载 什么是类图?

在类图中一共包含了以下几种模型元素,分别是:类(Class)、接口(Interface)、依赖(Dependency)关系、泛化(Generalization)关系、关联(Association)关系、聚合关系(Aggregation)、组合关系(Composition)和实现(Realization)关系。依赖关系还可以再细分为5种类型,分别是绑定(Binding)依赖、实现(Realization)依赖、使用(Usage)依赖、抽象(Abstraction)依赖和授权(Permission)依赖。

2024-09-20 15:44:24 34

转载 建造者模式

什么是建造者模式,来这篇文章让你彻底通透——针对设计模式的建造者模式-腾讯云开发者社区-腾讯云

2024-09-20 15:02:39 64

转载 单例模式(Singleton Pattern)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。一个全局使用的类频繁地创建与销毁。当您想控制实例数目,节省系统资源的时候。判断系统是否已经有这个单例,如果有则返回,如果没有则创建。构造函数是私有的。1、一个党只能有一个书记。2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。

2024-09-20 09:11:34 58

原创 Spark task 数量超 10w 治理参数

通过调大 spark stage 中单个 task 读的 split 大小来减少 task 数量。

2024-09-19 17:21:18 142

原创 windows环境下安装python第三方包

2.如果没有搜索到,点击 “Open Terminal” ,即在DOS下打开python虚拟环境,如果要安装 segno,则 pip install segno 进行安装。1. 安装更新python第三方包,打开Anaconda,在右侧的搜索需要的python包并进行安装;python环境下,通常通过Anaconda来管理多个python环境;即通过Anaconda创建python不用的虚拟环境;3. python更改第三方镜像。

2024-09-19 16:32:51 249

转载 抽象工厂模式

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决接口选择的问题。系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。在一个产品族里面,定义多个产品。在一个工厂里聚合多个同类产品。工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。

2024-09-19 15:35:31 25

原创 python 异步执行 apply_async 方法

中间遇到一个棘手的问题,在python线程池中,使用异步非阻塞 apply_async() 方法时,一直无法获取到异步子线程执行的结果,最后通过查官方API 使用ready()方法可以拿到子线程的运行结果。调度来进行进程切换,即多个进程并行执行,提高程序的执行效率。1.项目需要读取hive表数据,并对返回的数据进行解析;是异步非阻塞式,不用等待当前进程执行完毕,随时跟进。2.返回数据,根据库、表,对其进行 下一步执行;

2024-09-13 15:22:46 428

原创 Java 自定义注解

像平时用到的 springboot、mybatis 等框架提供了许多的注解,免去了许多配置文件的繁琐工作,大大简便了开发,Java 提供了自定义注解的功能,这里就先展示简单的例子。1、注解的作用注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理,例如标注在方法上可以实现接口权限的校验。使用场景:自定义注解+拦截器或者 AOP。声明方式2、注解的元素类型。

2024-09-12 14:32:49 303

原创 @ApiOperation

ApiOperation 注解有许多属性,我们可以使用这些属性来详细描述我们的 API。value:这是一个简短的描述,通常用于 API 列表中的标题。例如,"获取用户列表" 或 "创建新用户"。notes:这是一个更详细的描述,通常用于 API 列表中的详细描述。你可以在这里提供更多关于 API 的信息,例如,它的用途、如何使用它、它的限制等。response:这是 API 的响应类型。你应该使用你的 API 实际返回的类型,而不是 ResponseEntity 或其他包装类。

2024-09-12 09:31:50 897

转载 BitMap及其在ClickHouse中的应用

https://zhuanlan.zhihu.com/p/480345952

2024-09-04 16:45:17 178

转载 Hive bitmap udf

Hive bitmap udf - 简书

2024-09-04 16:42:23 243

原创 hive on spark 合并小文件

最近在做用户画像相关的数据开发,在hive中做行转列的过程中,每个标签即tag在写入hive表时,有大量的小文件生成,通过增加参数解决了小文件过多的问题,但是在完成特殊要求--(因后续需要同步ck,ck也有个为解决的问题,超过200M可能会丢失数据,故需要将hive在行转列的时候,合并的小文件在200M一下,方便后续ck数据同步)时,又产生了新的问题,通过hive合并小文件的参数,总是有些tag的数据生成的文件在200M以上;增加此参数,才会在hive on spark模式中进行小文件合并。

2024-09-04 09:32:12 652

原创 pyhton - PyHive

这里,我们使用 PyHive 连接到 Hive 数据库,并使用 Pandas 读取了数据库中的数据。这里,我们使用 PyHive 连接到 Hive 数据库,并使用 SQL 查询语句获取数据集的总行数。这里,我们使用 pandas.read_sql 方法将查询结果转换为 Pandas DataFrame,并将其赋值给名为 df 的变量。这里,我们创建一个名为 connection 的连接对象,并将其连接到本地的 Hive 数据库上。请注意,你需要提供正确的连接参数以连接到你的Hive。

2024-08-30 14:07:53 1067

转载 Spark应用 | Hive On Spark性能调优

我们公司yarn node节点的可用资源配置为:单台node节点可用资源数:核数33cores、内存110G。Hive on Spark任务的基础配置,主要配置对象包括:Executor和Driver内存,Executor配额,任务并行度。Spark系统架构。

2024-08-28 17:47:40 146

原创 hivesql -行转列 lateral view explode

b.再行转列(此时所有的字段都存放到一列中了,相当于求该列有值的情况下,哪个客户的记录数最多的问题了)tips:用户画像标签有500多个分散在30多个表中,即一个用户有500多个标签属性。例如有三张表a1,a2,a3,每张表的字段不同(但是客户数是一样的id)拿到一个需求:需要找出50个客户使得用户画像标签尽可能丰富(有值的)结果如下:得到每个id 对应的有值的字段。找出这三张表中标签字段最丰富的客户。a.先将要比较的字段拼接成一行。

2024-08-23 15:59:42 41

原创 完美解决ERROR: Could not find a version that satisfies the requirement <软件包> (from versions: none)问题——

例如:(env_01) C:\Users\Administrator>pip install -i PooledDB http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com。pip install <软件包> -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com。有的话,直接使用vi命令编辑~/.pip/pip.conf文件就好.

2024-08-21 09:11:22 4063

原创 clickhouse_driver

通过本教程,你应该对如何使用clickhouse_driver模块与ClickHouse数据库进行交互有了基本的了解。clickhouse_driver提供了强大的功能,使你能够方便地从Python程序中查询和分析ClickHouse中的数据。随着你的使用深入,你将能够更充分地利用这个库来满足你的数据分析需求。• 根据你的ClickHouse配置,可能需要调整连接参数(如主机、端口、用户名和密码)。• 在处理大量数据时,注意内存和性能的影响,可能需要调整查询或使用更高效的数据检索方法。

2024-08-20 20:47:08 678

原创 Anaconda 更新第三方包

1. 找到Anaconda 上python运行的虚拟环境,我的是env_01。2.点击选择,Open Terminal,即打开dos窗口。

2024-08-20 20:40:39 167

原创 Clickhouse中bitmap使用指南(ck位图)

SELECT arr AS offset FROM (SELECT bitmapToArray(bit) as arr FROM 位图表 WHERE ... LIMIT 1) ARRAY JOIN arr。SELECT offset FROM 明细表 WHERE offset IN (SELECT bitmapToArray(bit) FROM 位图表 WHERE ...)链接:https://www.jianshu.com/p/cfb2de57f161。7、查询分布式表里的bitmap,合并成一个数组。

2024-08-20 18:06:55 392

原创 ​基于MRS-ClickHouse构建用户画像系统方案介绍 ​

针对用户画像场景中的海量标签查询,传统的方案存在灵活性不足、资源消耗大、缺少SQL接口开发难度大等问题。基于华为MRS-ClickHouse,可以非常方便的构建位图索引,实现海量标签数据的实时检索。MRS-ClickHouse让开发成本大幅降低,标签查询更快响应,让精准营销更便捷。华为云FusionInsight MRS云原生数据湖已广泛应用于政府、金融、运营商、大企业、互联网等行业,携手800+合作伙伴,服务于全球60+国家和地区3000+政企客户。

2024-08-20 18:03:26 652

转载 Clickhouse+Bitmap实现用户画像中海量用户的圈选

虽然我们用bitmap来优化圈客,但是并不是所有的画像标签都适合转换为BitMap,只有标签值可枚举的,并且数量有限的标签才适合转换为BitMap来支持人群圈选。我们可以看出,使用了画像宽表圈人的逻辑其实就是从明细数据中找到满足条件的用户并最终构建人群,也就是我们筛了多少标签就在对应的表后就对应的条件,如果海量标签的话,这个也会存在一定效率低下,这里我们可以引进bitmap的实现方式来优化,使用BitMap进行圈人的话,会对用户进行预聚合,在人群圈选时直接使用聚合后的结果进行计算。4.混合模式圈客实现。

2024-08-20 16:18:57 330

原创 漫画:什么是Bitmap算法?

同样是刚才的例子,我们给定90后用户的Bitmap,再给定一个全量用户的Bitmap。6.由于400003 < 400063,因此新ID 400003的正确位置就在当前RLW(Word4)的后方普通Word,也就是Word5当中。2. 把整型数4存入bitmap,对应存储的位置就是下标为4的位置,将此bit置为1。4. 把整型数1存入bitmap,对应存储的位置就是下标为1的位置,将此bit置为1。5. 把整型数3存入bitmap,对应存储的位置就是下标为3的位置,将此bit置为1。

2024-08-20 16:06:34 931

原创 Elastic Search创建索引

PUT /索引名},},

2024-08-09 11:46:20 124

原创 Elastic Search常用查询

"聚合查询名称(任意如 sum_字段名称")": {"聚合查询名称(任意如 sum_字段名称)": {"field": "字段名称.keyword","field": "字段名称""field": "字段名称""分组名称如 groupByCode": {GET 索引名/_search。GET 索引名/_search。GET 索引名/_search。4.group by 分组查询。GET 索引名/_search。

2024-08-07 09:36:31 317

原创 mongodb

db.getCollection('集合名').update({'字段名':{$exists:true}}, {$unset:{'字段名':''}}, {multi:true})db.getCollection('集合名').find({'字段1':{$exists:false},'字段2':{$exists:true}}).count()db.getCollection('集合名').update({'字段名':‘原属性’},{'$set':{'字段名':‘目标属性’}},{multi:true})

2024-08-06 16:27:53 666

原创 hive load csv 文件

3.load data local input '路径' into table table_name partition(dt='***');`***` bigint COMMENT '个数')COMMENT '测试表'

2024-07-27 14:17:43 158

转载 设计模式简介

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一

2024-07-10 09:26:53 992

原创 单例模式--创建型模式

为了避免线程的上下文切换消耗大量时间,如果对象已经实例化了,我们没有必要再使用synchronized加锁,直接返回对象。其中,A2和A3的重排序,将导致线程B在B1处判断出instance不为空,线程B接下来将访问instance引用的对象。此时,线程B将会访问到一个还未初始化的对象(线程不安全)。不满足原子性或者顺序性,线程肯定是不安全的,这是基本的常识,不再赘述。我们经过2.3的讨论知道new一个对象的代码是无法保证顺序性的,因此,我们需要使用另一个关键字volatile保证对象实例化过程的顺序性。

2024-07-10 09:14:26 399

转载 CommandLineRunner和ApplicationRunner:用法、区别和适用场景详解

解析Spring Boot中的CommandLineRunner和ApplicationRunner:用法、区别和适用场景详解-CSDN博客

2024-07-04 14:10:24 26

转载 CommandLineRunner

CommandLineRunner解释学习-CSDN博客

2024-07-04 13:52:48 25

原创 聚簇索引和非聚簇索引

如果想在表上定义 、很多索引,则争取尽量把主键定义得小一些。InnoDB 不会压缩索引。文字符的ASCII码作为比较准则。聚集索引这种实现方式使得按主键的搜索十分高效,但是辅助索引搜索需要检索两遍索引:首先检索辅助索引获得主键,然后用主键到主索引中检索获得记录。不同存储引擎的索引实现方式对于正确使用和优化索引都非常有帮助,例如知道了InnoDB的索引实现后,就很容易明白:1、为什么不建议使用过长的字段作为主键,因为所有辅助索引都引用主索引,过长的主索引会令辅助索引变得过大。再例如,

2024-05-17 12:17:17 871 1

原创 大数据权限实践

2024-04-19 15:30:50 67

原创 metastore和hdfs事务一致性设计

解决高并发情况下,表删除和更改时,确保hive侧metastore和hdfs侧事务一致性

2024-04-02 15:35:16 781

springboot项目demo

springboot小例子,访问路径127.0.0.1:8088/demo/demoController

2018-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除