
工作之行
文章平均质量分 77
shengjk1
零基础转码,头部大厂程序员,努力构建 通俗易懂的、好玩的编程语言教程。关注我,习得转码经验!翱翔在编程的海洋里!只学习最值得学的内容!
展开
-
SparkSQL Join的源码分析
本报告详细介绍了SparkSQL中Join的实现方式,包括Broadcast Join、Hash Join(包括Shuffle Hash Join)和Sort Merge Join。通过分析它们的实现原理、工作流程和适用场景,我们可以更好地理解SparkSQL中Join操作的内部机制。在实际应用中,选择合适的Join策略对于提高SparkSQL查询性能至关重要。根据表的大小、数据分布和内存资源选择合适的Join策略,可以显著提高Join操作的性能。原创 2025-04-15 19:33:07 · 520 阅读 · 0 评论 -
SparkSQL Join深度解析:三种实现方式全揭秘
本文全面剖析了SparkSQL中Join操作的三种主要实现方式:Broadcast Join、Hash Join(包括Shuffle Hash Join)和Sort Merge Join。详细阐述了每种Join的实现原理、适用场景、优缺点以及实现细节。同时,结合表大小、数据分布和内存资源等因素,给出了Join策略选择的建议,并提出了性能优化措施,包括选择合适的Join策略、使用Join提示、调整配置参数、优化数据分区、合理管理内存以及处理数据倾斜等。原创 2025-04-15 17:15:41 · 1063 阅读 · 0 评论 -
一文搞懂 Iceberg 的 branch 和 tags
本文介绍了 Apache Iceberg 的分支(Branch)和标签(Tag)功能,通过类 Git 的机制解决大数据场景下的数据版本管理和数据隔离问题,实现 ACID 事务、隔离实验和精准回溯。同时提到 Nessie 作为多表事务管理的解决方案。原创 2025-04-10 14:53:55 · 931 阅读 · 0 评论 -
快速搞懂湖仓一体的发展历程:错过它,你将失去下一个大数据风口!
本文介绍了数据湖仓一体架构的发展历程和优势。从OLAP数据库及其限制出发,阐述了第一代数据仓库、基于Hive的数据仓库、MPP架构和其他计算引擎、数据湖、数据湖表格式以及数据湖仓的出现和发展。最后总结了数据湖仓在云环境中的优势,如存储和计算资源的解耦,提高了灵活性和成本效益。原创 2025-04-08 18:40:47 · 903 阅读 · 0 评论 -
JuiceFS vs HDFS,最简单的 JuiceFS 入门
本文详细对比了 JuiceFS 和 HDFS 两种分布式文件系统。JuiceFS 是一种新型的云原生存储解决方案,具有 POSIX 兼容、HDFS 兼容、S3 网关支持、强一致性、高性能、数据安全等核心特性,适用于云原生环境、AI 训练和海量小文件管理等场景。其架构基于存算分离,元数据存储在独立数据库中,数据存储在对象存储中,支持弹性扩展和分布式事务。JuiceFS 在元数据操作、数据读写性能、缓存机制等方面均优于 HDFS,同时通过纠删码和加密技术降低了存储成本并提升了数据安全性。相比之下,HDFS 是传原创 2025-04-02 17:11:14 · 871 阅读 · 0 评论 -
一文搞懂Flink 的 Materialized Table:简化数据管道的利器
Flink 的 Materialized Table 为简化数据管道的开发和管理提供了一种强大的解决方案。它通过统一流批处理、降低开发成本、提高数据处理灵活性等方式,帮助用户更高效地应对复杂的数据处理需求。虽然目前还存在一些限制,但随着技术的不断进步和社区的努力,这些问题有望得到解决。对于需要构建高效、灵活数据管道的开发者来说,Materialized Table 是一个值得深入探索和应用的技术。原创 2025-03-25 13:48:44 · 1039 阅读 · 0 评论 -
掌握 Apache Iceberg 的关键:Equality Delete 和 Position Delete 的原理与应用
Equality Delete 是一种基于字段值的删除方式。它通过指定某些字段的值来标记需要删除的行。简单来说,就是告诉系统:“所有满足这个条件的记录都要被删除。” 例如,如果你想删除所有id=3的数据,Equality Delete 就会在删除文件中记录id=3这个条件。Position Delete 是一种基于数据文件位置的删除方式。它通过指定数据文件的路径和行号来标记需要删除的行。简单来说,就是告诉系统:“在某个文件的第几行,这个记录要被删除。原创 2025-03-24 19:18:43 · 809 阅读 · 0 评论 -
Flink 水位线全解析:从原理到实战,彻底掌握事件时间处理!
本文深入探讨了 Apache Flink 中的水位线(Watermark)机制,特别是 WATERMARK FOR event_time AS event_time 的语法及其在实际应用中的重要性原创 2025-03-17 14:48:08 · 502 阅读 · 0 评论 -
Flink 中RocksDB 为什么将每个键和值的限制为 2^31 字节
RocksDB 的 JNI 桥接 API 对键值大小限制为 2³¹ 字节(约 2GB),其根本原因是 **JNI 接口设计中的 `jint` 类型限制**。JNI 在传递键值数据长度时使用 `jint`(32 位有符号整数),最大值为 2³¹−1,导致无法支持更大的数据。尽管 RocksDB 的 C++ 原生 API 支持更大的键值,但 JNI 桥接层出于稳定性和兼容性考虑,显式约束了键值大小。Java 数组的最大长度(`Integer.MAX_VALUE`)与此限制一致,但并非直接原因原创 2025-03-13 19:43:02 · 337 阅读 · 0 评论 -
数据湖出现的背景、现状与未来
本文介绍了数据湖(Data Lake)的概念、功能、架构、优势、挑战以及与数据湖仓(Data Lakehouse)的融合。数据湖是一种用于存储海量原始数据的架构,支持结构化、半结构化和非结构化数据的直接存储和访问,具有可扩展性强、灵活性高、成本效益好以及促进数据民主化的特点。其架构包括数据摄取层、存储层、处理层和访问层,能够支持大数据分析、机器学习等多种应用场景。然而,数据湖也面临数据治理、技能缺口和数据沼泽等挑战。文章还探讨了数据湖与数据湖仓的结合,指出数据湖仓融合了数据湖和数据仓库的优势,能够提供更好的原创 2025-03-12 11:19:04 · 731 阅读 · 0 评论 -
AI编程来了,程序员要失业了?
AI 编程被炒的火热,很多人都在鼓吹,甚至行业内的大厂,吹的最牛逼的就是某阿里 ,其他的公司就不一一列举了。在大模型领域,我不认为阿里会强过 Claude,所以我基于 Claude-3.5-Sonnet,完全沉浸式编码完成一个任务 我通过AI编程完成了第一个实用程序原创 2025-02-28 19:40:14 · 379 阅读 · 0 评论 -
我通过AI编程完成了第一个实用程序
我一直想要开发一些程序,来解决工作生活中的一些困点,但一直没有实施出来,主要是因为GUI不太熟悉,但也不想花费大量的时间来学习这个。其实之前也试图学过 pyQT但后来因为工作的原因,不了了之了。但最近 AI 编程被吹嘘的太厉害了,所以我也想借助AI 的力量来实现我想要的功能,于是乎一款对 word 和 pdf 内容搜索的工具就诞生了。原创 2025-02-28 19:25:14 · 420 阅读 · 0 评论 -
Spark Drive 端的 List 无法获取 Executor 中的数据吗?
文章探讨了在 Apache Spark 中,Driver 端 和 Executor 端 内存隔离的问题,特别是当在 Executor 端 修改 Driver 端 创建的 List 时,修改不会生效的原因。文章详细解释了 Spark 的分布式架构、数据传递机制,并提供了解决方案,如使用 collect、累加器、广播变量等方法来实现 Driver 端 和 Executor 端 之间的数据同步。原创 2025-02-14 19:19:26 · 687 阅读 · 0 评论 -
在Java中,equals()和contains()谁更快
在大多数情况下,equals()方法比contains()更快,主要得益于其快速失败机制(如长度差异或早期字符不匹配)。但需注意:场景适配:如果目标是判断子串存在性(而非完全相等),只能使用contains()。内容复杂度:若比较的字符串完全相等且较长,两者的耗时差异较小。综上,从性能角度优先选择equals()(当满足功能需求时),而contains()适用于子串匹配的特定场景。原创 2025-02-13 13:24:23 · 280 阅读 · 0 评论 -
Python 如何执行字符串代码
本文介绍了在Python中如何使用exec()和eval()函数执行字符串形式的代码,并详细解释了这两种方法的用法、注意事项以及安全性问题。文章还探讨了exec()函数的原理和关键特性,包括命名空间控制和动态性,同时也提醒了使用这些方法时可能面临的安全风险和性能开销。原创 2024-10-24 15:50:38 · 1026 阅读 · 0 评论 -
写给非机器学习人员的 embedding 入门
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:1. 了解大厂经验1. 拥有和大厂相匹配的技术等希望看什么,评论或者私信告诉我!@[TOC](文章目录)# 一、背景目前在实现 NL2SQL 就是将人的自然语言通过 LLMs 的一系列处理,在这个过程中,会把文本向量化后存储到向量数据库中,然后通过向量搜索,这个过程中发现文本 embedding 后,通过向量化搜索效果很是惊人,就跟程序能读懂人的语言一样。于是对 emb原创 2024-08-08 20:13:11 · 891 阅读 · 1 评论 -
解决maven java.rmi.ConnectException: Connection refused to host: 127.0.0.1 错误
本篇文章主要讲述了在使用Idea打开项目时,可能会遇到Maven加载失败的问题,造成这个问题可能是因为DNS配置错误或者防病毒软件或防火墙会阻止与本地主机的连接等原因。文章提供了详细的解决方法,即关闭防火墙或添加白名单。原创 2024-08-08 15:34:37 · 812 阅读 · 0 评论 -
简单了解一下 CPU 和 GPU 的区别
本文介绍了CPU和GPU的历史产生背景,以及它们之间的区别和应用。此外,文章还介绍了如何利用大模型的优势,其中推荐了一个多模型可供选择的工具葫芦AI。原创 2024-08-06 19:49:45 · 1145 阅读 · 0 评论 -
解开基于大模型的Text2SQL的神秘面纱
本文介绍了NL2SQL的实现方式,包括目前比较火的开源项目Vanna、DAIL-SQL以及其他实现方式,同时总结了当前NL2SQL实现方式的优化点。此外,本文还介绍了Text-to-SQL测试集WikiSQL、Spider和BIRD,以及评估模型性能的指标Spider Exact Match和Spider Exact Execution。原创 2024-07-25 15:08:38 · 1445 阅读 · 2 评论 -
Flink 通过 paimon 关联维表,内存降为原来的1/4
本文介绍了如何通过替换维表实现FlinkSQL任务内存占用的优化。作者通过分析Iceberg lookup部分源码,发现其cache的数据会存在内存中,导致内存占用过大。作者将维表替换为paimon,通过分析paimon维表的原理,发现其cache的数据存储在rocksdb中,从而实现了内存占用的降低。原创 2024-05-28 19:59:27 · 1307 阅读 · 0 评论 -
利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%
本文介绍了 Flink 中使用 avatorscript 脚本语言的问题,以及如何通过 CompletableFuture 优化代码来提高 Flink QPS。同时,还介绍了 avatorscript 的使用方法,包括自定义函数、从 Map 中取值、使用 Java 工具类和 AviatorScript 函数。原创 2024-05-24 16:39:02 · 607 阅读 · 0 评论 -
曲线救国:window 安装 docker
本文介绍了Docker的基本概念和在Windows系统上的安装方法,包括下载Docker Desktop、启用Hyper-V、安装Docker Desktop、验证是否安装成功等步骤原创 2024-05-14 20:06:35 · 1027 阅读 · 0 评论 -
sparksql 如何计算上一个自然周和自然月
本文介绍了如何使用SparkSQL内置函数计算上一个自然周和自然月的UV和VV,以及如何在计算时只计算指定时间段内的分区。作者分享了自己的思考过程和解决方案,并提供了详细的代码示例。原创 2024-05-13 19:55:38 · 614 阅读 · 0 评论 -
进一步分析并彻底解决 Flink container exit 143 问题
本文介绍了Java中的Metaspace,以及如何设置Metaspace的大小和增长速度等参数。同时,通过分析GC日志,发现了使用Aviator表达式引擎时可能导致Metaspace内存泄漏的问题,并提供了解决方案。原创 2024-05-09 19:43:10 · 550 阅读 · 2 评论 -
Flink container exit 143 问题排查
文章主要介绍了作者在开发一个基于状态计算各种汇总数据的Flink作业时遇到的问题排查过程。作者一开始遇到报错后尝试调大Flink参数解决问题,但仍出现FullGC严重的情况。经过查看数据量、增大内存和排查后发现是由于Metadata内存分配失败导致的FullGC,最终调大JVM metadata阈值解决了问题。原创 2024-05-08 14:13:56 · 822 阅读 · 0 评论 -
window 安装大模型 chatglm.cpp
文章介绍了在工作中使用的电脑配置、安装组件及模型,并详细说明了安装步骤和运行方法。同时提及了模型量化的重要性和优缺点原创 2024-04-28 15:01:29 · 924 阅读 · 0 评论 -
window 安装大模型 chatglm-6b
有大模型以来一直想尝试通过本地安装大模型,主要的原因是GPT众所众知的原因没有办法通过 API 访问,而国内的所谓的开发平台一方面要么不兼容 openai 的 api 要么就是价格不够友好,要么两者兼有,另外的话,开发平台也有所谓的隐私问题。另外公司内部虽然有已经部署好的开源大模型,但相应的服务中的 Temperautre 或者 Top 都已经被固定了,用起来特别没意思。所以想自己搞一套,喜欢自己说了算。原创 2024-04-27 10:06:49 · 1396 阅读 · 0 评论 -
IP地址 0.0.0.0 和 127.0.0.1之间的区别
文章讲解了0.0.0.0和127.0.0.1的含义及区别,以及在服务器上下文中的应用。通过实例说明了在python django代码中绑定IP时的差异,对于理解网络协议和服务器配置有启发意义。原创 2024-04-25 16:55:22 · 1260 阅读 · 0 评论 -
是时候分清楚python 包:PyCrypto 和 PyCryptodome
今天遇到了一个 python 项目用到了 pycrypto 这个库,但这个库的依赖死活装不上去,有些懵逼,随去 GOOGLE 了一番python 密码学工具包,用来做加解密的,不幸的是最新版本 released: Oct 18, 2013,可今年是 2024年呀,一个正常的 python 包,不可能这么长时间不更新。原创 2024-04-25 10:47:01 · 822 阅读 · 0 评论 -
window Intel(R) 安装 ComfyUI时解决 Torch not compiled with CUDA enabled 问题
文章详细说明了在不支持CUDA的Intel® Iris(R) Xe Graphics系统上安装ComfyUI的过程,包括安装Anaconda、选择合适的PyTorch版本、下载ComfyUI代码,进入ComfyUI目录,以及安装依赖。接着,介绍了如何通过特定的启动选项在CPU上启动服务,特别是禁用CUDA内存分配、使用分裂跨注意力机制,并强调在CPU上执行的可能性和原因。原创 2024-04-22 20:20:54 · 2562 阅读 · 0 评论 -
关于 AssertionError: Torch not compiled with CUDA enabled 问题
文章介绍了如何解决使用 ComfyUI 安装过程中出现的 "AssertionError: Torch not compiled with CUDA enabled" 错误,重点讲解了 CUDA 和 Intel(R) Lris(R) Xe Graphics 的概念,以及解决该错误的具体步骤。原创 2024-04-18 19:56:54 · 2221 阅读 · 0 评论 -
LSM 树:数据库、搜索引擎等的首选数据结构
LSM树是一种算法设计,可以帮助存储海量数据,并通过内存层、磁盘刷新和SSTable的组织方式实现高效写入和读取操作。翻译 2024-04-16 15:18:55 · 203 阅读 · 0 评论 -
关于pandas 无法读取 csv 文件数据的解决方式
本文讨论了使用Pandas读取CSV文件时遇到的问题及解决方法。通过代码演示和相关截图,详细展示了数据错位和取值异常等情况,并最终使用适当的参数设置和处理方法解决了这些问题。原创 2024-04-09 20:17:27 · 2050 阅读 · 0 评论 -
Python是解释型语言,为啥还有 __pycache__ 文件呢?为啥还有.pyc 文件呢?
本文深入探讨了Python的执行模型,解释了Python不同于传统的纯解释型或编译型语言,而是结合了编译和解释的特点。通过介绍Python的字节码和PVM执行过程,文章强调了优化代码和提高性能的重要性,同时指出了dis模块对于理解Python代码执行过程和性能调优的关键性。原创 2024-04-02 17:05:14 · 826 阅读 · 0 评论 -
关于 FastAPI 路径参数,你知道多少?
FastAPI 最核心的之一就是路径参数,今天我们一篇彻底搞 FaST 懂路径参数"}路径操作装饰器中 name 就是路径参数,这里我们也把路径参数name的值作为参数name传递给了路径操作函数say_hello,如果我们运行示例并访问至此我们将跟路径参数相关的,包括路径参数的定义、作用、基本用法和高级用法,就介绍完了。抓紧应用到自己的工作中去吧!原创 2024-03-25 19:15:50 · 1166 阅读 · 0 评论 -
聊一下大模型的函数调用-Function call
本文介绍了大模型的 Function call 功能,包括其作用、GLM-4 如何进行函数调用、代码编写等。同时,文章还提到了如果没有 Function call,类似的问题也可以通过其他方式解决。总的来说,本文是一篇介绍大模型 Function call 功能的入门级文章。原创 2024-03-22 18:55:43 · 7759 阅读 · 10 评论 -
通过 Socket 手动实现 HTTP 协议
在本文中,我们通过使用Socket编写一个HTTP协议,以直观地感受上篇文章中的请求和响应。文章分析了客户端的GET请求和PUT请求的参数,并对服务端的响应参数进行了讨论。最后,文章扩展了内容类型(content-type)的重要性,并通过实例展示了不同类型的数据处理方式。原创 2024-03-21 17:14:07 · 815 阅读 · 0 评论 -
关于 HTTP 协议,你了解多少?
本文详细介绍了FastAPI的基础概念,特别是HTTP协议的核心组成部分。文章首先概述了HTTP协议的基本概念,包括其基于TCP/IP的请求-响应模型、无状态特性、常用的请求方法、URL结构、请求和响应头部、状态码、以及Cookie和会话管理。接着,文章深入探讨了HTTP请求和响应的结构,包括请求行、请求体、请求头部、响应行、响应头部和响应体。通过具体的例子,文章展示了如何构建和解析HTTP请求与响应,为读者提供了对Web通信基础的深入理解。原创 2024-03-20 16:28:39 · 936 阅读 · 0 评论 -
python的FastAPI 快速入门
本文介绍了使用 FastAPI 构建 API 的基本知识,包括 FastAPI 的特性、安装、基本使用、HTTP 方法、中间件和异常处理。文章以简洁明了的方式介绍了 FastAPI 的优势和基本操作,适合初学者快速入门。原创 2024-03-20 15:58:59 · 806 阅读 · 0 评论 -
ubuntu 如何使用阿里云盘
本文介绍了在Ubuntu平台上使用阿里云盘的解决方式,通过搜索发现了在GitHub上有阿里云盘命令行客户端,提供了下载并安装的步骤,以及进入交互和常用操作的详细说明。原创 2024-03-19 12:49:26 · 3654 阅读 · 2 评论