粗粮厂的基于spark的通用olap之间的同步工具项目

告别软件轮询!用STM32G474的COMP比较器实现纳秒级硬件过压保护(CubeMX配置详解) 本文详细介绍了如何利用STM32G474的COMP比较器实现纳秒级硬件过压保护,通过CubeMX配置详解,展示了硬件比较器相比传统软件轮询方案在响应时间、CPU占用和可靠性等方面的显著优势。文章还提供了实战配置流程和优化技巧,帮助工程师快速构建高效的硬件保护系统。 阅读详情


说的比较简单,有需要的可以留言,我不断补充完善

1 项目背景

我们公司内部的需要一款,能在不同的olap之间做数据传递与拷贝,例如 iceberg到doris,到mysql,甚至到kafka的,这么一个数据同步工具,要尽可能简单,尽可能维护容易。所以有了这么一个项目的诞生,目前可以实现,通过一条简短的shell命令,实现不同数据库与存储之间的数据拷贝。

目前这套方案,在公司内部已经部署4个数据团队,服务对象产品+数据研发 超过100人,直接使用使用的业务对象,超过 4000人。

2 项目实现

2.1 实现原理

目前的实现是通过spark来实现,分为两个部分:

  • 1 写入同步信息:同步任务记录,是一个很简单的,通过shell 传参,调用一个spark任务,执行一个简单的,数据插入动作,将 数据源表,目标,持有人,过滤或想要保留的字段,数据筛选项等一些信息,传入spark任务中,并将数据写入一个mysql中保存。其中源表与目标表,通过 catalog__database__schema__tablename的方式保存,并维护了一套catalog,通过前缀就可以知道数据在哪个引擎的哪个表中。
  • 2 读取同步信息:一个常驻的,死循环的spark任务,会定期遍历mysql,会筛选出目前符合条件的,未过期的,同步任务,使用ExecutionContext 和 Future ,来并发执行同步任务,通过源信息,与反射 ,维护一个连接的配置项,来做隔离,保证数据传入时,不会涉及隐私信息
    其中读取部分逻辑为:
    在这里插入图片描述

2.2 细节要点

  • 并发部分,可以通过【读取同步信息】 任务部分启动时,动态传参,来控制数据流量
  • 在任务中,维护了3个列表,分别保证,同一个任务只会执行一次,同一个目标表,同一时间只有一个任务在写入,任务执行超过配置时间,会自动杀死,并允许新的任务调起,这样就可以保证不会触发目标的锁,并控制重复提交
  • 通过对不同传入参数解析,对于每个目标引擎单独部署独立的同步任务,做到资源隔离
  • spark任务 每个并发执行有做到很好的异常捕获,发生问题时,可以调用报警接口,发送信息到持有人飞书中;对于常驻的 【读取同步信息】整体任务监控,做到2天杀死重新启动,并每5分钟pid判活,保证任务的执行中
  • 任务监控与判断,对目标数据与原始数据做数据量校验,对数据过程中的日志做接受,扫描错误日志等,保证要给

3 抽样说明

这里抽样说明一下 ,iceberg 同步数据到hologres 时的要点,其实整体的使用都相同,不过在开发的时候,可以根据不同的引擎做不同的细节调整 : 例入hologres

  • 使用spark-connector-hologres的连接器写入数据,连接器会先在hologres引擎中创建临时表,数据写入完成后,再做insert overwrite动作,因为分布式存储的问题,所以就需要在代码里手动执行set hg_experimental_force_sync_replay = on; 来保证元数据在不同节点的同步
  • 使用hologres连接器,对原始数据量做判断,超过1千万的,执行serverless,也就是后被隐藏能源!
  • 增加1次的任务重试,减少因为元数据不同步导致的表不存在的bug
  • 目标数据是视图的方式,也有分区表,可以在代码中做判断并刷新视图,保证数据插入可以兼容

总的来说,可以根据不同的业务目标库与使用方法,做单独的优化迭代,保证到每次的同步都是最优的选项

4 项目运行状态

还是以iceberg 到 hologres 为例,某个实例的spark资源情况为 180个 Executor,每个4G,16G的DM,参数配置为:

--conf spark.sql.catalog.iceberg_zjyprc_hadoop.cache-enabled=false
--conf spark.sql.adaptive.coalescePartitions.initialPartitionNum=30
--conf spark.network.timeout=180000
--conf spark.slow.shuffle.fetch.time.blacklist.threshold=60000
--conf spark.speculation=false
--conf spark.excludeOnFailure.enabled=false
--conf spark.task.maxFailures=1

4.1 运行速度

目前 5000w条数级别的数据量,大概需要 16-17分钟,而且这里面有一半的时间时因为hologres连接器在内部重新shuffle,如果目标是mysql之类的,速度会提高至少一半

4.2 项目吞吐

单数据库目前每日同步 9700+张表,总数据量在 270-300亿条之间,基本可以满足业务需求

4.3 稳定性

通过上述的监控与定期重启,配合计算引擎的升级,同步迭代工具的使用,例如hologres 支持了insert overwrite 命令,可以实现写cpu打满也不会影响读的使用,同步迭代最新版本,可以保证业务的高可用。

5 常见问题

1 多并发对于任务执行需要做好执行list管控,否则会出现同一个表 同一时间有2个任务在写入的情况,浪费资源的同时,某些引擎会导致死锁,或生成内部临时表

2 依赖于官方提供的连接器,并且有些连接器依赖于spark本地的能力资源,例如repartition之类的动作,所以不同的目标对于资源的侧重点还不同,不能一套配置运用于所有引擎,主要看使用同学对于引擎的理解程度

川崎机器人 AS语言基础运动指令表     功能简介 动作方式 参考坐标系 位置特性 X,Y,Z 角度特性 O,A,T 指令格式(距离单位毫米,时间单位秒,角度单位度 示例1 示例2 运 动 指 令 JMOVE 以关节移动到目标点 关节移动方式 基础坐标系 不受控 伪随机动作 JMOVE 目标点 JMOVE #yd JMOVE put1 LMOVE 以直线移动到目标点 直线移动方式 阅读详情

相关推荐

Unity通过Vosk实现离线语音识别方法

以下是一个使用 Unity 和 Vosk(一个开源的离线语音识别库)的简单示例。将Vosk的DLL文件(如libvosk.dll、vosk.dll等)放入Assets/Plugins文件夹中。通过以上步骤,你可以在Unity中实现一个简单的离线语音识别功能。音频格式:确保录音的音频格式与Vosk模型要求的格式一致(通常是16kHz、16bit单声道)。首先,你需要下载Vosk的语音识别模型。在Assets文件夹中创建一个Plugins文件夹,用于存放Vosk的DLL文件。打开Unity并创建一个新的项目。

qq_39515892的博客 2070

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

weixin_46838716的博客 2431

Zemax实战:20×超高清变焦镜头设计全流程解析(从架构到制造)

本文详细解析了使用Zemax软件设计一款20倍变焦比、恒定F2.8光圈8K超高清镜头的全流程。从应对恒定光圈、宽光谱与8K解析力三大挑战的初始架构规划,到构建多重组态模型、分七阶段进行像差优化与公差分析,最终跨越制造鸿沟,为广播级影视与高精度工业检测应用提供了实战指南。

sun99的博客 551

OLAP(三):Impala介绍 、 (和hive/spark对比)、COMPUTE STATS

一、Impala概述 Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。 二、为什么选择Impala?Impala的优点:Impala数据查询效率比Hive快几倍甚至数十倍 Impala通过使用标准组件(如HDFS,HBase.................

. 1万+

16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)

16QAM调制解调仿真目录一、仿真要求二、仿真方案详细设计三、仿真结果及结论四、仿真代码 一、仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较; 2.高阶与低阶的性能比较。 二、仿真方案详细设计 三、仿真结果及结论 仿真结果 16QAM的星座点图 64QAM的星座点图 16QAM加噪声后的星座点图 64QAM加噪声后的星座点图 16-QAM载波调制信号在AWGN信道下的误比特率性能比较 结论:由图可知,16QAM的误符号率

mango 5万+

电路仿真软件PSIM简介

PSIM的基本使用操作...

qq_55203246的博客 7175

各个OLAP 引擎详细对比介绍

说起 Druid,大家首先想到的是阿里的 Druid 数据库连接池,而本文介绍的 Druid 是一个在大数据场景下的解决方案,是需要在复杂的海量数据下进行交互式实时数据展现的 BI/OLAP 工具。Druid 的架构是 Lambda 架构,分成实时层( Overlord、 MiddleManager )和批处理层( Broker 和 Historical )。更多关于架构的描述,可以看官方文档或者 《Druid在有赞的实践》

justlpf的专栏 1134

新手学习Vivado XDMA (1) - 配置详细分析

PCIe 在 Vivado XDMA 中的配置分析。

qq_18553915的博客 9707

开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum)

参考文章:开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum) 易观CTO 郭炜 序 现在大数据组件非常多,众说不一,在每个企业不同的使用场景里究竟应该使用哪个引擎呢?这是易观Spark实战营出品的开源Olap引擎测评报告,团队选取了Hive、Sparksql、Presto、Impala、Hawq、Clickhouse、Gr...

justlpf的专栏 1986

微信小程序 | 小程序开发

事实上,目前小程序在我们生活中已经随处可见(特别是这次疫情的推动,不管是什么岗位、什么年龄阶段的人,到哪都需要打开健康码)WePY是由腾讯开源的,一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。Mpvue是一个使用Vue开发小程序的前端框架,也是 支持 微信小程序、百度智能小程序,头条小程序 和 支付宝小程序;微信小程序、支付宝小程序、淘宝小程序、抖音小程序、头条小程序、QQ小程序、美团小程序等。,其他平台的小程序往往是平台本身的一些公司或者顺手开发的。

CoderHing的博客~ 1万+

Linux驱动学习--HCI框架及源码分析

目录 一、引言 二、HCI框架 三、pcm_read简要分析 一、引言 最近一直在分析蓝牙驱动,发现在底层驱动与上层协议栈间还有一层HCI,主机控制层,两者之间通过HCI协议通讯 而Linux也将HCI协议抽象层了一个框架。 为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式绞合起来,并提供一些公共函数的实现。 今天就来简单的分析一下 二

文艺小少年的博客 2002

优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析

优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析 TiDB 是一款定位于在线事务处理/在线分析处理的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。 TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。它借助 Spark 平台,同时融合 TiKV 分布式集群的优势。 直接使用 TiSpark 完成 O...

Ricky点滴 1732

基于Python的专利数据爬虫开发指南:从入门到实战

本文将详细介绍如何使用Python开发一个高效的专利数据爬虫系统,涵盖最新技术栈如Playwright、异步IO、反反爬策略等。文章包含完整代码实现、性能优化技巧及法律合规建议,帮助读者构建可投入生产的专利数据采集解决方案。专利数据是技术创新的重要指标,包含技术细节、申请人信息、法律状态等宝贵信息。企业竞争情报分析技术趋势预测研发方向决策知识产权战略制定。

2201_76125261的博客 1588

开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum) ...

本文为博主公司原创文章,仿冒必究,转载请回复留言** 开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum) 易观CTO 郭炜 序现在大数据组件非常多,众说不一,在每个企业不同的使用场景里究竟应该使用哪个引擎呢?这是易观Spark实战营出品的开源Olap引擎测评报告,团队选取了Hiv...

weixin_33724659的博客 8976

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SparkCore文件OLAP数据清洗

文章目录案例1. 统计广告ID2. 基站停留时间TopN3. ip所属区域的访问量3.1 批注3.2 代码 案例 1. 统计广告ID 数据源 Advert.txt 因为有些数据太多了,我就只把第一行的数据搞下来 1516609143867 6 7 64 16 数据格式: timestamp province city userid adid 时间点 省份 城市 用户 广告 用户ID范围:0-99 省份,城市,ID相同:0-9 adid:0-19 需求: 1.统计每一个

默主归沙的博客 479

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

优秀的数据工程师,怎么用 Spark 在 TiDB 上做 OLAP 分析

作者:RickyHuo本文转载自公众号「大道至简bigdata」原文链接:优秀的数据工程师,怎么用 Spark 在 TiDB 上做 OLAP 分析 TiDB 是一款定位于在线事务处理/在线分析处理的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。TiSpark 是 PingCAP 为...

weixin_33964094的博客 294

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(二)

Hive、SparkSQL、Impala 比较

wzy0623的专栏 3万+

告别“纷纷扰扰”—小米OLAP服务架构演进

背景 >>>> What’s OLAP? 如果你是一名数据分析...

410

【JanusGraph】OLAP以spark为引擎,实现数据检索-(数据以RDD缓存内存)

实现思路: 检索hbase数据–》构建graphRDD --》 缓存rdd到内存 --》 获取缓存rdd数据(sc.getPersistendRdd) --》其他操作; 1 配置文件: 配置信息管理类:org.apache.tinkerpop.gremlin.hadoop.Constants #################################################### #### Gremlin hadoop configuration #### #

weixin_38602383的博客 482

数据仓库③-实现与使用(含OLAP重点讲解)

本文将对这些方面做一个总体性的介绍(尤其是OLAP),旨在让读者对数据仓库的认识提升到一个全局性的高度。创建数据仓库数据仓库的创建方法和数据库类似,也是通过编写DDL语句来实现。在过去,数据仓库系统大都建立在RDBMS上,因为维度建模其实也可以看做是关系建模的一种。但如今随着开源分布式数据仓库工具如Hadoop Hive,Spark SQL的兴起,开发人员往往将建模和实现分离。使用专门的建模软件进

大数据星球-浪尖 1515

Spark Media 问题清单

本项目基于 libdatachannel 构建 C++ WebRTC SFU 服务器,遵循 IETF WHIP/WHEP 标准信令,采用帧级转发实现低延迟多人互动。

qq_43538607的博客 384

【计算机毕业设计】基于Hadoop的公共交通运营数据分析与可视化系统 大数据毕业设计选题 Hadoop Spark Numpy Pandas Echarts

基于Hadoop生态的公共交通运营数据分析与可视化系统,利用Spark处理海量公交数据,结合K-Means聚类、Pandas/Numpy分析,实现线路、站点、区段等多维度统计。通过Django提供接口,Vue+ElementUI搭建前端,Echarts实现城市规模、线路特征、站点网络等动态可视化看板,构建从数据采集到可视化的完整闭环,助力智慧交通决策。支持机器学习模型定制,文末可获取源码。

weixin_19164791635 764

【Spark】 04键值对 RDD:创建、常用操作与数据分区

介绍 Spark 键值对 RDD 的创建方式、聚合、分组、连接、排序与行动操作,并结合 PageRank 示例讲解数据分区、分区器复用与自定义分区方式。

qq_46126258的博客 374

最新大数据毕业设计选题推荐-基于大数据的电影评分与热度数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的电影评分与热度数据可视化分析系统》,采用Hadoop+Spark构建大数据处理链路,结合Django/Spring Boot后端与Vue+ECharts前端,实现电影评分、热度数据的采集、清洗、分析与可视化。系统支持高分影片管理、评分分布、热度传播趋势等多维度展示,提供可运行、可扩展的毕业设计参考,涵盖完整技术栈与源码,助力学生掌握大数据项目全流程开发。

IT研究室的博客 270

Apache Spark4.1.3 一键部署与卸载脚本

本文介绍了一套基于三台主机(node11/node12/node13)的Spark 4.1.3集群一键部署与卸载方案。在已配置主机名、SSH免密、JDK17及Hadoop 3.5.0的前提下,通过spark_deploy.sh脚本自动完成Scala 2.13.16与Spark的安装、配置分发、集群启动及进程验证。脚本支持重复执行,避免配置重复。配套的spark_uninstall.sh可安全卸载Spark与Scala,保留JDK和Hadoop环境。整个过程自动化程度高,适用于教学与生产环境快速搭建与清理。

super_mochi1 109

最新大数据毕业设计选题推荐-基于大数据的厄瓜多尔沿海气象数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的厄瓜多尔沿海气象数据可视化分析系统》,采用Hadoop+Spark实现数据存储与计算,结合Django/Spring Boot后端与Vue+ECharts前端,完成风场、气压等要素的多维度可视化。系统支持数据查询、统计分析与交互展示,适用于气象科研与教学实践,提供双语言版本及完整源码,助力大数据技术在区域气象分析中的应用探索。

IT研究室的博客 214
上一篇: Flinksql bug: Heartbeat of TaskManager with id container_XXX timed out.
下一篇: 粗粮厂的基于flink的汽车实时数仓解决方案
Direction_Wind
博客等级 码龄8年 6438粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Direction_Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值