深度解析:基于离线开发的数据仓库转型落地案例

news2024/12/25 12:45:09

在当今这个数据驱动的时代,各行各业都正经历着前所未有的变革。伴随技术的飞速发展,数据仓库作为企业数据管理与分析的核心,如何更好地发挥作用,助力企业保持业务的敏捷性与成本效益,成为大家关心的焦点问题。本文将通过具体案例分析,展现基于离线开发的数据仓库转型落地中的关键步骤与实施策略。

一、业务增长迅速,原数仓架构难以为继

客户A是一家中美合资的泛金融行业公司,成立时间短但业务增长十分迅速。数仓团队规模不到10个人,勉强能支撑起业务需求,在面对越来越高要求的业务数据供给及公司内部降本增效的趋势下,团队也在不断探索新型的数仓平台模式,目前数仓架构如下图: file

客户底座集群采购了CDP7.1.6、数据集成采用Sqoop,将业务库的数据同步至HDFS后,通过Hive SQL做数据开发。另有少量的Shell、Python任务,使用Oozie进行离线任务调度。

二、当前数据平台问题日渐凸显

随着业务体量的逐渐增长,当前数据平台架构的问题也逐渐凸显: 1. 运维成本高:Sqoop和Oozie都是开源工具,集成性一般,组件的升级和异常排查需要耗费较多人力成本。

** 2. 平台上手门槛高**:除数据开发外,很多业务方也希望直接在平台进行临时取数,但因上手门槛高,业务方一直没用起来,导致大量简单的需求仍堆积到数据开发侧,并且得不到快速响应。

3. 现有开发模式无法满足数据开发合规要求:目前数据开发环境仅有一套生产环境,对任务和数据做的任何变更都直接影响线上业务,操作高风险,多次因人为失误导致线上故障。

4. 任务依赖配置繁琐且易出错:目前几乎所有的任务每个工作日4批次调度,任务与任务之间的依赖通过HDFS信号文件通知实现,经常出现信号文件缺失或产出超时导致的下游任务失败。 file

5. 开发人员水平不一,代码质量难监控:运维人员人工巡检时经常看到部分任务运行时间长占用大量资源,大多数情况下是SQL代码质量问题导致,然而目前无法在事前进行规范约束和监控。另外因数据集成小时任务多,大部分数据开发没有调参意识,造成小文件大量堆积。

6.数据产出延迟问题排查困难:每天早上9点的数据产出经常出现延迟,因依赖链路长,难以排查数据延迟源头,下游反馈多次影响业务。

7. 接口没有统一管控:API重复开发、越权调用问题频发,管理不到位且管理困难。

三、重塑数据开发平台,提升效率和满意率

袋鼠云数栈团队针对客户A的以上问题设计了新的产品架构,帮助客户重新搭建数据开发平台,有效解决使用痛点,提升数据开发人员的工作效率和业务人员满意率。 file

针对客户上述问题,数栈结合已有功能给出的解题如下: 1. 运维成本大大降低 数栈的数据集成、开发与调度均为自研,所有模块天然集成,且有专门的运维与技术支持团队服务,客户的运维成本几乎降到0。

2. 平台上手门槛降低,开发模式满足数据开发合规要求 用数栈搭建的开发平台设计了5套环境(统一开启集群级Kerberos认证),平台登录对接客户的LDAP账号单点登陆,让数据开发和业务方都可直接使用。

虽然相比原始的开发平台,数栈在操作门槛和体验上均有了质的提升,但为了让更多业务方直接参与到数据开发过程中来,我们把数栈单独划分了一套UDS环境,实现让业务方在业务系统中直接写SQL,然后业务系统通过调用SDK把SQL提交到数栈的UDS环境上运行并返回结果,由CDP自带的Ranger对任务提交的LDAP用户进行数据权限管控及校验。在Kerberos开启的情况下LDAP身份认证会弱化,因此数栈开发了租户级Hadoop代理的功能,通过代理能定位到原始提交LDAP账号,实现用户认证还原。

针对数据开发用户,开发环境分为了SIT、UAT、pre-PROD、PROD 4套环境,其中pre-PROD、PROD环境与SIT、UAT网络隔离以保证生产数据的安全。数据开发在SIT环境进行离线任务开发,自测通过后将任务一键发布至UAT环境由测试人员做测试数据验证,通过后由运维将任务及相关内容打包并发起发布申请流程,经管理员审批通过后自动由jenkins投产至预发环境pre-PROD进行生产数据验证,等到生产环境更新窗口期再由管理员发布至生产环境,因生产环境严格不允许有个人用户操作,为了保障任务发布后可正常运行,在发布至生产环境时会自动将任务和责任人统一替换为系统用户。 file

3. 任务依赖配置简化 使用数栈进行任务依赖配置时无须关心信号文件的创建和状态,每个任务仅需配置其直接上游,当上游任务延迟或失败时下游会在有效期范围内进行等待,上游修复后下游即能自动运行。数栈的调度周期可通过Cron表达式或者上传自定义调度日历的方式配置,针对客户“工作日每天6点、8点、16点、18点”或者更不规律的周期调度场景,可用一个excel文件一次性上传一年的调度日历在批量任务中使用。

4. 上线代码检查功能,提升代码质量 针对开发人员代码规范性意识不统一问题,数据资产模块上线了代码检查功能,平台内置了一些代码检查规则例如禁止ddl操作、禁用Select * 等(此外也可按企业内部个性化的代码要求开发自定义检查规则),在离线项目中可由管理员选择目标任务开启代码检查,开启后,数据开发在进行任务运行或提交前将由平台执行代码扫描,若扫描结果触发了代码检查规则中的强规则/弱规则,则分别给出阻止提交运行/提示的处理;

客户目前的Hive SQL任务较多,在代码检查规则监控的基础上我们增加了Hive SQL任务运行资源监控的功能,可在任务运行过程中查看详情监控cpu和memory使用情况,管理员也可在监控告警中配置资源使用上限告警,当任务使用资源过大时及时通知相关人员处理。

针对小文件问题,数栈的运维管家EasyManager可开启HDFS文件数量监控,另外数据资产支持小文件治理功能,可选择小文件突出的schema进行周期或临时检查和治理(即小文件合并),双重保障避免因小文件问题影响集群性能。

5. 多批次监控告警,让问题排查更简单 数据产出延迟告警问题可以通过基线告警解决,但客户大部分是一天4批次的小时任务,在单批次天任务基线监控的基础上我们新增了多批次监控的功能,对于纳入同一多批次监控的任务每天生成多个基线实例,实现一条基线一次配置后每个批次分别监控分别告警的效果。

6. API统一开发和管理 通过数栈的数据服务进行API的统一开发和管理,可实现跨项目的API市场统一查看和调用权限申请,减少重复开发,用户在调用API时可按Token及AK/SK多种认证方式进行权限校验,调用明细也会在平台内完整记录,充分保障调用安全;

以上数栈给出的解决方案与用户体验为后续客户的数据平台深度建设打下了良好的基础,得到了客户的好评,未来袋鼠云将继续全链路打磨产品,主动为客户提供更大的价值。

《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057?src=szsm

《数栈产品白皮书》下载地址:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szcsdn

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

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

相关文章

vue使用html2Canvas导出图片 input文字向上偏移

vue使用html2Canvas导出图片 input文字向上偏移 图中 用的是element的输入框 行高 32px,经常测试 你使用原生的input 还是会出现偏移。 解决方法:修改css样式 1.怎么实现导出 网上随便找很多 2.在第一步 获取你要导出的元素id 克隆后 修改他的样式或者 你直接在你需…

web渗透:SSRF漏洞

SSRF漏洞的原理 SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种安全漏洞,它允许攻击者构造请求,由服务端发起,从而访问服务端无法直接访问的内部或外部资源。这种漏洞通常发生在应用程序允许用…

v$session_longops监控 PDB clone 进度

How to Monitor PDB Clone / Move On Create Pluggable Database with COPY Clause Statement Execution (Doc ID 2866302.1)​编辑To Bottom In this Document Goal Solution References APPLIES TO: Oracle Database - Enterprise Edition - Version 19.14.1.0.0 and later…

leetcode:908. 最小差值 I(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums&#xff0c;和一个整数 k 。 在一个操作中&#xff0c;您可以选择 0 < i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] x &#xff0c;其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i &#xff0c;最多 只能…

【赛题已出】2024数学建模国赛A-E题已发布

2024年高教社杯全国大学生数学建模各题赛题已发布&#xff01; A题 B题 C题 D题 E题

Linux开源监控工具netdata

Netdata 是一个免费、开源、实时、专业的服务器监控工具&#xff0c;它以可视化的形式实时展现监控主机的性能变化&#xff0c;提供了一个交互式 Web 界面来查看您的服务器指标。它可以帮助我们了解监控主机的系统或应用程序中正在发生的事情以及刚刚发生的事情&#xff0c;并且…

macos系统内置php文件列表 系统自带php卸载方法

在macos系统中, 自带已经安装了php, 根据不同的macos版本php的版本号可能不同, 我们可以通过 which php 命令来查看mac自带的默认php安装路径, 不过注意这个只是php的执行文件路径. 系统自带php文件列表 一下就是macos默认安装的php文件列表. macos 10.15内置PHP文件列表配置…

iOS——GCD再学习

GCD 使用GCD好处&#xff0c;具体如下&#xff1a; GCD 可用于多核的并行运算&#xff1b;GCD 会自动利用更多的 CPU 内核&#xff08;比如双核、四核&#xff09;&#xff1b;GCD 会自动管理线程的生命周期&#xff08;创建线程、调度任务、销毁线程&#xff09;&#xff1b…

面试软件测试需要掌握的技能有哪些?

一、测试用例的编写 1、在测试中最重要的文档&#xff0c;他是测试工作的核心&#xff0c;是一组在测试时输入输出的标准&#xff0c;是软件需求的具体对照。编写测试用例&#xff0c;是测试人员的基本功&#xff0c;真正能写好的人并不多。 测试用例包含的内容&#xff1a; …

windows手工杀毒-寻找可疑进程之进程模块

上篇回顾&#xff1a;windows手工杀毒-寻找可疑进程之进程启动文件-CSDN博客 上篇我们介绍了如何通过进程启动文件寻找可疑进程&#xff0c;首先我们查看文件的数字签名&#xff0c;如果签名是合法的&#xff0c;且是正规公司的证书。基本可疑排除进程是可疑进程&#…

建议收藏!分享7款AI免费写论文学术工具

在当前的学术写作领域&#xff0c;AI工具已经成为许多研究人员和学生的重要助手。这些工具不仅能够帮助用户快速生成高质量的论文初稿&#xff0c;还能在一定程度上简化学术写作流程&#xff0c;提高写作效率。以下是七款免费且功能强大的AI写论文学术工具推荐&#xff1a; 一…

如何使用树莓派构建 LoRa 网关?

顾名思义&#xff0c;远距离广域网或LoRaWAN技术广泛用于物联网&#xff08;IoT&#xff09;中的远距离、低功耗通信。 在本文中&#xff0c;我们将指导您如何将SX130x 868M LoRaWAN网关模块通过硬件附加在顶部&#xff08;HAT&#xff09;的方式连接到Raspberry Pi4。此设置创…

上手一个RGBD深度相机:从原理到实践--ROS noetic+Astra S(上):解读深度测距原理和内外参推导

前言 最近在做项目的时候&#xff0c;项目组丢给了我一个深度相机&#xff0c;今天我们来尝试上手一个实体深度相机。 本教程设计基础相机的原理&#xff0c;使用&#xff0c;标定&#xff0c;和读取。(注&#xff1a;本教程默认大家有ROS1基础&#xff0c;故不对程序进行详细…

Camelyon16数据集切块批量预处理

参考自&#xff1a; Camelyon16数据集切块预处理 区别是这里做了批量处理 数据集目录格式&#xff1a; ** main.py** # !/usr/bin/python3 # -*- coding: utf-8 -*- # Time : 2024/9/4 20:21 # Author : 猫娜Lisa # File : camelyon16_get_patch.py # Software: PyC…

Linux从0到1——基础IO(下)【磁盘/文件系统/软硬链接/动静态库】

Linux从0到1——基础IO&#xff08;下&#xff09; 0. 前言1. 磁盘1.1 物理存储结构1.2 磁盘的逻辑存储结构 2. 文件系统2.1 文件系统的管理思想2.2 详解块组2.3 文件名和inode2.4 挂载 3. 软硬链接3.1 引入3.2 软链接3.3 硬链接 4. 动静态库4.1 静态库4.2 动态库 0. 前言 前面…

强化学习之PPO算法

PPO算法 什么是PPO算法PPO算法的原理PPO-Clip的目标函数 什么是PPO算法 PPO算法&#xff0c;全称为Proximal Policy Optimization&#xff08;近端策略优化&#xff09;&#xff0c;是一种强化学习算法。它由OpenAI在2017年提出&#xff0c;旨在解决策略梯度方法中的一些问题&…

带你0到1之QT编程:六、打地基QList的高效用法

此为QT编程的第六谈&#xff01;关注我&#xff0c;带你快速学习QT编程的学习路线&#xff01; 每一篇的技术点都是很很重要&#xff01;很重要&#xff01;很重要&#xff01;但不冗余&#xff01; 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点&#xff01; 码…

【系统架构设计师-2012年】综合知识-答案及详解

更多内容请见&#xff1a; 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3~4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10~11题】【第12~13题】【第14~19题】【第20~21题】【第22~24题】【第25~26题】【第27~31题】【第32~33题】【第34~36题】【第37…

南京大学机试试题合集

&#x1f370;&#x1f370;&#x1f370;hello宝子们&#xff0c;今天我们来练习南京大学的机试题目&#xff0c;这些题目的缺点就是太老了&#xff0c;都是18或19年的题&#xff0c;大家就练练手。加油&#xff01;fighting&#xff01;( •̀ ω •́ )✧ &#x1f369;1161…

geodatatool(地图资源工具)3.8

geodatatool&#xff08;地图资源工具&#xff09;3.8&#xff08;新&#xff09;修复更新&#xff0c;修复更新包括&#xff1a; 1.优化在线地图多线程下载及用户体验。 注意&#xff1a;在线地图下载与背景地图显示用的是同样的源&#xff0c;所以在线地图是否能下载&#x…