大數據之路 讀書筆記 Day4 數據同步

回顧:

  • Day 3 總結了無限客戶端的日志采集 大數據之路 讀書筆記 Day 3
  • Day 2總結了瀏覽器端的日志采集 大數據之路 讀書筆記 Day 2

數據同步

阿里數據體系中的數據同步,主要指的是在不同的數據存儲系統之間進行數據的傳輸與更新,以保證數據的一致性和實時性。這個過程通常涉及到源系統的數據抽取、數據轉換處理以及目標系統的數據加載三個核心步驟,簡稱ETL(Extract, Transform, Load)。
DataX在阿里數據體系中扮演著關鍵的角色,它是一款高性能的離線數據同步工具,主要用于實現不同數據源之間的數據遷移和同步。DataX的設計理念是為了提供一種靈活、高效且可擴展的方式,來解決數據在各種異構系統之間的傳輸問題。
總的來說,數據同步有三種方式:

  • 直連同步
  • 數據文件同步
  • 數據庫日志解析同步

本文將重點介紹后兩種,因為比較重要

1. 直連同步

在這里插入圖片描述

定義了規范接口API,配置簡單,但性能較差

2. 數據文件同步

在這里插入圖片描述約定好文件編碼、大小、格式,直接從源系統生成數據的文本文件,然后上傳到文件服務器(FTP),然后加載到目標系統。

好處:

  • 可以包含多個異構數據庫系統,如oracle、mysql、DB2等等
  • 還可以傳輸互聯網的日志類數據,因為它們也是文本文件形式存儲

注意:

  • 由于文件服務器上傳、下載可能會丟包,所以還需要上傳校驗文件
  • 在源系統生成數據文件時,可以壓縮和加密,大大提高傳輸性能和安全性

3. 數據庫日志解析同步

在這里插入圖片描述
通過直接解析日志文件,獲取發生變更的數據,從而滿足增量數據同步的需求

以Oracle舉例

  • 通過源系統進程讀取歸檔日志文件,收集數據變化信息
  • 判斷是否屬于被收集對象
  • 解析到目標數據文件(以上三步均通過操作系統完成,不通過數據庫,因此不會影響源系統性能)
  • 通過網絡協議傳輸
  • 通過數據加載模塊導入

數據庫日志解析同步方式實現了實時與準實時同步的能力,延遲可以控制在毫秒級別,并且對業務系統的性能影響也較小,目前廣泛應用于從業務系統到數據倉庫系統的增量數據同步應用之中。

本書中還介紹了數據庫日志抽取中,針對不同的業務場景,須采用不同的落地手法。如類似刪除數據后產生的日志的處理方法,結合主鍵考慮,這里不再詳述。

4. 阿里數據倉庫的同步方式

4.1 阿里數據倉庫的特點

  1. 數據來源的多樣性,包括mysql等結構化數據,同時還包含web服務器產生的日志、各類圖片、視頻等
  2. 海量數據,目前阿里巴巴的大數據處理系統maxcompute的數據存儲達到EB級別,需要同步的數據量達到PB級別

以上兩點,使得處理數據需要采取不同策略

4.2 批量數據同步

在這里插入圖片描述

阿里巴巴的 DataX 是一個能滿足多方向高自由度的異構數據交換服務產品。對于不同的數據源,DataX 通過插件的形式提供支持,將數據從數據讀出并轉換為中間狀態,同時維護好數據的傳輸、緩存等工作。數據在 DataX 中以中間狀態存在,并在目標數據系統中將中間狀態的數據轉換為對應的數據格式后寫入。目前 DataX 每天都需要處理 2PB 左右的批量數據同步任務,通過分布式模式,同步完所有的數據所需要的時間一般在 3 小時以內,有力保障了大數據同步的準確及高效性。

在這里插入圖片描述

  • Job:數據同步作業。
  • Splitter:作業切分模塊,將一個大任務分解成多個可以并行的小任務。
  • Sub-Job:數據同步作業切分后的小任務,或稱之為 Task。
  • Reader:數據讀入模塊,負責運行切分后的小任務,將數據從源系統裝載到 DataX。
  • Channel:Reader 和 Writer 通過 Channel 交換數據。
  • Writer:數據寫出模塊,負責將數據從 DataX 導入目標數據系統。

4.3 實時數據同步

產生原因:

處理雙11這種需要實時匯總,實現秒級數據刷新的業務場景
具體來說,就是建立一個數據日志交換中心,從每臺服務器源源不斷的讀取日志數據,然后通知訂閱了這些日志的數據倉庫獲取,TimeTunnel能夠實現這樣的需求

示意圖和介紹:

在這里插入圖片描述
具體來說,TT 是一種基于生產者、消費者和 Topic 消息標識的消息中間件,將消息數據持久化到 HBase 的高可用、分布式數據交互系統。

  • 生產者:消息數據的產生端,向 TimeTunnel 集群發送消息數據,就是圖中的生產 Client。

  • 消費者:消息數據的接收端,從 TimeTunnel 集群中獲取數據進行業務處理。

  • Topic:消息類型的標識,如淘寶 acookie 日志的 Topic 為 taobao_acookie,生產 Client 和消費 Client 均需要知道對應的 Topic 名字。

  • Broker 模塊:負責處理客戶端收發消息數據的請求,然后往 HBase 取發數據。

TimeTunnel 高效、穩定地支持阿里巴巴實時數據的同步,每天處理的日志類數據多達幾百 TB,數據庫 binlog 解析的實時增量數據同步也有幾百 TB,在天貓“雙 11”大促活動中,在峰值為每秒十幾萬筆交易量的極端情況下延遲控制在 3s 以內,有效保障了各種場景的實時數據應用。


以上就是今天的內容啦
點贊收藏關注,獲取更多干貨知識~

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

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

相關文章

【代碼隨想錄_Day26】56 合并區間 738 單調遞增的數字

Day26 OK,今日份的打卡!第二十六天 以下是今日份的總結合并區間單調遞增的數字 以下是今日份的總結 56 合并區間 738 單調遞增的數字 今天的題目難度不低,盡量還是寫一些簡潔代碼 ^?_?^ 合并區間 思路: 先排序,按…

reactor和proactor模型

Reactor模型是非阻塞的同步IO模型。在主線程中也就是IO處理單元中,只負責監聽文件描述符上是否有事件發生,有的話就立即將事件通知工作線程,將socket可讀可寫事件放入請求隊列,交給工作線程處理。 總而言之就是主線程監聽有事件發…

apk反編譯修改教程系列-----修改apk 解除軟件限制功能 實例操作步驟解析_3【二十二】

在前面的幾期博文中有過解析去除apk中功能權限的反編譯步驟。另外在以往博文中也列舉了修改apk中選項功能權限的操作方法。今天以另外一款apk作為演示修改反編譯去除軟件功能限制的步驟。興趣的友友可以參考其中的修改過程。 課程的目的是了解apk中各個文件的具體作用以及簡單…

debain系統使用日志

賬號 vboxuser changeme ssh遠程登錄vbox虛擬機 https://www.cnblogs.com/BuzzWeek/p/17557981.html Terminal su - root changeme sudo apt-get update sudo apt-get -y install openssh-server #啟動sshd systemctl status sshd 設置允許ssh登錄vbox虛擬機 參考&#xf…

【密碼學】什么是密碼?什么是密碼學?

一、密碼的定義 根據《中華人民共和國密碼法》對密碼的定義如下: 密碼是指采用特定變換的方法對信息等進行加密保護、安全認證的技術、產品和服務。 二、密碼學的定義 密碼學是研究編制密碼和破譯密碼的技術科學。由定義可以知道密碼學分為兩個主要分支&#x…

69.WEB滲透測試-信息收集- WAF、框架組件識別(9)

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動! 內容參考于: 易錦網校會員專享課 上一個內容:68.WEB滲透測試-信息收集- WAF、框架組件識別(8) 有無waf存在&am…

GESP C++一級真題

PDF圖片1-7 點贊??關注😍收藏?? 互粉必回🙏🙏🙏

DPDK源碼分析之(1)libmbuf模塊

DPDK源碼分析之(1)libmbuf模塊 Author:OnceDay Date:2024年7月2日 漫漫長路,有人對你笑過嘛… 全系列文檔可參考專欄:源碼分析_Once-Day的博客-CSDN博客 參考文檔: DPDK downloadGetting Started Guide for Linux…

JAVA中的for-each(增強型for循環)

Java 8及之后的版本中與for-each循環(也稱為增強型for循環)和數組處理結合使用時,它可能類似于Lambda表達式或流(Stream)API中的上下文。 舉例: public class ArrLength {public static void main(String…

CGAL計算凸包(OSG進行可視化)

目錄 一、什么是凸包 二、運行步驟 1、安裝依賴項 2、編譯osg庫 3、運行代碼 4、運行截圖 一、什么是凸包 凸包是計算幾何中的一個基本概念,用來描述一個點集的最小凸包圍形。具體來說,給定一個點集,凸包是包含該點集的最小凸多邊形或凸多面體。 二維凸包:在二維平面…

迭代器模式在金融業務中的應用及其框架實現

引言 迭代器模式(Iterator Pattern)是一種行為設計模式,它提供了一種方法順序訪問一個聚合對象中的各個元素,而又不需要暴露該對象的內部表示。在金融業務中,迭代器模式可以用于遍歷復雜的數據結構,如交易…

算法-常見數據結構設計

文章目錄 1. 帶有setAll功能的哈希表2. LRU緩存結構3. O(1)時間插入刪除隨機(去重)4. O(1)時間插入刪除隨機(不去重)5. 快速獲取數據流中的中位數6. 最大頻率棧7. 全O(1)結構8. LFU緩存結構 本節的內容比較難, 大多是leetcodeHard難度級別的題目 1. 帶有setAll功能的哈希表 哈希…

js計算兩個日期直接的間隔天,2018/12/14到2017/11/10有多少天

const startDate new Date(2017-11-10)const endDate new Date(2018-12-14)const diffTime Math.abs(endDate - startDate)const diffDays Math.ceil(diffTime / (1000 * 60 * 60 * 24))console.log(diffDays) // 輸出天數差 人工智能學習網站 https://chat.xutongbao.top…

解析Java中1000個常用類:DoubleSummaryStatistics類,你學會了嗎?

在線工具站 推薦一個程序員在線工具站:程序員常用工具(http://cxytools.com),有時間戳、JSON格式化、文本對比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序員資料站 推薦一個程序員編程資料站:程序員的成長之路(http://cxyroad.com),收錄了一些列的技術教程…

VSCode神仙插件——Codeium (AI編程助手)

1、安裝&登錄插件 安裝過程中會讓你登錄Codeium賬戶,可以通過Google賬戶登錄,或者可以注冊一個Codeium賬戶(如果沒有彈出讓你登錄賬戶的界面,可以等安裝結束后在右下角找到登錄的地方) 右下角顯示如下圖所示&#…

【ubuntu中關于驅動得問題】—— 如何將nouveau驅動程序加入黑名單和安裝NVIDIA顯卡驅動

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、nouveau驅動程序加入黑名單二、安裝NVIDIA顯卡驅動總結 前言 NVIDIA顯卡驅動是用于支持和優化NVIDIA顯卡在計算機系統中運行的關鍵軟件組件。該驅動程序能…

【每日一練】python算數練習題(函數.隨機.判斷綜合運用)

""" 幼兒園加減法練習題 答對點贊表情,答錯炸彈表情 表情隨機出現 如果全答對有大獎 """ import random df0 #定義答對函數 def dd():global dfdf10bq["🌹🌹🌹","🎉&…

(接上一篇)前端弄一個變量實現點擊次數在前端頁面實時更新

實現點擊次數在前端頁面實時更新,確實需要在前端維護一個變量來存儲當前的點擊次數。這個變量通常在Vue組件的data選項中定義,并在組件的生命周期方法或事件處理函數中更新。 以下是實現這一功能的基本步驟: 定義變量:在Vue組件的…

系統測試-測試方法學習

目錄 (1)等價類 (2)邊界值 (3)正交:(只用于確定排列組合,不確定具體內容) (4)判定表法 (5)流程分析法 (6&#xff0…

Django 查詢數據

模型參考上一章內容: Django QuerySet對象,filter()方法-CSDN博客 查詢數據可以通過以下方法: Book.objects.all() Book.objects.filter() Book.objects.get() 1,添加視圖函數 Test/app11/views.py from django.shortcuts im…