kafka訊息系統 海量資料遷移方案

2021-08-19 23:23:18 字數 1379 閱讀 1591

由於本人主要從事大資料視覺化的工作,就少不了對海量資料的分析,但是我們並不是資料的生產**,資料來自有大資料視覺化分析需求的使用者,所以實際業務中往往會遇到大量資料從傳統儲存方式(關係型資料庫、檔案儲存等)到資料倉儲的遷移,本次就以實現如何基於kafka從oracle到hive倉庫做資料的遷移工作。

本次操作的資料量為空間座標資料,原始資料儲存在oracle中,大概10億條左右,通過本身oracle的sql查詢操作已經是非常慢,很難用傳統的查詢統計方式對資料做大資料的聚合、統計、計算等分析操作,所以得到資料之後第一步就是將其遷移到hadoop 檔案系統中,通過hive進行儲存管理。

二、實現思路

1.hive

hive是乙個基於hadoop的開源資料倉儲工具,用於儲存和處理海量結構化資料。它是facebook 2023年8月開源的乙個資料倉儲框架,提供了類似於sql語法的hql語句作為資料訪問介面,hive有如下特點:

1.hive 使用類sql 查詢語法, 最大限度的實現了和sql標準的相容,大大降低了傳統資料分析人員學習的曲線;

2.使用jdbc 介面/odbc介面,開發人員更易開發應用;

3.以mr 作為計算引擎、hdfs 作為儲存系統,為超大資料集設計的計算/ 擴充套件能力;

4.統一的元資料管理(derby、mysql等),並可與pig 、presto 等共享;

hive的結構如下圖所示:

2.主要實現思路

主要實現了兩個程式,乙個生產者程式,乙個消費者程式,主要流程如下:

1.生產者程式通過sql查詢獲取前n條資料(實際操作是1000萬條)

2.生產者程式建立臨時表將這前n條資料儲存起來

3.生產者程式對這n條資料進行清洗,轉換,計算等操作(根據實際情況,處理成最終的資料結構和要求)

4.生產者程式將資料傳送到kafka集群

5.消費者程式接收kafka 傳送指定topic的資料,分批儲存成hdfs檔案

6.生產者程式刪除前n條資料,然後重新按照第一條依次執行,直到資料處理完畢

雖然上述執行操作可能不是乙個很好的解決方案,但是實現了海量資料遷移的目的,能夠支援多種關聯式資料庫和多種檔案格式的資料遷移,兩個程式(生產者和消費者程式)之間通過中間格式(json,protobuf等)進行資料的對接,耦合度非常低,針對不同業務,雖然需要調整解析**,但是相對來說已經是比較便利的方式。

訊息系統 Kafka

kafka學習了資料庫裡面的設計,在裡面設計了topic 主題 這個東西類似於關係型資料庫的表 此時我需要獲取中國移動的資料,那就直接監聽topica即可。topic和partition像是hbase裡的table和region的概念,table只是乙個邏輯上的概念,真正儲存資料的是region,這...

kafka訊息系統

kafka 1.kafka是一種分布式 基於發布 訂閱的訊息系統。2.常用mq mesage queue 訊息佇列 rabbitmq activemq 這個青奧用過哦 kafka 3.producer 負責發布訊息到kafkabroker kafka伺服器 broker 訊息伺服器topic 伺服器...

Kafka 資料遷移

當kafka 減少broker節點後,需要把資料分割槽遷移到其他節點上,以下將介紹我的一次遷移驗證過程。前3步為環境準備,實際資料操作看第4步即可 增加broker節點,也可以採用步驟4相同的方法進行重新分割槽 方案思想 使用kafka reassign partitions命令,把partitio...