datax 导入数据中文乱码_浅谈数据同步之道
數據同步,顧名思義就是不同系統的數據進行同步處理。而業務系統所涉及的數據庫同步是重中之重,雖然大部分數據庫都提供了導入導出的工具,但是數據存儲到各個地方,Hive、Hbase、MySQL、Oracle 等各種各樣的不同數據庫,然而要把數據同步到指定不同類型的存儲庫是非常麻煩。那該如何統一實現數據源同步?下面介紹幾種常用的同步的方案和工具。
1、Sqoop
Apache Sqoop 是一種工具,用于在 Apache Hadoop 和外部數據存儲(如關系數據庫,企業數據倉庫)之間高效傳輸批量數據。
Sqoop 用于將數據從外部數據存儲導入 Hadoop Hdfs 或 Hive 和 HBase 等相關 Hadoop 生態系統。同樣,Sqoop 還可用于從 Hadoop 或其生態系統中提取數據,并將其導出到外部數據存儲區,如關系數據庫、數據倉庫。Sqoop 適用于 Oracle,MySQL,Postgres 等關系數據庫。
Sqoop 數據導入命令示例如下。
sqoop import -connect jdbc:mysql://localhost:3306/sqoop -username root -password 123456 -table emp_etl -m 3 -hive-import -create-hive-table -hive-table emp_mysql通過命令行界面執行 Sqoop 命令。也可以使用 Java API 訪問 Sqoop。Sqoop 解析命令行生成 MapRedure 并只啟動 Hadoop Map 作業以導入或導出數據,因為只有在需要聚合時才需要 Reduce 階段。Sqoop 只是導入和導出數據, 它沒有做任何聚合。
映射作業根據用戶定義的數量(-m 3)啟動多個映射器。對于 Sqoop 導入,將為每個映射器任務分配一部分要導入的數據。Sqoop 在映射器之間平均分配輸入數據以獲得高性能。然后,每個映射器使用 JDBC 創建與數據庫的連接,并獲取由 Sqoop 分配的數據部分,將其寫入 HDFS 或 Hive 或 HBase。
2、Datax
DataX 是阿里開發的一個異構數據源離線同步工具,致力于實現包括關系型數據庫(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各種異構數據源之間穩定高效的數據同步功能。
DataX 本身作為離線數據同步框架,采用 Framework + plugin 架構構建。將數據源讀取和寫入抽象成為 Reader/Writer 插件,納入到整個同步框架中。
Reader:為數據采集模塊,負責采集數據源的數據,將數據發送給 Framework。
Writer: 為數據寫入模塊,負責不斷向 Framework 取數據,并將數據寫入到目的端。
Framework:用于連 接reader 和writer ,作為兩者的數據傳輸通道,并處理緩沖,流控,并發,數據轉換等核心技術問題。
Datax 使用比較簡單,只下載 Datax 解壓,配置需要運行環境,通過命令運行寫好的 json 文件既可以執行任務,另外可以通過二次開發插件支持新的數據源類型,易拓展。
{"job": {"content": [{"reader": {"name": "xxxreader",...},"writer": {"name": "xxxwriter",...}}],...} }3、Canal
無論是 Sqoop 還是 Datax 都是屬于離線同步, 不支持實時的數據抽取。這里說個 MySQL 數據庫的同步組件
Canal,非常便捷地將 MySQL 中的數據抽取到任意目標存儲中。
原理就是 Canal 偽裝成 MySQL 從節點,讀取 MySQL 的 binlog(一個二進制格式的文件,它記錄了數據庫的所有改變,并以二進制的形式保存在磁盤中。),生成消息,客戶端訂閱這些數據變更消息,處理并存儲。只要開發一個 Canal 客戶端就可以解析出 MySQL 的操作,再將這些數據發送到大數據流計算處理引擎,即可以實現對 MySQL 實時處理。
4、kettle
Kettle 是一款開源的 ETL 工具,實現對各種數據源讀取,操作和寫入數據,Kettle 無需安裝解壓即可使用,可通過客戶端進行配置和執行作業。Kettle 中有兩種腳本文件,transformation 和 job,transformation 完成針對數據的基礎轉換,job 則完成整個工作流的控制。
5、Informatica PowerCenter
Informatica PowerCenter 是世界級的 企業數據集成平臺,從異構的已有系統和數據源中抽取數據,用來構建和管理企業的數據倉庫,從而幫助企業做出快速、正確的決策。此產品為滿足企業級要求而設計,可以提供企業部門的數據和非關系型數據之間的集成,如XML,網站日志,關系型數據,主機和遺留系統等數據源。
小結
那我們該如何選擇合適同步的工具。大數據平臺是與 Hadoop 集群相掛鉤,在離線同步一般選擇 Sqoop,Sqoop 從一開始就是為大數據平臺的數據采集業務服務,而且作為 Apache 頂級的項目,Sqoop 比起 Datax 更加可靠,如果涉及阿里自身的數據庫系列選擇 Datax 是一個不錯的選擇。在實時同步數據,一般采用 Kafka 作為中間組件,跟 Canal 結合實現 MySQL 到 Hive 增量數據同步。kettle 和 Informatica PowerCenter 一般在建設數倉中使用,通過客戶端配置 ETL 任務定制。
總結
以上是生活随笔為你收集整理的datax 导入数据中文乱码_浅谈数据同步之道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2万人同时访问 nodejs_面向前端工
- 下一篇: 是什么故障码_大众途观报P2187、P0