dolphinscheduler實現(oracle-hdfs-doris)數據ETL

dolphinscheduler執行

    • 完整腳本(自行替換相關變量)
    • 配置文件conf
    • 配置文件解析腳本
    • 轉base64腳本

完整腳本(自行替換相關變量)

user_ol=`sh conf/getInfo.sh 'Oracle' 'user' conf/databases.conf`
password_ol=`sh conf/getInfo.sh 'Oracle' 'password' conf/databases.conf`
dblink_ol=`sh conf/getInfo.sh 'Oracle' 'dblink' conf/databases.conf`
current_date=$(date +"%Y%m%d%H%M%S")
table_name=""
hdfs_path="/user/yarn/"${table_name}${current_date}echo "參數成功"${current_date}
#where $CONDITIONS 必須有
sql='
where $CONDITIONS
'
echo "開始執行sqoop"sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--connect ${dblink_ol} \
--username ${user_ol} \
--password ${password_ol} \
--query "${sql}" \
--target-dir ${hdfs_path} \
--delete-target-dir \
--split-by card_no \
-m 2if [ $? -ne 0 ]; thenecho "導出到hdfs失敗----------------------"exit -1 
fiecho "開始導入到doris"
#broker_name
user=`sh conf/getInfo.sh 'Doris-Pro' 'user' conf/databases.conf`
password=`sh conf/getInfo.sh 'Doris-Pro' 'password' conf/databases.conf`
dblink=`sh conf/getInfo.sh 'Doris-Pro' 'dblink' conf/databases.conf`
target_table_name="ods_cme_"${table_name}
echo "加載路徑:"${hdfs_path}
lable_name=${target_table_name}"_"${current_date}#nameservice1 分布式hdfs集群名稱,單機選IP形式
sql="
LOAD LABEL ${lable_name}
(DATA INFILE('hdfs://nameservice1${hdfs_path}/part*')INTO TABLE ${target_table_name}COLUMNS TERMINATED BY ','            
) 
with BROKER worker3
PROPERTIES
('timeout'='1200','max_filter_ratio'='0.1'
)
"
mysql -h fe_ip -P9030 -u${user} -p${password} -D offline -e "truncate table ${target_table_name}"
echo "清空表成功"
mysql -h fe_id -P9030 -u${user} -p${password} -D offline -e "${sql}"if [ $? -ne 0 ]; thenecho "創建broker任務失敗--------------------"exit -1  # 可以選擇退出腳本或執行其他操作
fi# broker 任務檢查
sh conf/broker_state.sh ${label} ${user} ${password}if [ $? -ne 0 ]; thenecho "任務失敗--------------------"exit -1  # 可以選擇退出腳本或執行其他操作
fi

配置文件conf

# 文本輸出為base64的形式
[Doris]
user_name=_=用戶名
password=_=密碼
dblink=_=jdbcurl

配置文件解析腳本

#!/bin/bash
param=`awk -F '=_=' '/\['"$1"'\]/{a=1}a==1&&$1~/'"$2"'/{gsub(/[[:blank:]]*/,"",$2);printf("%s\t",$2);exit;}' $3`
echo $(echo -n ${param} | base64 --decode)

轉base64腳本

#!/bin/bash
# 要編碼的文本
text=$1
# 編碼文本
encoded_text=$(echo -n "${text}" | base64 -w 0)
# 輸出編碼結果
echo "編碼結果:${encoded_text}"
# 輸出編碼欠的結果
echo "解碼結果:"$(echo -n ${encoded_text} | base64 --decode)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76708.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76708.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76708.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小小矩陣設計

在電氣設計圖中,矩陣設計的接線方法是通過結構化布局實現多靈活鏈接的技術,常用于信號切換、配電調壓或更加復雜的控制場景。 今天聊一種在電氣圖紙中用到的一種簡單矩陣接法,一眼就看明白,很大程度簡化了程序控制點和繼電器的使用…

【音視頻】FFmpeg解封裝

解封裝 復用器,比如MP4/FLV 解復用器,MP4/FLV 封裝格式相關函數 avformat_alloc_context(); 負責申請一個AVFormatContext結構的內存,并進行簡單初始化avformat_free_context(); 釋放該結構里的所有東西以及該結構本身avformat_close_input();關閉解復…

1??5??three.js_GUI輔助調試器

15、GUI輔助調試器 3D虛擬工廠在線體驗 GUI輔助調試器將原本需要修改代碼調整參數并刷新頁面的操作,簡化為直接在GUI中實時調整,實現所見即所得的效果。 導入GUI 庫 //引入GUI輔助調試器 import { GUI } from three/addons/libs/lil-gui.module.min.js…

Redis 的指令執行方式:Pipeline、事務與 Lua 腳本的對比

Pipeline 客戶端將多條命令打包發送,服務器順序執行并一次性返回所有結果。可以減少網絡往返延遲(RTT)以提升吞吐量。 需要注意的是,Pipeline 中的命令按順序執行,但中間可能被其他客戶端的命令打斷。 典型場景&…

Linux下的網絡管理配置

一、 IPv4原理 IPv4(Internet Protocol version 4),采用32位地址。IPv4地址通常用點分十進制表示,如 192.168.1.10。 IPv4網絡通信基于數據包交換原理,當一臺主機要向另一臺主機發送數據時,會將數據分割成…

基于Python(Django)+SQLite實現(Web)校園助手

校園助手 本校園助手采用 B/S 架構。并已將其部署到服務器上。在網址上輸入 db.uplei.com 即可訪問。 使用說明 可使用如下賬號體驗: 學生界面: 賬號1:123 密碼1:123 賬戶2:201805301348 密碼2:1 # --------------…

unity動態骨骼架設+常用參數分享(包含部分穿模解決方案)

Unity骨骼物理模擬插件Dynamic Bone Dynamic Bone 可用于對角色的骨骼(bones)或者鉸鏈系統(joints)施加物理效果。 物理效果可以使得游戲角色的頭發、衣服、胸部或者是其他的任何部位,都可以以近似真實的狀態運動。 …

科技天眼守望農田:珈和衛星遙感監測賦能智慧農業,護航糧食安全新未來

農情監測與糧食安全密切相關,以往農作物的長勢、環境、病蟲害、災情等相關數據和圖像信息都是靠物聯網硬件及縣、鎮、村等人力來完成,不僅要耗費大量人力、物力,而且數據時效性、準確性較差。珈和科技開發建設農情遙感監測系統,運…

【TeamFlow】4.2 Yew庫詳細介紹

Yew 是一個用于構建高效、交互式前端 Web 應用程序的現代 Rust 框架,它借鑒了 React 和 Elm 等框架的設計理念,同時充分利用 Rust 的語言特性。 核心特性 基于組件的架構 Yew 采用組件化開發模式,類似于 React: 組件是可重用的 UI 構建塊 …

畢設 - 數字孿生智慧農場(vue+高德地圖)項目分享

感興趣的同學可以私信我或者在下方添加我的qq 在線地址: 數字孿生智慧農場

深入理解 VMware 虛擬機網絡模式:為虛擬化管理鋪平道路

隨著云計算和虛擬化技術的快速發展,VMware作為行業領軍者,在企業的IT基礎設施中扮演著越來越重要的角色。無論是開發、測試還是生產環境,虛擬機(VM)都成為了我們不可或缺的工具。在VMware中,網絡是虛擬機能…

安恒安全滲透面試題

《網安面試指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇網安資料庫https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

代碼隨想錄算法訓練營第五十三天 | 105.有向圖的完全可達性 106.島嶼的周長

105.有向圖的完全可達性 題目鏈接:101. 孤島的總面積 文章講解:代碼隨想錄 視頻講解:圖論:島嶼問題再出新花樣 | 深搜優先搜索 | 卡碼網:101.孤島總面積_嗶哩嗶哩_bilibili 思路: 1.確認遞歸函數&…

藍橋杯 18.分考場

分考場 原題目鏈接 題目描述 有 n 個人參加某項特殊考試。 為了公平,要求任何兩個認識的人不能分在同一個考場。 你的任務是求出最少需要分幾個考場才能滿足這個條件。 輸入描述 第一行:一個整數 n,表示參加考試的人數(1 ≤…

分布式光纖測溫技術讓森林火災預警快人一步

2025年春季,多地接連發生森林火災,累計過火面積超 3萬公頃。春季歷來是森林草原火災易發、多發期,加之清明節已到來,生產生活用火活躍,民俗祭祀用火集中,森林火災風險進一步加大。森林防火,人人…

前端筆記-Vue3(上)

學習參考視頻:尚硅谷Vue3入門到實戰,最新版vue3TypeScript前端開發教程_嗶哩嗶哩_bilibili vue3學習目標: VUE 31、Vue3架構與設計理念2、組合式API(Composition API)3、常用API:ref、reactive、watch、c…

如何增加 Elasticsearch 中的 primary shard 數量

作者:來自 Elastic Kofi Bartlett 探索增加 Elasticsearch 中 primary shard 數量的方法。 更多閱讀: Elasticsearch:Split index API - 把一個大的索引分拆成更多分片 Elasticsearch:通過 shrink API 減少 shard 數量來縮小 El…

基于SA模擬退火算法的車間調度優化matlab仿真,輸出甘特圖和優化收斂曲線

目錄 1.程序功能描述 2.測試軟件版本以及運行結果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模擬退火算法的車間調度優化matlab仿真,輸出甘特圖和優化收斂曲線。輸出指標包括最小平均流動時間,最大完工時間,最小間隙時間。 2…

Spring_MVC 快速入門指南

Spring_MVC 快速入門指南 一、Spring_MVC 簡介 1. 什么是 Spring_MVC? Spring_MVC 是 Spring 框架的一個模塊,用于構建 Web 應用程序。它基于 MVC(Model-View-Controller)設計模式,將應用程序分為模型(M…

爬蟲獲取sku信息需要哪些庫

在使用 Python 爬蟲獲取淘寶商品的 SKU 詳細信息時,通常需要以下幾種庫來完成任務。這些庫各有其用途,可以幫助你更高效地實現爬蟲功能。 1. requests 用途:用于發送 HTTP 請求,獲取網頁內容。 安裝: bash pip insta…