flink维度表关联
分析&回答
根据我们业务对维表数据关联的时效性要求,有以下几种解决方案:
1、实时查询维表
实时查询维表是指用户在Flink 的Map算子中直接访问外部数据库,比如用 MySQL 来进行关联,这种方式是同步方式,数据保证是最新的。最后,为了保证连接及时关闭和释放,一定要在最后的 close 方式释放连接,否则会将 MySQL 的连接数打满导致任务失败。
一般我们在查询小数据量的维表情况下才使用这种方式,并且要妥善处理连接外部系统的线程,一般还会用到线程池。
2、预加载全量数据
当我们的系统启动时,就将维度表数据全部加载到内存中,然后数据在内存中进行关联,不需要直接访问外部数据库。一旦维表数据发生更新,Flink 任务是无法感知,可以采取定时拉取维表数据
对计算节点的内存消耗很高,所以不能适用于数量很大的维度表
适用于那些实时场景不是很高,维表数据较小的场景
3、LRU 缓存(最近最少使用的数据则被淘汰)
如果维表的数据比较大,无法一次性全部加载到内存中,可以使用LRU策略加载维表数据。
利用 Flink 的 RichAsyncFunction 读取 Hbase 的数据到缓存中,我们在关联维度表时先去查询缓存,如果缓存中不存在这条数据,就利用客户端去查询 Hbase,然后插入到缓存中
4、将维表消息广播出去
//1:初始化数据
DataSet<Integer> toBroadcast = env.fromElements(1, 2, 3)//2:广播数据
.withBroadcastSet(toBroadcast, "broadcastSetName");//3:获取数据
Collection<Integer> broadcastSet = getRuntimeContext().getBroadcastVariable("broadcastSetName");
复制代码
反思&扩展
flink海量数据高效去重
①基于状态后端
②基于HyperLogLog:不是精准的去重
③基于布隆过滤器(BloomFilter)
快速判断一个key是否存在于某容器,不存在就直接返回。
④基于BitMap
用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此可以大大节省存储空间。
⑤基于外部数据库
选择使用Redis或者HBase存储数据,我们只需要设计好存储的Key即可,不需要关心Flink任务重启造成的状态丢失问题
喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!
相关文章:
flink维度表关联
分析&回答 根据我们业务对维表数据关联的时效性要求,有以下几种解决方案: 1、实时查询维表 实时查询维表是指用户在Flink 的Map算子中直接访问外部数据库,比如用 MySQL 来进行关联,这种方式是同步方式,数据保证是…...
Docker Compose 安装使用 教程
Docker Compose 1.1 简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的 快速编排 。从功能上看,跟 OpenStack 中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源。 Compose 定位是 「定义和运行多个…...
睿趣科技:开抖音小店挣钱吗到底
在当今数字化时代,社交媒体平台成为了创业者们寻找商机和赚钱的新途径。而抖音作为一款风靡全球的短视频分享平台,自然也成为了许多人开设小店、进行创业的选择之一。那么,开抖音小店能否真正实现盈利,成为了一个备受关注的话题。…...
国际腾讯云账号云服务器网络访问丢包问题解决办法!!
本文主要介绍可能引起云服务器网络访问丢包问题的主要原因,及对应排查、解决方法。下面一起了解腾讯云国际云服务器网络访问丢包问题解决办法: 可能原因 引起云服务器网络访问丢包问题的可能原因如下: 1.触发限速导致 TCP 丢包 2.触发限速导致…...
Deepnote:为什么我停止使用 Jupyter Notebook
Jupyter 笔记本已经成为必不可少多年来用于众多数据科学工作流程的工具。其中包括执行数据挖掘、分析、处理、建模以及在每个数据科学项目的生命周期中执行的一般日常实验任务。 Jupyter(作者提供的图片) 尽管它很受欢迎,但许多数据科学家也指出了它的众多缺点,例如这里和...
山西省文物局与大势智慧签订战略合作协议
8月24日,由山西省文物局、中国文物信息咨询中心(国家文物局数据中心)主办的数字文博发展论坛在太原举行。武汉大势智慧科技有限公司(后简称“大势智慧”)受邀参与,与来自国内文博数字化领域的专家学者齐聚一堂,围绕“数…...
Java设计模式:一、六大设计原则-02:开闭原则
文章目录 一、定义:开闭原则二、模拟场景:开闭原则2.0 工程结构2.1 定义面积计算接口2.2 面积计算实现类 三、违背方案:开闭原则四、改善代码:开闭原则4.1 扩展继承4.2 单元测试 一、定义:开闭原则 开闭原则ÿ…...
DETRs Beat YOLOs on Real-time Object Detection
目录 1、模型架构1.1高效混合编码器1.1.1 尺度内特征交互模块AIFI1.1.2 跨尺度特征融合CCFM 1.2IoU感知查询选择总结 DETRs在实时目标检测中击败YOLO 问题:DETR的高计算成本,实时检测效果有待提高 解决:提出了一个实时的目标检测器 具体来说…...
【数据分享】1901-2022年1km分辨率的逐月降水栅格数据(免费获取/全国/分省)
气象指标在日常研究中非常常用,之前我们给大家分享过来源于国家青藏高原科学数据中心提供的气象指标栅格数据(均可查看之前的文章获悉详情): 1901-2022年1km分辨率逐月平均气温栅格数据1901-2022年1km分辨率逐年平均气温栅格数据…...
全网首发!奔驰宝马奥迪卡带机卡带通道激活模块,无损安装可以接2路AUX
文章目录 1.前言2.时序逆向分析2.1协议分析2.2卡带音频通道引出 3、PCB设计4、程序设计5、焊接调试6、结语 1.前言 之前写过四篇关于车机增加音频输入的方法。 1、07宝来经典车机CD收音机(RC668)改装增加蓝牙播放音乐 2、全网首发!老大…...
反弹shell总结
反弹shell总结 讲在前面说的话:反弹shell总结nc反弹shell正向shell反向shell正向shell(服务端被攻击):反向shell(客户端被攻击):无nc反弹shellpython反弹shellbash反弹shellPHP反向shellPerl反向shellJava反弹shellsocat 反弹shellRuby反弹shellLua反弹shellAwk 反弹she…...
[机缘参悟-103] :IT人关于接纳的思考与感悟
目录 前言: 一、接纳 1.1 什么是接纳 1.2 对接纳的误解 1.3 接纳的含义 1.4 "存在即合理" VS 接纳 1.5 接纳 VS 躺平 VS 随遇而安 1.6 为什么现实总是那么不尽人意 1.7 现实世界的多样性 1.8 接纳与认命 1.9 不接纳的表现 前言: …...
甄知携AIGC新升级产品参与首届人工智能生成内容国际会议,共探AIGC最前沿技术
首届人工智能生成内容国际会议(2023The 1st International Conference on AI-generated Content (AIGC2023)于2023年8月25-26日在中国上海举行。本次会议得到了复旦大学、中国科技大学、同济大学、上海交通大学、上海人工智能实验室、香港中文大学等知名院校和研究机构的大力支…...
4.9 已建立连接的TCP,收到SYN会发生什么?
1. 客户端的 SYN 报文里的端口号与历史连接不相同 此时服务端会认为是新的连接要建立,于是就会通过三次握手来建立新的连接。 旧连接里处于 Established 状态的服务端最后会怎么样呢? 服务端给客户端发消息了:客户端连接已被关闭ÿ…...
leetcode 365 水壶问题
有一个水壶容量或者两个水壶加起来总容量为目标容量 总共有八种选择:第一种倒满x,第二种倒满y,第三种清空x,第四种清空y,第五种x 倒给 y y能装满 ,第六种 x 倒给 y x倒完, 。。。。 这里用深度遍历,时间超时 class Solution {public boole…...
django/CVE-2017-12794XSS漏洞复现
docker搭建漏洞复现环境 漏洞原理看帮助文档 # Django debug page XSS漏洞(CVE-2017-12794)分析Django发布了新版本1.11.5,修复了500页面中可能存在的一个XSS漏洞,这篇文章说明一下该漏洞的原理和复现,和我的一点点评…...
【学习笔记】计算机视觉对比学习综述
计算机视觉对比学习综述 前言百花齐放InstDiscInvaSpreadCPCCMC CV双雄MoCoSimCLRMoCo v2SimCLR v2SwAV 不用负样本BYOLSimSiam TransformerMoCo v3DINO 总结参考链接 前言 本篇对比学习综述内容来自于沐神对比学习串讲视频以及其中所提到的论文和博客,对应的链接详…...
【Linux】fork函数的基础知识
文章目录 前言一、fork的返回值二、常见问题 1.为什么fork要给子进程返回0,给父进程返回子进程pid?2.一个函数返回两次值怎么理解? 3.一个变量怎么会有不同的内容? 4.fork函数干了什么? 前言 fork初识: …...
代码随想录算法训练营day48 | LeetCode 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III
198. 打家劫舍(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台) 思路:dp题除背包外的另外一类题目,重点不在于看前面的情况,而在于考虑本节点的情况。一种情况…...
【已解决】Java 后端使用数组流 Array.stream() 将数组格式的 Cookie 转换成字符串格式
🎉工作中遇到这样一个场景:远程调用某个接口,该接口需要用户的 Cookie 信息进行权限认证,认证通过之后才可以打通并返回数据。 在后端拿到 httpServletRequest 后,调用 getCookies() 方法,返回的是一个 Coo…...
FastAPI 2.0 + LLM流式输出全栈方案,含OpenAI兼容层、前端SSE重连策略、服务端背压控制(仅限内部技术白皮书级实录)
第一章:FastAPI 2.0 异步 AI 流式响应教程概览FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,为构建低延迟、高吞吐的 AI 接口(如大语言模型推理、语音合成、实时图像生成)提供了坚实基础…...
阿里云 ECS 部署 SpringBoot 项目完整教程(无坑可直接照着做)
需要购买阿里云服务器、学习服务器搭建的朋友看这里 👇阿里云超值折扣购买通道 :https://t.aliyun.com/U/L7DIVq 超详细服务器搭建教程:手把手教你阿里云服务器的购买及环境搭建 无论是新手入门、个人建站还是企业部署,都能一站…...
Vue 组态化管道流动效果:从零构建现代化流体模拟系统
1. 为什么需要管道流动模拟系统 在工业自动化和教学演示领域,可视化管道系统是一个常见需求。想象一下化工厂的液体输送管道、城市供水系统或者实验室的流体实验装置,这些场景都需要直观展示流体在管道中的流动状态。传统做法是使用静态图片或简单动画&a…...
基于离散化方法的三维土豆运动微波加热案例:参数化扫描与继承解算子实现离散化
基于离散化方法三维土豆运动微波加热的案例——第一种方法参数化扫描和继承解的算子实现离散化 离散化方式是最常见的实现运动仿真的方法之一,实现离散化的方法有很多,对于COMSOL主要的离散化及种 目前我研究了三种实现离散化的方法,这三种方…...
忍者像素绘卷效果对比:亮色像素美学 vs 传统暗调像素艺术表现力
忍者像素绘卷效果对比:亮色像素美学 vs 传统暗调像素艺术表现力 1. 作品概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,它将忍者文化与16-Bit复古游戏美学完美融合。这款工具最显著的特点是采用了全新的"亮色像素"界面…...
掌握PingFangSC字体配置优化:面向全平台开发者的专业指南
掌握PingFangSC字体配置优化:面向全平台开发者的专业指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 比传统方案提升30%效率的跨平台适配…...
ai辅助开发,让快马平台智能优化你的openclaw脚本安全性与性能
今天想和大家分享一个实用技巧:如何用AI辅助开发,在InsCode(快马)平台上优化openclaw脚本的安全性与性能。最近我需要一个能智能清理下载文件夹的脚本,但又要避免误删重要文件,这个需求让我深刻体会到AI辅助开发的便利性。 需求分…...
SiameseAOE中文-base高性能部署:WebUI响应<800ms,吞吐达12QPS(RTX4090)
SiameseAOE中文-base高性能部署:WebUI响应<800ms,吞吐达12QPS(RTX4090) 今天要跟大家聊一个非常实用的工具——SiameseAOE通用属性观点抽取模型。你可能听说过信息抽取,但面对海量文本,如何快速、准确地…...
ai赋能开发:让快马智能助手帮你诊断和优化openclaw ubuntu部署难题
最近在Ubuntu上部署OpenClaw项目时,遇到了不少头疼的问题。从依赖冲突到参数调优,每一步都可能踩坑。不过我发现,借助AI辅助开发工具,这些问题可以变得更可控。今天就来分享下如何构建一个AI工具箱来优化OpenClaw的部署和开发体验…...
数据仓库核心概念:事实表和维度表详解与实战应用
数据仓库核心概念:事实表和维度表详解与实战应用一、引言二、定义:什么是事实表?什么是维度表?2.1 事实表:定义2.2 维度表:定义三、结构流程图:事实表与维度表关联关系3.1 标准星型模型关联流程…...
