自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 scala flink 实现自定义水位线,定时生成水位线

自定义水位线,定时生成

2025-02-26 18:13:27 363

原创 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

原创 读csv批量写mongo

【代码】读csv批量写mongo。

2024-09-20 10:34:25 342

原创 hbase merge工具

1、当个region不宜过大,如果两个合并后超过当个region 的最大值,比如7G+7G=14G,超过region配置的最大值10G,这样的话哪怕合并了,也会重新分裂。在hbase中,表中可能会存在很多小的region,如果不需要那么多小的region,可以将他们就行合并。2、必须要相邻的两个region,才可以执行命令,不明白原理,不可随意修改代码。代码的逻辑是将相邻的两个小region进行合并,需要注意以下几点。

2024-09-20 10:25:12 626

原创 hbase 使用复制表,使用存在表的结构

hbase 表结构复制

2024-09-20 10:18:18 300

原创 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

原创 hadoop 统计hdfs中ssd使用情况

if (!} else {

2024-09-19 11:42:03 802

原创 flink 批量压缩redis集群 sink

idea maven依赖。

2024-09-19 11:37:57 575

原创 flink 批量写clickhouse

withBatchSize(20000).build(), //20s一批或20000条数据,那个先达到都执行sink。//还有其他字段接着set ps.setSTring(3, v.XXX!idea maven 依赖。

2024-09-19 11:33:43 763

原创 flink doris批量sink

name("数据写入doris")idea maven 依赖。

2024-09-19 11:26:59 822

原创 flink hbase 批量sink

【代码】flink hbase 批量sink。

2024-09-19 11:16:40 492

原创 时间转换函数(scala)

【代码】时间转换函数(scala)

2024-09-19 11:08:14 572

原创 flink自定义process,使用状态求历史总和(scala)

fink 自定义procee 状态

2024-09-19 10:55:22 716 1

空空如也

空空如也

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

TA关注的人

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