数据抽取平台pydatax使用案例---11个库项目使用
数据抽取平台pydatax,前期项目做过介绍:
项目2: 客户有9个分公司,用的ERP有9套,有9个库,不同版本,抽取的同一个表字段长度有不一样,字段可能有多有少,客户ERP核心分公司ERP几个月后有大版本升级。
在2023年12月,当时做这个抽取时,客户只是做一个分公司的,抽取9套其中的一套ERP的Oracle库,当时考虑是否把这9个库的都抽取了,免得后面客户要做,浪费时间再做一遍,太麻烦,问了项目负责人也没说是要把这9个库都抽取过来,没说要做! 到底怎么处理?
想想早晚要做,还是先都抽取了,把他的8家公司的Oracle数据库都抽取过来,各个公司的数据,9张表合并成1张,在表加租户id字段区分:tenant_id 确定是那个公司的,把这个大数据抽取,数据指标计算完成。
到了2024年7月份,客户突然说后续指标计算暂停,要把其他的子公司的数据和计算也加进去,这半年又新参股合并了3家公司,原先有一家去掉。一共要新加7+3=10家公司,为支持该业务需要,pydatax的修改过程如下:
1,JSON抽取模板修改
oracle_gp_table_df_job.json文件加上新加的3个分公司,再原有的json去掉一家公司:
{
"querySql": [ "select SYSdate as etl_create_time,SYSdate as etl_update_time, 'wflsy' as tenant_id,${src_table_columns_wflsy} from wflsy.${src_table_name} ${relation} where ${condition}" ],
"jdbcUrl": [ "jdbc:oracle:thin:@10.0.1.206:1521:erp"]
},
{
"querySql": [ "select SYSdate as etl_create_time,SYSdate as etl_update_time, 'ky' as tenant_id, ${src_table_columns_ky} from ky.${src_table_name} ${relation} where ${condition}" ],
"jdbcUrl": [ "jdbc:oracle:thin:@10.0.1.206:1521:erp"]
},
{
"querySql": [ "select SYSdate as etl_create_time,SYSdate as etl_update_time, 'wfjy' as tenant_id, ${src_table_columns_wfjy} from wfjy.${src_table_name} ${relation} where ${condition}" ],
"jdbcUrl": [ "jdbc:oracle:thin:@10.0.1.206:1521:erp"]
},
2,Python程序修改
以上加上后,同时要在pydatax.py和vprepair.py的脚本上加上3个变量,传递给datax的json模板, 这样每天抽取任务的全量和增量3家新公司数据生效。
src_table_columns_wflsy=get_org_src_columns(src_table_columns,"WFLSY",src_table_name)
src_table_columns_ky=get_org_src_columns(src_table_columns,"KY",src_table_name)
src_table_columns_wfjy=get_org_src_columns(src_table_columns,"WFJY",src_table_name)
" -Dsrc_table_columns_std='" + src_table_columns_std + "' " \
" -Dsrc_table_columns_ky='" + src_table_columns_ky + "' " \
" -Dsrc_table_columns_wflsy='" + src_table_columns_wflsy + "' " \
" -Dsrc_table_columns_wfjy='" + src_table_columns_wfjy + "' " \
" -Ddes_table_columns='"+des_table_columns+"' \" "
这样整个每天11家公司的表全量数据和表增量数据就正常的,全量同步的表数据是每天全量,不用处理,但增量表历史数据怎么抽取过来?
3,增量表历史数据处理
1,将1中的3个Json单独编写成1个json模板,模板的"preSql"中的“truncate table 表“ 数据不再使用。
2,新模板json文件放到对应文件夹下,写一条数据到datax_json中
3,是增量的历史表datax_config的数据copy一份到datax_config_repair中,并将json_id和2中的一致,只按2的新模板抽取数据
4,执行vprepair.py后,数据同步到临时表stg表,再执行select sp_stg();
4, 特殊表处理
商品表,有家公司的商品表,同一个商品有多个,直接抽取商品表,会在该公司有多条数据,客户做了个视图过滤成1条,说抽取这个视图数据就可以,但pydatax的11个库的表名要必须一致,怎么处理?
想想也可以实现,就是对这个商品表单独配置一个抽取JSON模板,如下:dbo.base_${src_table_name} ,当然也可以把这个表名写死,也可以使用。在datax_config表的json_id配置成新的模板,就可以实现单独表的特殊处理。
"querySql": [ "select SYSdate as etl_create_time,SYSdate as etl_update_time, 'zb' as tenant_id,${src_table_columns} from dbo.base_${src_table_name} ${relation} where ${condition}" ],
"jdbcUrl": [ "jdbc:oracle:thin:@192.168.0.17:1521/erpdg"]
},
修改的文件放在压缩包的”11库抽取”文件夹下:
pydatax源码下载地址:
1,https://files.cnblogs.com/files/zping/pydatax.rar
总结:
1,pydatax的灵活性在此项目得到很好的验证
2,其简单的修改就可以快速满足客户的需求
数据抽取平台pydatax使用案例---11个库项目使用的更多相关文章
- Tushare金融大数据开放社区 - 数据抽取案例学习
进入平台介绍 扫码立即注册,更多大数据等你来探索 ! 案例: 导入tushare import tushare as ts 这里注意, tushare版本需大于1.2.10 设置token ts.se ...
- Flink 实践教程-进阶(2):复杂格式数据抽取
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- 搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定
摘要:如何打造一套企业级的实时数据融合平台?Tapdata 已经找到了最佳实践,下文将以 Tapdata 的零售行业客户为例,与您分享:基于 ES 和 MongoDB 来快速构建一套企业级的实时数 ...
- Tapdata 实时数据融合平台解决方案(一):现代企业数据架构及痛点
作者介绍:TJ,唐建法,Tapdata 钛铂数据 CTO,MongoDB中文社区主席,原MongoDB大中华区首席架构师,极客时间MongoDB视频课程讲师. "怎样可以来搭建一个数据中台? ...
- 大数据计算平台Spark内核解读
1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着 Spark在大数据计算领域的暂露头角,越来越多 ...
- cognos开发与部署报表到广西数据质量平台
1.cognos报表的部署. 参数制作的步骤: 1.先在cognos里面把做好的报表路径拷贝,然后再拷贝陈工给的报表路径. 开始做替换,把陈工给的报表路径头拿到做好的报表路径中,如下面的链接http: ...
- DataPipeline丨新型企业数据融合平台的探索与实践
文 |刘瀚林 DataPipeline后端研发负责人 交流微信 | datapipeline2018 一.关于数据融合和企业数据融合平台 数据融合是把不同来源.格式.特点性质的数据在逻辑上或物理上有机 ...
- 打造实时数据集成平台——DataPipeline基于Kafka Connect的应用实践
导读:传统ETL方案让企业难以承受数据集成之重,基于Kafka Connect构建的新型实时数据集成平台被寄予厚望. 在4月21日的Kafka Beijing Meetup第四场活动上,DataPip ...
- 大数据计算平台Spark内核全面解读
1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着Spark在大数据计算领域的暂露头角,越来越多的 ...
- 基于datax的数据同步平台
一.需求 由于公司各个部门对业务数据的需求,比如进行数据分析.报表展示等等,且公司没有相应的系统.数据仓库满足这些需求,最原始的办法就是把数据提取出来生成excel表发给各个部门,这个功能已经由脚本转 ...
随机推荐
- 使用 nuxi preview 命令预览 Nuxt 应用
title: 使用 nuxi preview 命令预览 Nuxt 应用 date: 2024/9/8 updated: 2024/9/8 author: cmdragon excerpt: 摘要:本文 ...
- Blazor开发框架Known-V2.0.10
Known今天迎来了2.0的第11个版本,同时网站网址和板块也进行了一次升级改造,虽不完美,但一直在努力改变,之前一直在完善框架功能,忽略了文档的重要性,所以这次更新了文档和API.交流互动板块也在进 ...
- DOM – Web Animation API
前言 以前写过相关的文章 angular2 学习笔记 ( animation 动画 ).但在项目种很少用到 Web Animation. 体会不到它的精髓,目前的感觉是,它对比 CSS Animati ...
- c# 常用反射和表达式树整理
更新: 2021-06-19 反射 local function https://stackoverflow.com/questions/43348128/reflection-how-do-i-fi ...
- CSS – Display block, inline, inline-block
前言 之前 W3Schools 学习笔记就有提到了 CSS Layout - The display Property 这篇做更多的解释. 参考: CSS Display FLEX vs Block, ...
- IOI2000 邮局 加强版 题解
[IOI2000] 邮局 加强版 题解 考虑动态规划,设 \(f_{i,j}\) 为经过了 \(i\) 个村庄,正在建第 \(j\) 个邮局的最优距离. 以及 \(w_{i,j}\) 表示区间 \( ...
- Vue 3.3.11 迁移指南
https://v3-migration.vuejs.org/zh/ 用于迁移的构建版本 @vue/compat (即"迁移构建版本") 是一个 Vue 3 的构建版本,提供了可配 ...
- CSP提高组模拟1
我的微軟輸入法莫名其妙變成繁體了,你們有什麽頭緒嗎 狀態 題目 20 Time Exceeded A 最短路 25 Time Exceeded B 方格取数 0 Time Exceeded C 数组 ...
- 《MySQL 5.7从入门到精通(视频教学版)》代码课件教学视频下载
<MySQL 5.7从入门到精通(视频教学版)>代码课件教学视频下载 https://pan.baidu.com/s/1ZufDV6a_PEnjp-Bdh4IkuQ 提取码:vgnr 无版 ...
- 10月《中国数据库行业分析报告》已发布,深度剖析甲骨文大会Oracle技术新趋势
为了帮助大家及时了解中国数据库行业发展现状.梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新<中国数据库行业分析报告>,持 ...