黑馬甄選離線數倉項目day02(數據采集)

datax介紹

官網: https://github.com/alibaba/DataX/blob/master/introduction.md

DataX 是阿里云 DataWorks數據集成 的開源版本,在阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺。

DataX 實現了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各種異構數據源之間高效的數據同步功能。

在這里插入圖片描述

datax架構說明

在這里插入圖片描述

datax數據處理流程

在這里插入圖片描述

datax使用說明

Datax在使用是主要編寫json文件,在json中定義read如何讀取 write如何寫入
格式:參考官網代碼修改
parameter:{username:mysql數據庫用戶名
password:密碼
jdbc: MySQL://網址:端口號:/datebase
}
table:數據庫名

{"job": {"setting": {"speed": {"channel": 3},"errorLimit": {"record": 0,"percentage": 0.02}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name"],"splitPk": "db_id","connection": [{"table": ["table"],"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/database"]}]}},"writer": {"name": "streamwriter","parameter": {"print":true}}}]}
}

簡單使用

讀取mysql數據在終端中輸出結果

-- 在mysql中創建庫表
create database itcast charset=utf8;
use itcast;
create table student(id int,name varchar(20),age int,gender varchar(20)
);
insert into student values(1,'張三',20,'男'),(2,'李四',21,'男'),(3,'王五',19,'男'),(4,'趙六',22,'男');

編寫datax的json文件

{"job": {"setting": {"speed": {"channel": 3},"errorLimit": {"record": 0,"percentage": 0.02}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender"],"splitPk": "id","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://192.168.88.80:3306/itcast"]}]}},"writer": {"name": "streamwriter","parameter": {"print":true}}}]}
}

在datax的job目錄下創建json文件

cd /export/server/datax/job/

在這里插入圖片描述
在這里插入圖片描述

執行json文件中的配置信息

cd /export/server/datax/bin
python datax.py ../job/mysql_data.json 

在這里插入圖片描述

mysql使用sql語句讀取數據

sql語句可以實現對數據的篩選過濾
query:書寫select條件過濾

{"job": {"setting": {"speed": {"channel":1}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","connection": [{"querySql": ["select * from student where id>=3;"],"jdbcUrl": ["jdbc:mysql://192.168.88.80:3306/itcast"]}]}},"writer": {"name": "streamwriter","parameter": {"print": true,"encoding": "UTF-8"}}}]}
}

在這里插入圖片描述

mysql數據導入hdfs

讀取mysql數據寫入到hdfs

{"job": {"setting": {"speed": {"channel":1}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender"],"splitPk": "id","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://192.168.88.80:3306/itcast"]}]}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://192.168.88.80:8020","fileType": "text","path": "/data","fileName": "student","column": [{"name": "id","type": "int"},{"name": "name","type": "string"},{"name": "age","type": "INT"},{"name": "gender","type": "string"}],"writeMode": "append","fieldDelimiter": "\t"}}}]}
}

使用sql語句導入需要指定jdbc連接參數
當數據中有中文是需要增加參數
jdbc:mysql://192.168.88.80:3306/itcast?useSSL=false&characterEncoding=utf8

{"job": {"setting": {"speed": {"channel":1}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","connection": [{"querySql": ["select * from student where gender='男';"],"jdbcUrl": ["jdbc:mysql://192.168.88.80:3306/itcast?useSSL=false&characterEncoding=utf8"]}]}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://192.168.88.80:8020","fileType": "text","path": "/data","fileName": "student","column": [{"name": "id","type": "int"},{"name": "name","type": "string"},{"name": "age","type": "INT"},{"name": "gender","type": "string"}],"writeMode": "append","fieldDelimiter": "\t"}}}]}
}

mysql數據導入hive表

hive的表是由兩部分構成的

表的元數據 hive的metastore管理

表的行數據 hdfs上以文件的方式存儲

導入hive表的數據本質就是將mysql中的數據導入hdfs中,將數據按照hive表的路徑進行導入

1-啟動hive服務 metastore hiveserve2

在這里插入圖片描述

2-配置datagrip連接

在這里插入圖片描述

可以聯網下載,也可以使用提前下載好的

在這里插入圖片描述

3-創建hive表

show databases ;create database itcast;
use  itcast;
create table stu(id int,name string,age int,gender string
)row format delimited  fields terminated by ',';select * from stu;

4-hive表的數據導入,本質就是將數據寫入hdfs的表目錄中
編寫json文件

{"job": {"setting": {"speed": {"channel":1}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender"],"splitPk": "id","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://192.168.88.80:3306/itcast"]}]}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://192.168.88.80:8020","fileType": "text","path": "/user/hive/warehouse/itcast.db/stu","fileName": "stu","column": [{"name": "id","type": "int"},{"name": "name","type": "string"},{"name": "age","type": "INT"},{"name": "gender","type": "string"}],"writeMode": "append","fieldDelimiter": ","}}}]}
}

datax-web 介紹

https://github.com/WeiYe-Jing/datax-web

datax-web是基于datax進行的二次開發,提供了一個可視化web頁面,方便開發人員定義datax任務,并且能自動生成json文件

datax-web使用

啟動服務

/export/server/datax-web-2.1.2/bin/start-all.sh

在這里插入圖片描述

訪問頁面

http://hadoop01:9527/index.html

在這里插入圖片描述
在這里插入圖片描述

使用

創建項目

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

創建數據源連接

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

任務管理模板生成

可以設置定時執行
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

生成datax任務

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

任務執行

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

定時執行

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

Java中List接口中方法的使用(初學者指南)

Java中List接口中方法的使用(初學者指南) 在Java中,List接口是Collection接口的子接口,它表示一個有序的集合,其中的元素都可以重復。List接口提供了許多額外的方法,用于對元素進行插入、刪除、查詢等操作…

計算機Java項目|Springboot學生讀書筆記共享

作者主頁:編程指南針 作者簡介:Java領域優質創作者、CSDN博客專家 、CSDN內容合伙人、掘金特邀作者、阿里云博客專家、51CTO特邀作者、多年架構師設計經驗、騰訊課堂常駐講師 主要內容:Java項目、Python項目、前端項目、人工智能與大數據、簡…

C++通過json文件配置參數

一、安裝nlohmann json nlohmann json:安裝_nlohmann安裝-CSDN博客 依次執行下面指令: git clone https://gitee.com/cuihongxi/mov_from_github.gitcd json-developmkdir buildcd buildcmake ..makesudo make install 二、安裝完成后使用 #include…

華為設備display查看命令

display version //查看版本信息 display current-configuration //查看配置詳情 display this //查看當前視圖有效配置 display ip routing-table //查看路由表 display ip routing-table 192.168.3.1 //查看去往3.1的路由 display ip interface brief //查看接口下ip信息 dis…

想跨境出海?云手機提供了一種可能性

全球化時代,越來越多的中國電商開始將目光投向了海外市場。這并不是偶然,而是他們在長期的市場運營中,看到了出海的必要性和潛在的機會。 中國的電商市場無疑是全球最大也最發達的之一。然而,隨著市場的不斷發展和競爭的日益加劇…

visual studio2022 JNI極簡開發流程

文章目錄 1 創建java類2 生成JNI頭文件3 使用visual studio2022創建DLL項目3.1 選擇模板中(Windows桌面向導)3.2 為項目命名3.3 選擇應用程序類型為動態鏈接庫3.4 項目概覽 4 導入需要的頭文件4.1 導入需要的頭文件4.2 修改頭文件 5 編寫C實現6 生成dll文…

服務器3389端口,服務器3389端口風險提示的應對措施

3389端口是Windows操作系統中遠程桌面協議(RDP)的默認端口。一旦該端口被惡意攻擊者利用,可能會導致未經授權的遠程訪問和數據泄露等嚴重安全問題。 針對此風險,強烈建議您采取以下措施: 1. 修改默認端口:…

Java面試之抽象類和接口

Java的一個重要特性就是抽象,抽象是指將具體的事物抽象成更一般化、更抽象化的概念或模型。在Java中,抽象可以通過抽象類和接口來實現,它們讓你能夠定義一些方法但不提供具體實現,從而讓子類去實現具體細節。 一、抽象類&#xf…

springboot3 集成spring-authorization-server (一 基礎篇)

官方文檔 Spring Authorization Server 環境介紹 java&#xff1a;17 SpringBoot&#xff1a;3.2.0 SpringCloud&#xff1a;2023.0.0 引入maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

識別AI論文生成內容,降低論文高AI率

AI寫作工具能幫我們在短時間內高效生成一篇畢業論文、開通報告、文獻綜述、任務書、調研報告、期刊論文、課程論文等等&#xff0c;導致許多人開始使用AI寫作工具作為撰寫學術論文的輔助手段。而學術界為了杜絕此行為&#xff0c;開始使用AIGC檢測系統來判斷文章是由AI生成還是…

解鎖商業AI,賦能新質生產力發展——思愛普中國峰會探展全紀錄

ITValue 鈦媒體獨家探秘思愛普中國峰會&#xff0c;帶你深刻感受SAP助力企業利用以商業AI為代表的數字化技術&#xff0c;實現質的飛躍&#xff0c;通過全數據、全球化、全綠色賦能新型中國企業發展新質生產力。 首發&#xff5c;鈦媒體APP ITValue 5月10日&#xff0c;一年一度…

基于NTP服務器獲取網絡時間的實現

文章目錄 1 NTP1.1 簡介1.2 包結構1.3 UNIX 時間戳和NTP時間戳 2 代碼實現2.1 實現步驟2.2 完整代碼 3 結果 在某些場景下&#xff0c;單片機需要通過網絡獲取準確的時間進行數據同步&#xff0c;例如日志記錄、定時任務等。然而&#xff0c;單片機本身無法直接獲得準確的標準時…

Vue的學習 —— <vue指令>

目錄 前言 正文 內容渲染指令 內容渲染指令的使用方法 v-text v-html 屬性綁定指令 雙向數據綁定指令 事件綁定指令 條件渲染指令 循環列表渲染指令 偵聽器 前言 在完成Vue開發環境的搭建后&#xff0c;若想將Vue應用于實際項目&#xff0c;首要任務是學習Vue的基…

ORA-00932: inconsistent datatypes: expected - got CLOB的分析解決方案

最近在項目中遇到查詢數據時報ORA-00932: inconsistent datatypes: expected - got CLOB錯誤&#xff0c;這個錯誤很明顯是由于查詢時類型的不匹配造成的。 問題分析&#xff1a; 一、檢查你的查詢的實體的類型是否于數據庫的保持一致&#xff0c;如果不一致&#xff0c;那么需…

333_C++_編寫一個go函數每次從文件中讀取固定大小數據,且go作為回調,傳遞給其他函數中,多次調用,完成逐塊傳輸數據

(core工程文件) tick_transfer_all_t類是一個用于異步傳輸數據的輔助類,它在某個異步操作完成后將_tick的值設置為0,并返回傳輸的結果 namespace hl {namespace http{namespace __detail{class tick_transfer_all_t{boost::shared_ptr<unsigned long long> _tick

MySQL 查詢庫 和 表 占用空間大小的 語句

查看mysql 數據庫的大小 SELECT table_schema AS 數據庫名稱, ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS 數據庫大小(MB) FROM information_schema.tables GROUP BY table_schema;查詢數據庫中表的 數據量&#xff08;這個方法 有緩存延遲&#xff0c;只能用…

[力扣題解] 96. 不同的二叉搜索樹

題目&#xff1a;96. 不同的二叉搜索樹 思路 動態規劃 f[i]&#xff1a;有i個結點有多少種二叉搜索樹 狀態轉移方程&#xff1a; 以n3為例&#xff1a; 以1為頭節點&#xff0c;左子樹有0個結點&#xff0c;右子樹有2個結點&#xff1b; 以2為頭節點&#xff0c;左子樹有1個…

安科瑞AIM-D100-ES光伏儲能系統直流絕緣監測儀

概述 AIM-D100-ES 型直流絕緣監測儀主要用于在線監測直流不接地系統正負極對地絕緣電阻&#xff0c;當絕緣電阻低于設定值時&#xff0c;能發出預警和報警信號。 產品可測 100-1500V 的直流系統&#xff0c;可應用于儲能直流系統、電動汽車充電裝置、UPS 供電系統、光伏直流系…

超級好用的C++實用庫之日志類

&#x1f4a1; 需要該C實用庫源碼的大佬們&#xff0c;可搜索微信公眾號“希望睿智”。添加關注后&#xff0c;輸入消息“超級好用的C實用庫”&#xff0c;即可獲得源碼的下載鏈接。 概述 日志類主要用于在程序運行過程中記錄信息、錯誤、警告以及其他需要跟蹤的數據&#xff0…