- 博客(66)
- 收藏
- 关注
原创 Flink 1.18 通过streamload写starrocks
该Flink程序从Kafka读取用户基本信息,通过AES加密字段值后写入StarRocks。使用配置化密钥、SASL认证的Kafka连接,结合StarRocks Sink实现数据流式加载。所有字段均为字符串类型,加密后以JSON格式批量写入,支持至少一次语义和定时刷新,适用于高可靠数据同步场景。
2026-10-30 17:35:23
27
原创 剪枝算法介绍与示例
剪枝算法是在搜索过程中提前丢掉不可能产生答案的分支,从而少做大量无用计算。它不是某一种固定算法,而是一套用在回溯、深度优先搜索、分支限界和博弈树搜索里的加速手段。
2026-10-15 13:55:44
154
原创 霍夫曼树介绍与示例
霍夫曼树是带权路径长度最小的二叉树,用于构造最优前缀编码。高频符号分配短编码,低频符号用长编码,实现高效压缩。通过反复合并权值最小的两棵树构建树结构,确保总编码长度最短。该原理广泛应用于文件压缩、JPEG、MP3、HTTP/2头部压缩等场景,既节省存储与传输成本,又保证编码可唯一解码,是高效无损压缩的核心技术之一。
2026-10-14 14:56:10
162
原创 爬山算法介绍与示例
爬山算法是一种局部搜索,从初始解出发,逐步向更优邻居移动,直至陷入局部最优。它仅接受改进解,无法保证找到全局最优。为提升效果,可从多个起点重复搜索。与模拟退火相比,爬山不接受变差解,而退火以概率接受劣解,通过降温机制逐步跳出局部最优,增强全局搜索能力。
2026-10-14 10:21:39
622
原创 图搜索算法介绍与示例
本文介绍了图搜索的基本原理与实现,通过广度优先(BFS)和深度优先(DFS)算法在带回路的图中寻找从起点A到目标F的路径。利用队列实现BFS,得到最短路径A→C→E→F(3条边);用栈实现DFS,得到A→B→D→E→F(4条边)。代码通过“已访问表”避免循环。扩展至带权图时,可采用Dijkstra或A*算法。该方法广泛应用于导航、社交关系分析及任务依赖排序等场景。
2026-10-14 10:09:31
323
原创 迭代加深介绍与示例
迭代加深结合深度优先与层序搜索优势,通过逐层放宽深度限制,高效寻找最短路径。它在每轮限定深度内进行深度优先搜索,仅保留当前路径,内存占用低;虽重复访问浅层节点,但总代价与单次深度搜索相当。适用于迷宫、棋盘等步数少、分支多的场景,能确保找到最少步数解,且无需存储整层状态,兼具广度优先的最优性与深度优先的空间效率。
2026-10-14 10:02:13
240
原创 广度优先(宽度优先)与深度优先介绍与示例
宽度优先(BFS)与广度优先是同一遍历方式,按层访问节点,使用队列实现,访问顺序为A→B→C→D→E→F;深度优先(DFS)则沿路径深入,使用栈实现,顺序为A→B→D→C→E→F。两者区别在于“下一站选择”策略:BFS先处理同层节点,DFS优先探索一条路径到底。代码中通过队列和栈分别实现,结果一致。
2026-10-13 15:42:28
178
原创 推荐算法介绍与示例
推荐算法通过用户历史行为预测偏好,主要分两类:基于内容的推荐利用物品特征匹配用户画像,如甲偏好“枪战、速度”类电影,即使新片无人评分也能推荐;协同过滤则通过用户或物品相似性推断兴趣,如甲与乙口味相近,结合乙对科幻片的评分,估算甲可能兴趣一般。前者适合冷启动,后者依赖行为数据。实际应用中常结合热门推荐与排序优化,提升推荐效果。
2026-10-13 11:21:10
410
原创 逻辑回归算法介绍与示例
逻辑回归通过Sigmoid函数将线性分数z=wx+b映射为0~1间的概率,用于二分类。损失函数基于真实标签y与预测概率p的对数似然,用梯度下降优化权重w和偏置b。以复习时长判是否通过为例,训练得w≈2.95,b≈-10.25,分界点约3.5小时。概率≥0.5判为“通过”。多特征时,各权重反映特征对结果的影响方向。该模型可广泛应用于垃圾邮件、违约预测等二分类任务。
2026-10-13 10:03:08
711
原创 支持向量机介绍与示例
支持向量机(SVM)通过寻找最大间隔分界线实现分类,核心是使分类边界两侧空白带最宽。其判别式为 $ f(x) = w \cdot x + b $,仅由支持向量决定。在文本分类中,采用词袋+TF-IDF将文本转为高维稀疏向量,用线性SVM进行高效分类。软间隔允许少量误分,通过惩罚系数 $ C $ 控制;核函数(如高斯核)可处理非线性问题。适用于中小规模、特征明确的数据,广泛用于垃圾邮件检测、情感分析、图像识别及异常检测等场景。训练时需注意分词、去噪、特征工程与超参数调优,确保模型泛化能力。
2026-10-12 15:38:29
534
原创 退火算法介绍与示例
模拟退火是一种通过随机搜索避开局部最优、寻找全局近似最优解的启发式算法。它借鉴金属退火过程,允许在高温时接受更差解以跳出低谷,随温度降低逐步收敛。以函数 $ f(x)=(x^2-1)^2+0.2x $ 为例,从局部最优 $ x=1 $ 出发,经多次迭代与2-opt邻域调整,最终跳至全局最优 $ x\approx-1.02 $。该方法适用于路径规划、排程、布局等组合优化问题,尤其在目标函数复杂、无梯度或约束多时表现优异,广泛应用于配送路线、仓内拣货、加工顺序等实际场景。
2026-10-12 15:20:51
398
原创 b树详细介绍与示例
B树是一种多路平衡查找树,节点可存储多个关键字,所有叶子在同一层,适合磁盘存储。以t=2为例(2-3-4树),节点最多3个关键字,插入时满则分裂,删除时不足则借或合并,保持平衡。数据库索引、文件系统广泛使用其变体B+树:内部节点仅存索引,数据全在叶子,叶子间链表连接,便于范围查询。主流数据库如MySQL、PostgreSQL、Oracle等均采用B+树索引,文件系统如XFS、NTFS也依赖它。适用于读多、需范围扫描的场景,是现代存储系统的核心结构之一。
2026-10-12 15:12:49
206
原创 随机森林介绍与示例
随机森林通过多棵决策树投票提升预测稳定性。每棵树基于有放回抽样数据和随机特征子集训练,避免过拟合。以“天气是否出门”为例,7棵树对“晴、适中、有风”样本投票得5票“否”,结论为不出门。尽管各树因样本与特征随机性产生分歧,多数投票仍给出可靠结果。分类时通常取特征数平方根作为节点候选特征数,树数为几十至几百。
2026-10-10 11:02:01
55
原创 决策树介绍与示例
决策树通过信息增益选择最优分割特征,以提升类别纯度。基于熵衡量不纯度,分裂后熵下降越多,信息增益越大。以“天气、温度”预测是否出门为例,按温度分裂增益更高,故根节点先问温度。凉则全为“是”,直接成叶;热与适中再按天气细分。最终模型对“晴、凉”预测“是”,“雨、热”预测“否”。算法支持数值特征的阈值切分,可用基尼不纯度替代熵。为防过拟合,可限制树深或最小样本数,提升泛化能力。
2026-10-10 10:43:52
119
原创 K-means算法介绍
K-means算法将n个点划分为k个簇,通过迭代优化组内误差(点到中心距离平方和)。初始设定k个中心,反复执行“分配点到最近中心”和“更新中心为组均值”步骤,直至分组稳定。需预设k值,特征需标准化以避免量纲影响。算法适用于球形簇,对离群点敏感,且结果依赖初始中心,建议多次运行取最优。可通过肘部法则选择合适k。
2026-10-10 10:35:26
229
原创 排序算法介绍
本文介绍了多种排序算法,包括冒泡、选择、插入、归并、快速、堆和计数排序,对比其时间复杂度、空间复杂度、稳定性及适用场景。针对不同数据特征(如规模、有序性、数值范围),推荐合适算法:插入适合小规模或基本有序数据,归并保证稳定且O(nlogn),快速排序平均性能优但最坏退化,堆排序原地且最坏稳定,计数排序在整数范围小时可达O(n)。Python内置sorted()使用Timsort,结合归并与插入,高效稳定,日常首选。
2026-10-10 09:51:04
289
原创 动态规划介绍
动态规划通过拆解重复子问题、记录状态并按依赖顺序计算,解决最优化问题。核心四要素:状态(记什么)、转移(如何推)、边界(最小情况)、答案位置。常见模式包括自顶向下记忆化与自底向上填表,前者易爆栈,后者更稳定。时间复杂度为状态数×转移次数,可优化空间。典型应用如斐波那契(O(n)时间、O(1)空间)、0/1背包(二维转一维)、零钱兑换(求最小硬币数)。判断题型关键:是否可分步决策、子问题重复、状态可定义。
2026-10-10 09:42:50
145
原创 贪心算法介绍与示例
贪心算法通过每步选择当前最优解,逐步构建全局最优。活动安排问题中,按结束时间排序后贪心选取不重叠的活动,可得最大场次;分数背包则按单位价值降序取物,可最大化总价值。两者均满足“局部最优可扩展”与“状态独立”条件,故贪心有效。若无法证明此两点,则需改用动态规划。
2026-10-09 13:55:27
910
原创 链表详细介绍
C、Java、Python中链表均通过节点存储值与指向下一节点的引用实现,差异在于内存管理与结构设计:C用结构体和指针,手动分配释放,支持侵入式链表,适合内核与嵌入式;Java使用java.util.LinkedList双向链表,由垃圾回收管理,泛型安全,适用于双端操作;Python无内置链表,可自定义类实现,依赖引用计数回收,代码简洁,常用于教学或两端插入删除场景。
2026-10-09 13:47:22
128
原创 线性回归算法
本文详解线性回归原理与实现:通过最小化均方误差,用梯度下降法拟合数据。给定8组点,使用Python标准库实现梯度下降,迭代2000次后损失降至0.0195,参数收敛至w≈0.9917、b≈1.0747,预测结果准确。正规方程结果相近(R²=0.9962),表明模型拟合良好。需关注损失变化趋势,合理调整学习率与迭代次数,避免过拟合或发散。
2026-10-09 11:35:53
263
原创 数据结构详细介绍
数据结构决定数据存储方式,算法决定计算过程,二者共同影响程序的效率。大O表示法关注规模增长趋势,常见复杂度包括O(1)、O(logn)、O(n)、O(nlogn)、O(n²)。数组支持快速随机访问但插入删除慢;链表适合频繁增删但查找耗时。栈、队列、双端队列适用于特定操作场景。哈希表实现平均O(1)的查找,树与堆保持有序并支持高效极值操作。图用邻接矩阵或邻接表存储,遍历可用广度或深度优先。排序算法如归并、快排、堆排序各有优劣。动态规划与贪心适用于可分解问题。选择合适结构与算法需权衡准备成本与查询效率,同一问题
2026-10-09 11:28:43
506
原创 doris 常用命令
本文总结了doris数据库的常用操作命令,涵盖连接、库表管理、数据查询、聚合分析、时间处理、写入更新、表结构修改、数据导入导出、集群监控及权限管理等场景,适用于日常运维与开发。通过元数据获取表大小与行数,避免全表扫描;支持按主键汇总回写与部分列更新;提供流式加载、例行负载管理及进程控制能力,提升数据处理效率与系统稳定性。
2026-10-09 11:11:33
17
原创 scala spark 通过stream load写starrocks
本文示例展示如何用Spark批量读取MongoDB文档并高效写入StarRocks。通过foreachPartition在Executor端分批处理,每批2000条,使用Gson序列化为JSON, via StreamLoad批量导入。字段类型安全转换,空值处理为null,时间戳格式化为标准字符串。避免Driver单线程拉取,提升吞吐,适用于大容量文档型数据入仓。需替换Mongo/StarRocks连接信息及表字段。
2026-10-08 16:08:57
340
原创 多源异构数据库实时同步至 Doris
本文设计了一套基于Kafka+Flink的实时CDC数据集成架构,涵盖数据源层至应用层全链路,通过CDC采集、Kafka解耦、Flink实时计算与Doris存储,实现数据低延迟、高一致性同步。核心原则包括最小侵入、消息统一格式、顺序性保障与端到端精确一次处理。关键实践涵盖MySQL/MongoDB等多源接入方案、Flink作业分拆与幂等写入、Schema变更自动感知及全链路监控体系,支持灰度迁移与数据对账。代码实例展示了从Kafka消费到Doris写入的完整流程,整体延迟控制在10秒内,满足实时看板、风控等
2026-10-08 15:47:24
384
原创 flink写starrocks,java示例
本文介绍Flink实现Kafka到StarRocks的流式数据同步最小示例。通过KafkaSource读取JSON格式消息,解析后经Flink Stream API处理,利用Table API将数据写入StarRocks。配置了基于SASL_PLAINTEXT的安全连接、Checkpoint机制及EmbeddedRocksDB状态后端,确保容错与高可用。使用StarRocks Connector实现at-least-once语义的数据写入,支持批量缓冲与重试,适用于实时数仓场景。
2026-10-08 15:26:07
661
原创 spark mongo Cannot cast STRING into a NullType (value: BsonString{value=‘fQhjMW8erDc0njFI‘}
Cannot cast STRING into a NullType
2025-05-26 15:10:15
202
原创 kafka负载均衡迁移(通过kafka eagle)
命令:sh /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper hk-hdfs-util:2181 hk-hdfs-master01:2181 hk-hdfs-master02:2181 --topic。1 进入磁盘使用率高的机器/kafka-logs,通过du -h找一个数据量大的topic:这里以my_topic为例。4 将使用率多的机器中的副本修改为使用率少的kafkaid之后,把修改后的kafka分区文件放到。
2024-09-23 17:28:27
836
原创 hbase merge工具
1、当个region不宜过大,如果两个合并后超过当个region 的最大值,比如7G+7G=14G,超过region配置的最大值10G,这样的话哪怕合并了,也会重新分裂。在hbase中,表中可能会存在很多小的region,如果不需要那么多小的region,可以将他们就行合并。2、必须要相邻的两个region,才可以执行命令,不明白原理,不可随意修改代码。代码的逻辑是将相邻的两个小region进行合并,需要注意以下几点。
2024-09-20 10:25:12
626
原创 flink kafka sink (scala)
将对象数据通过Gson 转为jsonString,在将数据写到kafka中,这个可以根据需要修改,比如按照\t分开也行,可以节省字段名称的空间。那么如果需要减少Gson的创建,可以自定义map函数,继承并实现RichMapFunction中的方法,其中open就可以只创建一次Gson。这里还有一个问题,就是每来一条数据都需要new Gson 对象,有没有办法减少创建呢。我们知道job 和task之间是不能够传输序列化的对象的。
2024-09-19 13:37:48
865
1
原创 doris 自定义StreamLoad,批量写入doris
if (data.nonEmpty) dorisStreamLoad.sendData("doris中的表名,不需要传库名", gson.toJson(data))将对象放到list中,使用Gson,变为jsonString。
2024-09-19 11:50:26
927
原创 flink 批量写clickhouse
withBatchSize(20000).build(), //20s一批或20000条数据,那个先达到都执行sink。//还有其他字段接着set ps.setSTring(3, v.XXX!idea maven 依赖。
2024-09-19 11:33:43
763
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅