自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 【持续更新中】开源贡献记录

但迟迟不review。3.13发邮件讨论FLIP-436,3.19投票,3.22投票通过,4.7终于合入了,跨度达到了两年多,终于完成了。目前:merged 2024.6.14 为了赶1.20 code freeze,半夜2点完成FLIP-436后,起来又发现CI失败了,排查是其他人刚提交的一个commit里的test有bug,很快修复了提了pr。切换到0.235版本后,同样的代码报错了,delete catalog后重新加载却报already异常,可能是个隐藏的bug,已提交了新的pr解决。

2024-07-30 10:28:23 1158

原创 OpenFoundry 开源数据操作系统:架构解析与实战指南

本体论查询是 OpenFoundry 的核心查询能力。它不同于传统 SQL,而是基于图遍历用户问:"所有下单超过 1000 元的用户"本体论查询流程:1. 从所有 User 对象开始2. 沿着 placed_order 边找到 Order3. 过滤 amount > 1000 的订单4. 返回符合条件的用户代码质量高:统一的服务结构、自动化的代码生成、完善的测试覆盖架构现代:微服务 + 图遍历查询 + 契约驱动开发可扩展性强:新增服务只需复制模板,Helm + ArgoCD 一键部署。

2026-05-27 16:45:55 754

原创 多来源关联生成多维宽表:方法论与工程实践

本文从方法论层面拆解如何将多个业务来源的数据关联生成一张多维宽表,涵盖架构设计原则、维度驱动策略、指标解耦模式,以及一套5 分钟新增一个维度的标准流程

2026-05-20 17:08:17 390

原创 FastAPI 从入门到实践:构建规范的 RESTful API 服务

本文基于一个完整的 FastAPI 示例项目撰写,涵盖了从项目搭建、路由管理、模型定义、CORS 配置到接口文档生成的完整流程。掌握了这些核心概念,你已经能够构建一个规范的 RESTful API 服务了。

2026-05-12 17:17:09 426

原创 DeepAgents + MCP Tools:从零搭建智能体“外挂工具箱”

在大模型应用开发中,让 LLM 调用外部工具始终是架构设计的核心命题。从早期的 Function Calling,到 LangChain 的 Tool 体系,再到 Anthropic 提出的,工具调用的标准化和可扩展性不断被推向前沿。本文从一个实际项目出发,完整展示如何在DeepAgents 框架 (v0.5.3)中集成 MCP 协议,构建一个既能调用本地工具、又能通过 MCP 协议调用远程服务的 ReAct Agent。已开源在ai-demo项目,欢迎star~

2026-05-11 17:26:47 468

原创 用 DeepAgents 自动分析表格数据,一键生成图表与报告

,"分析当前目录下的data子目录的sales.csv,""然后生成一个友好的plot的png图片""(图片里的文字用Heiti TC字体),""完成后,把分析结果写到./data/sales_analysis.md"},这条 prompt 包含了三个子任务:读取并分析数据→生成可视化图片→ 指定Heiti TC字体(macOS 上的中文字体),避免中文乱码输出分析报告→ 写入Agent 需要自主规划执行顺序:先读文件 → 数据分析 → 绘图 → 写报告,中间可能涉及多次代码生成与调试。

2026-05-09 18:15:01 493

原创 DeepAgents Summarization 中间件:让 Agent 学会整理记忆

在 Agent 开发中,对话历史会不断累积并快速耗尽上下文窗口。一个常见且棘手的问题逐渐浮现:随着任务推进,对话历史的不断累积会迅速耗尽上下文窗口,导致信息丢失甚至任务中断。特别是在 DeepAgents 这类复杂智能体中,中间消息和上下文信息更是急剧增加,进一步加剧了上下文窗口的压力。今天要介绍的Summarization(摘要中间件),正是为解决这一痛点而生的利器。我的ai-demo代码库,当然本示例也用到了多agent技术、tool技能来分工协调完成复杂任务。

2026-04-27 00:23:31 380

原创 DeerFlow Skills机制

DeerFlow 的Skills 系统是一种可扩展的任务能力框架。Skills 是结构化的能力模块,通过 Markdown 文件定义工作流、最佳实践和参考资源。Agent 在执行复杂任务时可以加载相应的 Skill,获得预设的指导和工作流程。Skill 是包含SKILL.md的目录支持 public(内置)和 custom(自定义)两类按需加载,不浪费 context window支持渐进式加载(Progressive Loading)

2026-04-21 15:34:25 542

原创 DeerFlow Memory架构

DeerFlow 的**长期记忆(Long-Term Memory)**系统使 Agent 能够在会话之间保留信息。与传统的聊天机器人在会话结束后会忘记一切不同,DeerFlow 会构建用户偏好、上下文和知识的持久记忆。跨会话持久化基于 LLM 的自动事实提取支持按 Agent 独立记忆Token 限制的 System Prompt 注入防抖异步更新纠正/强化检测当即将压缩消息时,首先调用"""在即将被总结的消息刷新到内存队列。"""# 只有在有意义的对话时才处理return。

2026-04-21 15:13:35 552

原创 Java垃圾回收器笔记

memory leak:未回收的垃圾oom:memory leak达到一定程度无法再分配内存。

2026-04-12 11:48:35 433

原创 GPT架构详解:从Transformer到大型语言模型

在人工智能领域,GPT(Generative Pre-trained Transformer,生成式预训练Transformer)无疑是近年来最具影响力的技术突破之一。从2018年GPT-1的首次亮相,到ChatGPT引发全球AI热潮,再到GPT-4展现出令人惊叹的多模态能力,GPT系列模型一直在刷新我们对自然语言处理可能性的认知。本文将深入剖析GPT的架构设计,探讨其背后的核心原理,帮助读者建立对这一革命性技术的系统性理解。GPT的成功并非偶然,而是建立在一系列精妙的技术创新之上。

2026-03-25 16:19:16 542

转载 Agent Skill设计模式和技巧

在任何技能中,最具价值的部分是“Gotcha”部分,也就是Agent可能踩的坑。例如,一个Standup Meeting发布技能可能会维护一个 standups.log 文件,记录每次发布的内容,这意味着下次运行时,Claude 可以读取自己的历史记录并告知自昨天以来发生了哪些变化。通过实施明确的菱形门禁条件(例如,在从文档字符串生成到最终组装之前需要用户批准),管道确保Agent无法绕过复杂的任务并呈现未验证的最终结果。安全检查清单,你将获得完全不同的、专门的审计,而使用完全相同的技能基础设施。

2026-03-24 13:47:24 54

原创 StarRocks的向量数据库能力

能力,SQL API友好,上手门槛低。总的来说,StarRocks为寻求技术栈整合的团队提供了一个极具吸引力的选项,它在不牺牲核心向量搜索性能的前提下,带来了无与伦比的查询灵活性和运维效率。:基准测试显示,在3节点、32 vCPU/128GB RAM的配置下,针对100万1536维向量,StarRocks的P50查询延迟约为。:通过创建资源组(Resource Group),可以为向量查询和分析型查询分配不同的CPU和内存资源,实现工作负载隔离。,无需手动重建,保证了数据的一致性和查询的实时性。

2026-03-18 16:03:10 460

原创 手把手教你做 StarRocks Agent

本文介绍了StarRocks MCP工具的安装配置流程。首先需要安装Python 3.12环境并配置DeepChat Agent,然后下载官方MCP工具。配置步骤包括验证MCP连接和DeepChat中的服务设置。最后提供了使用案例,展示如何通过自然语言指令完成集群状态查看、建表、数据插入和SQL分析等操作。整个流程实现了通过对话方式管理StarRocks数据库,简化了数据库操作。

2026-03-04 17:35:25 258

原创 给 StarRocks 插上 AI 的翅膀

StarRocks作为主流的MPP OLAP引擎,在AIGC日益火热的当下,我们也可以在OLAP基础上叠加AI能力,同时做结构化分析、语义搜索两大类事情,大大提高数据利用效率,扩展数据使用场景。

2026-03-02 16:03:25 780

原创 Milvus Collections

我基于官方api做了一些简单抽象,方便做功能验证和写MVP案例,完整代码见仓库地址:欢迎star :)Collections 和实体类似于关系数据库中的表和记录。Collection 是一个二维表,具有固定的列和变化的行。每列代表一个字段,每行代表一个实体。

2026-02-27 14:20:53 560

原创 Milvus 数据库

我基于官方api做了一些简单抽象,方便做功能验证和写MVP案例,完整代码见仓库地址:欢迎star :)Milvus 在集合之上引入了层,为管理和组织数据提供了更有效的方式,同时支持多租户。数据库是组织和管理数据的逻辑单元。为了提高数据安全性并实现多租户,你可以创建多个数据库,为不同的应用程序或租户从逻辑上隔离数据。

2026-02-27 13:39:07 75

原创 docker-compose笔记

服务编排工具,实现分布式部署和管理。

2025-12-10 11:41:15 734

原创 Hive笔记

(1)UDF必须用Java语言编写UDF:作用于单个数据行,且产生一个数据行作为输出。如数学函数、字符串函数UDAF:接受多个输入数据行,且产生一个输出数据行。如count、maxUDTF:作用于单个数据行,且产生多个输出数据行。

2025-12-09 16:03:10 881

原创 Kafka笔记

本质上是一个分布式消息中间件,用于构建实时数据管道和处理流式数据,横向扩展、容错、快速。

2025-12-08 16:39:16 936

原创 分布式原理笔记

分布式系统,即用多台计算机协同解决单台计算机所不能解决的计算、存储等问题的系统。需要解决数据拆分、副本控制、处理异常。

2025-11-25 15:15:28 592

原创 压测相关概念

摘要:性能测试的核心指标包括QPS(每秒查询率)、TPS(每秒事务数)、RT(响应时间)和并发数。QPS衡量服务器处理能力,而TPS关注完整事务;RT是系统响应速度的关键指标;并发数反映系统负载能力。这些指标相互关联:QPS=并发数/平均RT,并发数=QPS×平均RT。测试目的是发现性能瓶颈,评估系统在极限条件下的稳定性,其中吞吐量受CPU消耗、I/O速度等因素影响。这些指标共同构成了评估系统性能的重要参数体系。

2025-11-20 15:28:21 163

原创 StarRocks笔记

StarRocks是一款新一代云原生MPP数据库,具有极速分析能力与统一架构特点。其核心优势包括:1)采用MPP执行引擎实现性能线性扩展,支持向量化执行与SQL标准统一;2)提供存算一体和存算分离两种架构,满足不同场景需求;3)支持多种数据模型(主键、明细、聚合、更新)和丰富的数据类型;4)具备完整的导入导出生态,包括StreamLoad、BrokerLoad等;5)通过物化视图(同步/异步)、索引等机制优化查询性能;6)支持资源组管理实现多租户隔离。StarRocks的简洁架构(FE/BE)和高扩展性使其

2025-10-24 17:33:10 1465

原创 ByteBuddy实战笔记

摘要:本文介绍了Java字节码增强框架ByteBuddy的核心功能,包括动态生成类、方法拦截和属性修改等技术。主要内容涵盖:1)动态类的三种生成方式(subclass/rebase/redefine)及其命名策略;2)方法拦截的不同实现形式,包括实例方法、静态方法和构造方法的动态修改;3)使用注解实现参数绑定和委托调用;4)Java Agent的实现方式和Advice内联织入技术。文中详细说明了各种增强场景下的API使用方法,并提供了参数绑定、类型校验等关键配置的注意事项,为Java字节码增强提供了全面的技

2025-10-20 17:02:20 678

原创 AIGC笔记

LLM大语言模型提示工程,使提问更加清晰RAG(Retrival-Augmented Generation检索增强生成),结合信息检索和生成式AI的技术架构,RAG 通过从外部知识库(如文档、数据库)中检索相关信息,并将其作为上下文输入给 LLM(大型语言模型),从而提高回答的准确性,减少幻觉问题微调,可以增强模型能力LangChain开源框架,允许开发人员将LLM与外部的计算和数据源结合起来对比维度通用大模型推理大模型实现模式识别、统计关联。

2025-10-08 10:16:01 1094

原创 【算法】力扣top100

本文总结了哈希表和双指针相关的算法题解。哈希表部分包括:两数之和(使用哈希表存储元素和索引)、字母异位词分组(排序后作为哈希键)、最长连续序列(利用哈希表检测序列起点)。双指针部分包括:移动零(快慢指针)、盛水容器(移动短边)、三数之和(排序后双指针)、接雨水(双指针记录左右最大高度)。滑动窗口部分包括:无重复字符子串(哈希集合维护窗口)、字母异位词查找(固定长度窗口+哈希表统计)。各题均提供Java实现代码,展示了不同场景下哈希表和双指针的高效应用。

2025-09-04 17:35:59 961

原创 【算法】关键思路

本文总结了常见算法与数据结构的关键知识点:时间复杂度分析(O(1)/O(N))、二维数组转一维索引公式、滑动窗口技巧、二分查找实现及优化、双指针分类及应用场景、二叉树特性与遍历方式(DFS/BFS)、递归与回溯法框架(含去重技巧)、贪心法思想、动态规划五部曲(重点讲解01背包问题)。内容涵盖基础概念、实现模板和典型应用,为算法学习提供系统性参考。

2025-09-04 17:30:19 1037

原创 LSM详解

LSM是通过将磁盘的随机写改为顺序写来提高写的性能,核心思想是把数据的添加或修改放到内存中,当内存中数据达到一定size后,然后dump(也就是变成了顺序写)到磁盘中。LSM中有MemTable、ImmutableMemTable、SSTable等几个概念。

2025-08-21 15:54:49 1292

原创 何为“零拷贝”

内核态(Kernal Mode):内核有特别的权利,它能与设备控制器通讯, 控制着用户区域进程的运行状态。保护系统应用用户态(User Mode):非特权区域, 在该区域执行的代码就不能直接访问硬件设备。用户进程所在区域。DMA 直接内存存取(Direct Memory Access):是一种允许外围设备(硬件子系统)直接访问系统主内存的机制。接管了数据读写的工作,不需要 CPU 再参与 I/O 中断的处理,从而减轻了 CPU 的负担。

2025-08-05 13:26:35 896

原创 欢迎看一下我在datafun的分享《蔚来基于 Paimon 的实时湖仓实践》

现已收录到Apache Paimon官方公众号。

2025-07-08 17:27:14 265

原创 Impala集群优化历程

在讲解我们的优化措施前,首先简单介绍一下Impala。Impala 是一个采用MPP(大规模并行处理)架构的分布式并行计算数据库引擎,是业界主流的大数据批量分析工具特点基于内存计算,运行在由C++编写的后端环境,效率很高支持列式存储如Parquet兼容HiveSQL,用户易上手体系架构Impala 的核心组件是 Impala Daemon,具体在机器上就是 impalad 进程(1)Impala Daemon 的核心功能读写数据文件。

2025-06-27 10:30:29 802

原创 一张图说清楚Flink水印和Lateness

当Watermark大于窗口结束时间时,会触发窗口内的元素进行计算并缓存起来,随着Watermark增长,在Watermark 窗口结束时间 + Lateness时清空缓存。Flink使用窗口与水印处理乱序问题,使用Latenss处理延迟问题,二者混合使用可以满足很多复杂场景的需求。简单地说就是,当Watermark在红色区域时,窗口内的元素会计算。真传一句话,假言万卷书。

2024-09-29 15:29:07 226

原创 源码贡献时的git流程

4、新建本地分支修改源码后,先rebase变基到源分支master,然后提交本地分支到fork分支(不要用merge,否则可能会多一个merge记录造成pr难以被commit)3、每次保证源分支是最新的,git checkout master, git pull。使用如下方式,我在做flink、presto源码贡献时就是这样处理的,非常实用。2、git remote add my fork分支。1、git clone 源分支。

2024-09-29 15:24:59 301

原创 聊聊源码贡献这件大事

对于一个热爱技术的开发人员来说,能读懂被业界广泛使用的开源框架里的代码,甚至回馈社区,将是一件莫大的荣耀。下面简单聊聊这件大事。

2024-09-29 15:21:32 929

原创 Flink Sink定制开发

在flink自带的kafka sink实现里,只支持写到固定topic,而我们的kafka2kafka日志处理逻辑要求消息要按照ds字段值写入到对应topic,topic名前缀相同,后面跟ds字段值,需要进行改造。flink自带的hdfs sink只支持将接收到的消息整体使用UTF-8格式写入到文件,而我们的kafka2hdfs处理逻辑要求只写body字段内容到文件。(1)由源码可知BucketingSink类的setBucketer(Bucketer bucketer)方法确定要写入的文件目录。

2024-08-13 16:26:30 991

原创 Presto实现定时从配置文件读取配置

使用guava的memoizeWithExpiration方法。

2024-08-07 10:45:52 209

原创 Flink kuduSink开发

定义JsonLogidKeyTableSerializationSchema实现TableSerializationSchema接口,对于输入的json数据,使用指定key值提取value值,然后再从一个预先获取的map里找到这个value对应的表名,然后加上必要的前缀与后缀组成impala的表名。核心是如果已传入TableSerializationSchema对象,则通过其serializeTable方法从输入的json数据里提取表名,如果未定义则直接取默认表名。(2)重写open方法。

2024-08-07 10:42:44 425

原创 Flink之对时间的处理

重写processElement(),对每个输入元素注册定时器,但会自动去重重写onTimer(),定时器触发时执行的逻辑根据时间特征的不同,具体如下:处理时间——调用Context.timerService().registerProcessingTimeTimer()注册;onTimer()在系统时间戳达到Timer设定的时间戳时触发。事件时间——调用Context.timerService().registerEventTimeTimer()注册;

2024-08-07 10:38:53 895

原创 Calcite执行计划优化

CBO与RBO并非对立关系,而是基于RBO的拓展CBO = RBO + Cost Model + Model Iteration,通过代价模型,在一定的时间空间范围内通过动态规划算法来获得最终的执行计划claicte的优化原理是,它假定如果一个表达式最优,那它的局部也是最优的。成本最优假设利用了贪心算法的思想,在计算的过程中, 如果一个方案是由几个局部区域组合而成,那么在计算总成本时, 我们只考虑每个局部目前已知的最优方案和成本即可。

2024-07-30 10:37:23 659

原创 聊聊FLINK-25631贡献

从入行做数据库开发,到2018年过渡到大数据开发,可以说我已经与sql朝夕相处了七八年了,经常惊讶于简单的语法就能产生复杂的操作,而且还能根据索引等统计信息自动优化,不禁很想实现自己的sql语法,却不知道这是怎么做到的,繁忙的工作、庞大的语法解析及优化的储备知识让我迟迟难以行动起来,但只要出现契机并敢于把握,这些困难都不算什么。

2024-07-30 10:34:10 392

空空如也

空空如也

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

TA关注的人

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