DS记录中

news2025/2/23 16:49:50

DataX/hdfswriter/doc/hdfswriter.md at master · alibaba/DataX · GitHub

DataX 写入文档

https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/architecture/task-structure

DS文档

DS

项目举例

流程

数据库(Datax) -> ODS (shell)->ADS(Datax) -> 数据库
总共包含3个节点,
第一个节点包含两个任务,涉及到两个业务表到ODS的同步,同步方式DataX。且这两个任务,在另外一个工作流中(第一个节点,系统功能使用率统计依赖,两个任务(ods_xdap_apaas_xdap_menus_1d_full/apaas_data_log),在另外一个工作流中,wf11242-得帆ODS)
第二个节点包含一个任务,ODS (shell)->ADS,同步方式shell
第二个节点包含一个任务,ADS-数据库,同步方式DataX

如果我想做这个功能,主要步骤是什么

0,需求本身,数据增量还是全量,分区字段,执行频率,实时性(n+1)

1,分析涉及到业务库表,涉及的需求的字段
2,在hive中创建ODS与ADS表
3,分析数据流转链路(业务库-ODS/DWD/ADS-业务库)+ 任务类型(DataX/shell),如果是DataX 写JSON文件;是shell,写shell脚本
4,整理工作流 + 包含的任务 + 任务关系流向。先创建独立的任务,以此为基础,再创建完整的工作流调用链路

JOB

DataX

写入模式

 DS 为什么业务库与hive之间数据交互,用的是Datax,hive表之间数据交互,用的shell

spark

spark shell

shell脚本放哪里

DolphinScheduler 执行方式如果是shell,shell脚本一般放在哪个位置

sh /data/ylscripts/shell_sql/spark/insert_complex_template_spark.sh 0 0 insert_ads_xdap_apaas_menu_count_report.sql $[yyyyMMdd-1] 

像这里

 找找....todo

spark.sh 脚本样例

sh /data/ylscripts/shell_sql/spark/insert_complex_template_spark.sh 0 0 insert_ads_xdap_apaas_menu_count_report.sql $[yyyyMMdd-1] 

sh /data/ylscripts/shell_sql/spark/insert_complex_template_spark.sh 0 0 insert_ads_xdap_apaas_menu_count_report.sql $[yyyyMMdd-1]

-- **************************************************************************
-- ** 所属主题: 运力-租赁订单
-- ** 功能描述: demo-租赁订单聚合
-- ** 所属项目:lease
-- ** 创建者 : zhaoweiwei
-- ** 创建日期: 20230715
-- ** 备注: 默认 shell_sql/spark/insert_complex_template_spark.sh 执行期执行此文件,且传入pt时间分片
-- ** Modified: 
-- **************************************************************************

-- 性能优化:避免产生小文件
-- 自适应执行框架的开关
SET spark.sql.adaptive.enabled = true;
-- 设置每个Reducer读取目标的数据量 如果设置为128MB 则reduce阶段每个task最少处理128MB的数据
SET spark.sql.adaptive.shuffle.targetPostShuffleInputSize=134217728;
-- 分片指定好 pt,sql加pt
insert overwrite table  smcvyl.ads_xdap_apaas_menu_count_report partition(pt='${pt}')
SELECT
    concat(current_timestamp(),rand()*100),
    '599190472848441600',
    '',
    'COMPLETED',
    '',
    '363338147746021377',
    '668f47481ee17b5cb7f6da93',
    '',
    '100386089104489578496',
    '100386089104489578496',
    current_timestamp(),
    '100386089104489578496',
    current_timestamp(),
    '1',
    a.menu_name,
    a.end_time,
    IF(a.person_number = 0,0,a.COUNT) AS COUNT,
    a.person_number
FROM
   (
   select m.menu_name, NOW() end_time, COUNT(*) COUNT, COUNT(DISTINCT (l.operation_user)) person_number
   from 
    (select * from smcvyl.ods_xdap_apaas_xdap_menus_1d_full where pt='${pt}') m
left JOIN
    (select * from smcvyl.ods_xdap_apaas_apaas_data_log where pt='${pt}') l 
    ON l.operation_object = CONCAT('MENU_', m.id) 
    and l.operation_time BETWEEN date_sub(now(), 7) AND now()
    AND l.function_menu = 'APP_MENU'
    AND l.operation_type = 'VIEW_VIEWS'
GROUP BY
    m.menu_name
    )a
;

spark shell分析命令

sh /data/ylscripts/shell_sql/spark/insert_complex_template_spark.sh 0 0 insert_ads_xdap_apaas_menu_count_report.sql $[yyyyMMdd-1] 

spark shell分析脚本 

分析

ODS->ADS;

增量 / 分区字段天,跑前一天数据

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

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

相关文章

Node.js express

1. express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs.com.cn/简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用&#xff…

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…

分布式日志系统设计

一、分布式日志系统定义 分布式日志系统是一种用于收集、存储和分析大规模分布式系统日志的系统。它可以帮助开发人员和系统管理员实时监控和调试系统,提高系统可靠性和可用性,同时也可以用于日志分析和故障排查。 二、简单设计思路 日志收集&#xff…

详解RabbitMQ在Ubuntu上的安装

​​​​​​​ 目录 Ubuntu 环境安装 安装Erlang 查看Erlang版本 退出命令 ​编辑安装RabbitMQ 确认安装结果 安装RabbitMQ管理界面 启动服务 查看服务状态 通过IP:port访问 添加管理员用户 给用户添加权限 再次访问 Ubuntu 环境安装 安装Erlang RabbitMq需要…

java+springboot+mysql私人会所管理系统

项目介绍: 使用javaspringbootmysql开发的私人会所管理系统,系统包含管理员、技师、用户角色,功能如下: 管理员:用户管理;服务项目;技师管理;房间管理;预约管理&#x…

Java面试之Happens-Before原则

此篇接上一篇的Java面试之volatile关键字。 首先,这是Java语言中的一个“先行发生”(Happens-Before)的原则。是判断数据是否存在竞争,线程是否安全的非常有用的手段,也是Java内存模型中定义的两项操作之间的偏序关系。 其次,Happ…

TensorFlow深度学习实战(1)——神经网络与模型训练过程详解

TensorFlow深度学习实战(1)——神经网络与模型训练过程详解 0. 前言1. 神经网络基础1.1 神经网络简介1.2 神经网络的训练1.3 神经网络的应用 2. 从零开始构建前向传播2.1 计算隐藏层节点值2.2 应用激活函数2.3 计算输出层值2.4 计算损失值2.4.1 在连续变…

C++鼠标轨迹算法(鼠标轨迹模拟真人移动)

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

Java从入门到工作2 - IDEA

2.1、项目启动 从git获取到项目代码后,用idea打开。 安装依赖完成Marven/JDK等配置检查数据库配置启动相关服务 安装依赖 如果个别依赖从私服下载不了,可以去maven官网下载补充。 如果run时提示程序包xx不存在,在项目目录右键Marven->Re…

【AI知识】过拟合、欠拟合和正则化

一句话总结: 过拟合和欠拟合是机器学习中的两个相对的概念,正则化是用于解决过拟合的方法。 1. 欠拟合: 指模型在训练数据上表现不佳,不能充分捕捉数据的潜在规律,导致在训练集和测试集上的误差都很高。欠拟合意味着模…

汽车升级到底应不应该设置“可取消“功能

最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…

优选算法——分治(快排)

1. 颜色分类 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目展示: 题目分析:本题其实就要将数组最终分成3块儿,这也是后面快排的优化思路,具体大家来看下图。 这里我们上来先定义了3个指针&…

[Maven]下载安装、配置与简介

很多框架的下载使用的流程和思路是差不多的,这里以maven做详细介绍。 下载安装与配置变量 下载 首先,我们要使用maven,必须先下载它的相关文件。想要下载,我们可以直接搜索maven。找到它的官网。这里不绕弯子,直接给出…

Maven 安装配置(详细教程)

文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型(POM)的项目管理和自动化构建工具。它主要服务于 Java 平台,但也支持其他编程语言…

【AI知识】人工智能、机器学习、深度学习的概念与联系

下图来自博客 机器学习和深度学习概念入门 ,图中可明显看到人工智能、机器学习、深度学习三个概念的包含关系,下面简单介绍一下这三个概念已经它们之间的联系。 1. 人工智能(Artificial Intelligence,AI) 概念&#x…

BUUCTF Pwn bjdctf_2020_babystack2 题解

1.下载 checksec 64位 拖入IDA64 定位到main函数 以及后门函数 发现read需要读取输入——nbytes的数字来决定长度 同时nbytes是size_t类型 也就是无符号整型的 所以想到整数溢出漏洞 将nbytes设置为-1就会回绕,变成超大整数 从而实现栈溢出漏洞 exp&#xff1a…

微服务-01【续】

1.OpenFeign 上篇文章我们利用Nacos实现了服务的治理,利用利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂了: 而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用…

中电金信携手中远海科,共启贸易金融数智新篇章

在数智化转型成为驱动经济社会高质量发展的新引擎背景下,“数智方案”栏目聚焦金融等国计民生重点行业场景,依托中电金信“源启筑基咨询引领应用重构”的产品及服务体系,输出市场洞察和行业解决方案、应用案例,旨在全面推动行业IT…

【前端】React快速构建登陆注册前后端全栈

近期更新完毕,建议关注、收藏! 目录 快速入门 快速入门 前提:安装npm #npm install react react-dom conda install nodejs npm install create-react-app cd my-app#切换到项目文件夹 npm install npm i web-vitals --save-dev #如果上述…

JS中的原型链与继承

文章目录 原型链的类比原型链对像与函数拥有的原型属性不同原型链的产生对象的constructor属性继承 原型链的类比 JS中原型链,本质上就是对象之间的关系,通过protoype和[[Prototype]]属性建立起来的连接。这种链条是动态的,可以随时变更。 …