实时数仓中数据实时输出的思考与实现

news2024/12/30 1:46:32

随着数据量不断增长以及提升企业竞争力的需求增长,实时数仓已经成为了许多业务和组织的重要数据架构之一。在实时数仓中,数据实时输入和数据实时分析是关键步骤,但同样重要的是如何将处理后的数据输出到各种目标上。本文将探讨实时数仓中数据实时输出的实现思路。

在数据实时分析一文中,落地实现后,实时指标结果集存储在了ADS层表中。下一步可以输出到BI大屏,可以作为服务公开给第三方;如果想更加实时,可以将数据实时分析这一步直接做成服务,供BI大屏和第三方调用,省掉了ADS层落盘步骤,实时性更强,只是这样做对数仓架构资源配置要求较高,需架构师做出平衡。

我们从实时数仓中的指标计算结果输出到BI大屏和作为服务公开给第三方两个方面来聊一聊。

1.输出到BI大屏

实时数仓的目标之一是提供实时能力以支持即席查询和大屏展示等实时数据可视化需求。在这种情况下,我们可以使用BI大屏软件来展示实时数据分析结果,并根据需要对这些数据进行调整和重新布置。要将数据输出到BI大屏,可以使用以下方法:

  • 数据集成平台输出:使用数据集成平台连接到实时数仓,将数据提取到BI大屏所在的服务器或云服务上。这个过程可以实时进行,使得BI大屏上的数据可以实时更新。

  • REST API输出:实时数仓通过定义REST API来暴露数据,并通过BI大屏软件的Web连接器来访问这个API,可以让BI大屏直接读取实时数据。

  • 直接连接数据源:BI大屏软件可以直接连接实时数仓,通过ODBC/JDBC/ADO.NET等标准数据库链接协议来实现数据查询和展示。

2. 作为服务公开给第三方

除了BI大屏之外,实时数仓还可以将处理后的数据以服务的方式公开给其他应用程序使用。例如,我们可以将数据公开为API或Web服务的方式,以允许第三方系统或应用程序访问实时数仓的数据,从而实现数据共享和增值。要将数据输出到第三方,可以使用以下方法:

  • REST API:REST API是一种基于HTTP的Web服务,可以通过定义API来暴露实时数仓的数据。第三方应用程序可以使用HTTP请求来调用API,并获取或提交数据。

  • Web服务:Web服务是一种标准化的计算机通信协议,可以实现不同操作系统和编程语言之间的数据交换。在实时数仓中,我们可以定义一个Web服务来将数据公开给第三方应用程序。

  • 数据流输出:使用Apache NiFi这样的数据流工具可以输出实时数据流,将处理后的数据实时流向目标系统或应用程序。


有了思路之后,下一步就是落地实现了,根据数仓架构的技术选型不同,实现方式也会不同。这里基于笔者的实时数仓技术选型,提供一种基于NIFI工具的实现方式。

Apache NiFi是一款开源的数据流处理工具,它提供了丰富的数据整合功能,包括数据摄取、转换、路由、输出等。在实时数仓中,我们可以使用NiFi来实现数据输出的需求。

1.输出到BI大屏

  • 使用NiFi将数据集成平台输出:NiFi可以连接到数据集成平台(如Kafka、Hadoop等),并将实时数仓的数据提取到BI大屏所在的服务器或云服务。具体而言,我们可以使用NiFi的ConsumeKafka组件来消费Kafka主题中的数据,并使用PutSQL或PutFile等组件将数据写入到外部数据库或文件中。这些数据可以通过数据集成平台的连接器输出到BI大屏进行展示。

  • 使用NiFi将REST API输出:NiFi还可以通过定义REST API来暴露数据。具体而言,我们可以使用NiFi的HandleHttpRequest和HandleHttpResponse等组件定义接口,并使用Jolt等转换器组件将实时数仓的数据转换为可访问的JSON格式。第三方应用程序可以使用HTTP请求来调用API,并获取或提交数据。

2.作为服务公开给第三方

使用NiFi将实时数仓数据作为服务公开给第三方可以采用以下方法:

  • 使用NiFi将实时数据流输出:我们可以使用NiFi的Provenance数据监控和处理实时数据流,并使用PutKafka或PutFile等组件将数据实时输出到其他系统或应用程序。这样的输出方式可以更好地支持实时数据流的共享和传递。

  • 使用NiFi将REST API输出:使用NiFi可以定义REST API,并使用HandleHttpRequest和HandleHttpResponse等组件转换数据。通过这种方式,我们可以将实时数仓的数据以API或Web服务的方式公开给第三方应用程序。

下图是《数据实时数仓REST API接口》的NIFI实现ETL任务,对其他实现方式感兴趣的朋友,可以加微信一起讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/600923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊正常购物下单流程是怎么样的?

当您想要在亚马逊上购物时,您可以按照以下步骤进行: 1、登录亚马逊账户:在亚马逊的官方网站上,使用您的亚马逊账户进行登录。如果您还没有账户,可以在网站上注册一个新账户。 2、浏览商品:在亚马逊首页上&…

CASAIM受邀参加广东省科学院幼儿园举行的第二届STEAM科技节暨庆“六一”科普嘉年华活动

今年6月1日是第63个“六一”国际儿童节,恰“接棒”第7个全国科技工作者日。CASAIM受邀参加广东省科学院幼儿园举行的第二届STEAM科技节暨庆“六一”科普嘉年华活动,展示高精度的三维扫描和3D打印技术,为广大儿童送上精彩的科普大礼。 从小朋友…

视图及其缩放

相机控制 在本课中,您将学习如何通过使用 ViewCube 更改模型视图来检查您的设计。 学会环顾四周 在创建设计时,能够从各个方面看到您的设计会有所帮助。 让我们了解如何更改视图。 你能旋转你的视图看看谁在幕后吗?ViewCube(…

最新office365个人和家庭版下载及功能介绍

到了台新联想笔记本,想试试随机带的office365,才发现要有microsoft账户,要重新注册账号。 搞了一圈,很麻烦,发现微软登陆帐号时一直在转圈圈,而无法完成登录。 大概率还是因为服务器在海外的原因。 于是索性…

【企业化架构部署】Apache配置与应用

文章目录 一、构建虚拟web主机1.概述2.httpd服务支持的虚拟主机类型3.构建虚拟Web主机3.1基于域名的虚拟主机3.2基于IP地址的虚拟主机3.3基于端口的虚拟主机 4.Apache连接保持5.Apache访问控制 二、Apache日志管理rotatelogs分隔工具 三、总结1.Web虚拟主机部署步骤2.网页根目录…

【UE5 新手向】网络同步1 —— 开启 Actor 的位置网络同步

新建一个第三人称 C 项目 在播放设置中,将 Number of Players 改为2,并将 Net Mode 改为Play As Listen Server。 播放游戏,可以发现角色默认开启了同步。 停止播放,选中场景中的某个物体。 在 Details 面板选择新建蓝图。 选…

chatgpt赋能python:Python编程实现文件备份功能

Python编程实现文件备份功能 数据对于任何企业都是极其重要的。文件备份是数据备份的一种重要形式。在发生系统损坏、恶意攻击、误操作等情况时能够帮助我们恢复数据。本文将介绍如何使用Python编程实现文件备份功能。 备份的重要性 对于企业而言,数据备份就像是…

clang 01. clang driver流程分析

文章目录 前言在这里简要概述一下clang的流程 1.clang driver代码分析1.1创建诊断(DIagnosticsEngine)实例1.2创建Driver(clang::driver::Driver)的实例1.3通过Driver的BuildCompilation方法生成需要执行的命令1.4Jobs构建完成,通过Driver的E…

OS-文件管理1-文件-文件的逻辑结构与物理结构。

一,文件管理 关键词:如何组织及提供的功能。 二,文件-文件基本概念。 1.文件,记录,数据项 2.文件属性 三,文件-文件控制块FCB与索引结点。 文件控制块FCB:用来存放控制文件需要的各种信息…

在软件定义汽车的时代,低代码究竟给车企数字化转型带来了什么?

前言: 软件定义汽车(Software Defined Vehicles, SDV),是由百度自动驾驶事业部总经理王劲提出的概念。其核心思想是,决定未来汽车的是以人工智能为核心的软件技术,而不再是汽车的马力大小,是否…

Java并发体系-第三阶段-JUC并发包-[1]

AtomicXXXFieldUpdater 算是一个小补充 简介 public class AtomicIntegerFieldUpdaterTest {public static void main(String[] args) {AtomicIntegerFieldUpdater<Test> updater AtomicIntegerFieldUpdater.newUpdater(Test.class, "value");Test ts new T…

Maven处理依赖冲突

1.java常用的包依赖异常有&#xff1a; 1&#xff09;AbstractMethodError 2&#xff09;NoClassDefFoundError 3&#xff09;ClassNotFoundException 4&#xff09;LinkageError Maven会根据pom文件中的groupId、artifactId、version来判断jar是否冲突 如果出现了同名不…

开发软件必须写代码?来看smardaten如何零代码开发学生管理系统

一、前言 互联网产品在我们的生活中无处不在&#xff0c;但你知道开发一个这样的产品需要的成本有多大吗&#xff1f; 传统的产品研发模式是&#xff1a;功能需求&#xff0c;需要调研&#xff0c;画原型&#xff0c;开发&#xff0c;测试&#xff0c;上线&#xff0c;跟踪运…

基于Python+OpenCV的图像搜索引擎(CBIR+深度学习+机器视觉)含全部工程源码及图片数据库下载资源

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 定义图像描述符3. 索引化数据集4. 设计搜索引擎内核5. 执行搜索 系统测试1. 处理数据集2. 执行搜索 工程源代码下载其它资料下载 前言 本项目旨在开发一套完整高效的图像搜索引擎&#xff0c;为用…

python程序大全(7)——一元一次、一元二次方程解及函数解析

&#x1f3c6;一、前言 从1月到6月一直没更新&#xff0c;学习太忙辣。马上就要暑假了&#xff0c;今天是六一儿童节&#xff0c;所以抽出空来更新更新。 本文讲述的是1元1次方程&#xff0c;1元2次方程的python解法。只用给出一般形式的系数和常数&#xff0c;自动给出方程的…

企业为什么要进行思维与创新内训?有什么好处?

产品思维和创新在现代产品开发和管理中具有重要作用。 产品思维是指在设计和开发产品过程中&#xff0c;综合考虑用户需求、市场趋势、技术发展等多方面因素&#xff0c;以实现产品的有效性、可用性、价值和竞争力。 创新则是通过引入新的想法、方法或技术&#xff0c;创造出新…

table表格排序,@sort-change=“sortChange“ 取消排序

table表格排序&#xff0c;sort-change"sortChange" 取消排序 点击的单个进行排序时,要求isAsc对应当前字段的排序顺序;值ascending,descending,null三种情况;若指定了列对应的prop,没有指定order的话,默认ascending; desc降序&#xff0c;asc升序&#xff0c;当点升…

《水经注地图服务》下载与安装步骤

概述 《水经注地图服务》&#xff08;WeServer&#xff09;是一款可快速发布全国乃至全球海量卫星影像的地图发布服务产品&#xff0c;该产品完全遵循OGC相关协议标准&#xff0c;是一个基于若干项目成功经验总结的产品。它可以轻松发布100TB级海量卫星影像&#xff0c;从而使…

【漏洞复现】海康威视iVMS综合安防系统任意文件上传漏洞复现 (在野0day)

文章目录 前言声明一、产品简介二、漏洞概述三、影响范围四、漏洞验证五、漏洞利用六、修复建议 前言 海康威视iVMS综合安防系统存在任意文件上传漏洞 &#xff0c;攻击者可通过构造特定Payload实施对目标的攻击。 声明 本篇文章仅用于漏洞复现与技术研究&#xff0c;请勿利用…

chatgpt赋能python:Python中出现NaN的原因及相关处理方法

Python中出现NaN的原因及相关处理方法 介绍 Python是一种灵活、可扩展的编程语言&#xff0c;它已经成为科学计算、数据分析、人工智能等领域的重要工具。然而&#xff0c;在Python编程过程中&#xff0c;会出现一些比较特殊的问题&#xff0c;其中之一就是NaN。 NaN&#x…