全景天窗式科普数据仓库

news2025/3/1 1:58:53

数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳定的数据集合,用于支持管理决策过程。其本质就是完成从面向业务过程数据的组织管理到面向业务分析数据的组织和管理的转变过程,也是商业智能BI中数据仓库的主要作用。

数据仓库 - 派可数据商业智能BI可视化分析平台

数据仓库就像企业的总的大仓库,能够存储不同来源、不同格式的数据,并且可以通过ETL和数据模型,对数据进行高质量的筛选,分级分类进行存储。具有很强的稳定性,不会频繁的进行增删改等操作,能够反映历史变化。

今天我们从数据的源头开始说起,数据的源头是数据采集和上报。

(一)数据采集

采集内容

数据采集一般需要涵盖4W(When、Where、Who、What)四大要素,像作文一样分别从时间、地点、人物、事件对用户的行为予以描述。
When
操作时间。有些数据上报并不是在采集后马上进行的,而是累计采集N条后打包上报;有些参数的获取需要前后台彼此交互,所以时间的采集可以细分为动作发生的时间、采集时间、前后台交互完成时间、上报时间等,根据各业务需求和复杂程度决定采集的类型和范围。

数据展示 - 派可数据商业智能BI可视化分析平台

Where
操作地点。一般可以通过IP地址或经纬度确定。
Who
身份标识。这里主要介绍2种身份标识:用户账号和设备号。
用户账号是各个应用按照自己的规则赋予用户的内部身份标识。其中有些应用根据流量域属性、内容生产和消费属性等设计了多级账号体系;有些应用则使用单账号体系;有些使用大生态下的开放账号体系。

设备号是硬件设备的身份标识,包括但不限于手机、电脑、电视、智能可穿戴设备等。设备号的作用是识别一台具体设备,例如IMEI、IDFA、OAID等,生成设备ID的相关的算法也在不断优化升级以达到更准确的识别和标记。
在硬件推送(PUSH)场景下,用户账号要先转化为设备号才能进行正常推送。除此之外,设备号在黑产打击方面也有大规模的应用。

What

操作内容。诸如页面、曝光、点击等操作和相关的业务参数在此进行采集。在前端框架技术上支持的情况下,用户操作的来源和去向也可以根据统计需要进行采集。

数据采集和上报是为了优化服务的,不能过度影响到应用的正常功能,所以需要在一定程度上进行权衡与精简。而操作内容的采集场景,存在大量的前后端数据交互,若请求数据结构过大,则可能影响传输性能进而影响使用体验。

采集方式

埋点采集
前后端应用开发人员在特定场景下的特定时机,根据需要采集特定的参数。早期和中小型应用多使用该采集方式。其优点是开发成本低,修改灵活;但缺点是容易造成全局采集逻辑不一致的情况,后续维护成本和数据加工成本高。

SQL - 派可数据商业智能BI可视化分析平台

SDK采集

SDK通过内部集成采集和缓存能力,统一采集时机和采集策略,标准化采集事件来进行全局参数采集,是从数据源头改善数据质量的重要方式,已经被越来越多的大型业务所使用。其优点是标准化程度高,降低前后端开发人员的开发量;缺点是开发这一套工具需要较大的前期投入。

采集时机和采集策略的统一是SDK采集相较于埋点采集的重大改进。用曝光场景举个例子,若使用埋点上报,有些开发人员在目标露出屏幕100个像素时采集,另一些开发人员可能在目标露出5%时进行采集;不同的开发人员在采集同一个参数时,使用的代码和采集路径也不一定完全相同。在大型应用中,数据的采集不是一次就能完成的,而是一个分阶段进行的过程,采集的参数个数也可能不是几个,而是几十上百个,所以不同的采集时机和采集策略就意味着能采集到参数的个数和质量也不尽相同。

BINLOG采集
BINLOG可以获取数据库的每一条变更记录,由此完成DB数据的采集。目前已经有比较成熟的开源组件可以直接使用。其优点是无需前后端开发人员的额外工作,但缺点是后续的数据加工会变得非常复杂,需要频繁的去重和取最新数据的操作,这在实时数据处理场景下几乎是致命的。
数据采集的质量决定了数仓质量的上限,数据开发的工程量是数据源质量和数仓设计与实施质量共同决定的。一个团队多做一点,另一个团队就少做一点,但在一些关键节点上,一个团队修补另一个团队的开发空缺可能是几倍甚至几十倍的工作量。在预期提供相同质量数仓的前提下,决策者需要合理平衡数据源开发和数仓开发的工作配比,才能更大程度地发挥数据价值。

(二)数据上报

拿到采集的数据以后,需要进行数据的上报,才能被后续的链路所使用。

客户端(前端)上报

客户端在采集到的数据后,直接或在缓存N条以后,批量将数据通过网络发送到日志服务器。这个过程可能由于网络波动或者用户直接杀掉进程导致部分数据上报缺失;有些应用为应对网络问题会内置上报重试逻辑,一定程度上解决上报缺失的同时也引入了重复上报的可能性。

数据大屏 - 派可数据商业智能BI可视化分析平台

无论是上报缺失或者上报重复,都是小概率事件,并且一般通过客户端上报的数据都是页面、曝光、点击这类的描述性数据,故在统计容忍的范围内仍可接受。

后台上报

后台服务在用户触发较为关键性的操作时(例如访问、下单、关注等)或者后台主动操作时(例如发券、回收权限等)进行相关参数的采集和上报,也是通过网络发送到日志服务器上。但因为后台服务一般处于比较稳定的内部生产环境,所以上报的成功率会比客户端更高,一些对准确性要求较高的统计数据可以使用后台上报的方式。

BINLOG上报

数据库BINLOG的采集和上报一般是集成在一起的,可以在采集后立即发送到消息队列(多为Kafka队列)完成数据上报。

(三)数据源选择

数仓里的数据不是业务DB里的数据,中间经过了采集和加工过程。

数据在加工链路上不可避免地会产生一定程度的丢失和延迟,所以在要求高准确性和低延迟的简单统计场景下,在不会影响到应用基本功能的前提下更推荐在DB内直接统计数据;在同样要求高准确和低延迟的较复杂场景时,也可以通过提高数仓建设标准和一定程度的定制开发,使用经数仓加工后的数据。

数据仓库 - 派可数据商业智能BI可视化分析平台

数据源的选择同样面临投入产出比的衡量,业务DB由于范式概念的设计,较难实现复杂的统计需求,但具有准确和快速的优点,数仓可以进行大规模复杂计算,但面对极低延迟和极强准确性的需求时也会提高其建设成本。

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

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

相关文章

Spring Boot 定时任务

Spring Boot 提供了方便的注解来实现定时任务。下面是定时任务注解的详细教程&#xff1a; 一、添加依赖 要使用 Spring Boot 的定时任务注解&#xff0c;首先需要在项目中确认已添加过spring-boot-starter的依赖。 <dependency><groupId>org.springframework.b…

【youcans的深度学习 D01】PyTorch例程:从极简线性模型开始

欢迎关注『youcans的深度学习』系列 【youcans的深度学习 D01】PyTorch 例程&#xff1a;从极简线性模型开始 1. PyTorch 建模的基本步骤2. 线性模型的结构3. 建立 PyTorch 线性模型3.1 准备数据集3.2 定义线性模型类3.3 建立一个线性模型3.4 模型训练3.5 模型推断 4. PyTorch …

java-处理xml格式数据

处理xml格式数据 前言一、java处理xml格式数据1、 生成XML格式数据2、 解析XML格式数据 二、问题三、常用类及方法介绍 前言 dom4j是java中的XML API&#xff0c;性能优异、功能强大、开放源代码。 也是所有解析XML文件方法中最常用的&#xff01; 一、java处理xml格式数据 …

榜单发布 新能源乘用车OBC赛道进入转型升级周期

新能源汽车尤其是纯电动汽车市场的快速普及&#xff0c;也带动一批相关核心零部件厂商做大做强。比如&#xff0c;以车载充电机OBC及集成电源行业为例&#xff0c;威迈斯、富特科技等数家公司正在冲刺IPO。 目前&#xff0c;车载电源领域产品主要分为三种&#xff1a;一是单一…

步入AIGC时代,展望人工智能发展

步入AIGC时代&#xff0c;展望人工智能发展 0. 前言1. 步入 AIGC 时代1.1 人工智能简介1.2 AIGC 简介1.3 AIGC 发展与应用 2. CSIG 企业行——走进合合信息2.1 活动介绍2.2 走进合合信息 3. 文档图像处理中的底层视觉技术3.1 什么是底层视觉3.2 智能图像处理技术3.3 智能图像处…

消息中间件RabbitMQ---概述和概念 【一】

1、概述 1、大多应用中&#xff0c;可通过消息服务中间件来提升系统异步通信、扩展解耦能力 2、消息服务中两个重要概念&#xff1a; 消息代理&#xff08;message broker&#xff09;和目的地&#xff08;destination&#xff09; 当消息发送者发送消息以后&#xff0c;将由…

C语言中数据结构——顺序表

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

java多线程详细讲解 线程的创建、线程的状态、synchronized锁、Volatile关键字、和cas锁(自旋锁 乐观锁 无锁)

java多线程详细讲解 线程的创建、线程的状态、synchronized锁、Volatile关键字、和cas锁&#xff08;自旋锁 乐观锁 无锁&#xff09; 一、线程的概念二、创建线程的三种方式三、线程方法Sleep、Yield、Join四、线程的执行状态五、synchronized关键字1.为什么要上锁?2.锁定的内…

SDL初识(1)

简介 SDL(Simple DirectMedia Layer) 是一个跨平台开发库&#xff0c;旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。 SDL 支持 Windows、Mac OS X、Linux、iOS 和 Android。可以在源代码中找到对其他平台的支持。SDL 是用 C 语言编写的…

JavaScript【六】JavaScript中的字符串(String)

文章目录 &#x1f31f;前言&#x1f31f;字符串(String)&#x1f31f;单引号和双引号的区别&#x1f31f;属性&#x1f31f; length :字符串的长度 &#x1f31f; 方法&#x1f31f; str.charAt(index);&#x1f31f; str.charCodeAt(index);&#x1f31f; String.fromCharCod…

死磕“增长”:火山引擎的实用主义

作者 | 曾响铃 文 | 响铃说 在刘慈欣的科幻小说《三体》中&#xff0c;地外文明为了封锁地球科技&#xff0c;在天文台向地球科学家展现了「宇宙闪烁」这一奇观&#xff0c;试图颠覆人类的认知&#xff0c;从而影响科技进步&#xff0c;促使地球科技发展陷入停滞。 如今&…

给你们讲个笑话——低代码会取代程序员

今天是正经男&#xff0c;我们严肃讨论一下一直以来争吵不休的取代问题。 低代码开发平台&#xff0c;低代码技术会取代开发人员么&#xff1f; 一、背景 低代码开发平台的普及&#xff0c;让很多公司对快速生成应用抱有很大期望。甚至有人认为&#xff0c;低代码开发平台未来…

MTLAB绘图

这里写目录标题 一、图例1、散点图 二、绘图1、总体图形参数2、坐标、图框、网格图框去上右边框小刻度网格坐标范围和刻度控制旋转 坐标、刻度 3、图例图例位置和方向 Location和Orientation图例加标题 、分多列 4、文本 字、字体、字号5、线型 符号6、颜色栏 colorbar7、颜色8…

【技能分享】CAD转SHP最好的方法

1、利用 ArcToolsbox 工具先将 DWG 文件转为 MDB 通过 CASS 软件生成的 DWG 文件&#xff0c;字段中包含有很多属性内容&#xff0c;所以我们先将 DWG 格式 的文件转换为 MDB 格式&#xff0c;再通过 MDB 转换为 SHP 格式数据进行整理。具体步骤如下&#xff1a; 通过 ArcTool…

2023Mathorcup高校数学建模挑战赛ABCD选题建议

提示&#xff1a;本科同学尽量选择C、D题进行作答&#xff0c;获奖率相对会高。C君认为的难度&#xff1a;AD<C<B&#xff0c;开放度&#xff1a;B<C<A<D 。 A题 量子计算机在信用评分卡组合优化中的应用 这道题目是传统的运筹学题目。需要建立客户信用等级的…

阿里ARouter 路由框架解析

一、简介 众所周知&#xff0c;在日常开发中&#xff0c;随着项目业务越来越复杂&#xff0c;项目中的代码量也越来越多&#xff0c;如果维护、扩展、解耦等成了一个非常头疼问题&#xff0c;随之孕育而生的诸如插件化、组件化、模块化等热门技术。 而其中组件化中一项的难点&…

Spring Cloud 之五:Feign使用Hystrix

系列目录&#xff08;持续更新。。。&#xff09; Spring Cloud之一&#xff1a;注册与发现-Eureka工程的创建 Spring Cloud之二&#xff1a;服务提供者注册到Eureka Server Spring Cloud之三&#xff1a;Eureka Server添加认证 Spring Cloud之四&#xff1a;使用Feign实现…

camunda如何监控流程执行

在 Camunda 中&#xff0c;可以使用 Camunda 提供的用户界面和 API 来监控流程的执行情况。以下是几种常用的监控流程执行的方式&#xff1a; 1、使用 Camunda Cockpit&#xff1a;Camunda Cockpit 是 Camunda 官方提供的流程监控和管理工具&#xff0c;可以在浏览器中访问 Co…

【百面成神】消息中间件基础7问,你能撑到第几问

前 言 &#x1f349; 作者简介&#xff1a;半旧518&#xff0c;长跑型选手&#xff0c;立志坚持写10年博客&#xff0c;专注于java后端 ☕专栏简介&#xff1a;纯手打总结面试题&#xff0c;自用备用 &#x1f330; 文章简介&#xff1a;消息中间件最基础、重要的9道面试题 文章…

Android中的MVVM架构:使用Jetpack组件实现现代化的应用架构

Android中的MVVM架构&#xff1a;使用Jetpack组件实现现代化的应用架构 Jetpack组件是构建现代Android应用的绝佳利器&#xff0c;组件化设计让构建App如此简单。 引言 随着移动应用的日益复杂和功能的不断增加&#xff0c;构建稳健、可扩展和易维护的Android应用变得越来越重…