精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何基于日志,同步實現(xiàn)數(shù)據(jù)的一致性和實時抽取?

運維 系統(tǒng)運維
本次分享的主題是《基于日志的DWS平臺實現(xiàn)和應用》,主要是分享一下目前我們在宜信做的一些事情。這個主題里面包含到2個團隊很多兄弟姐妹的努力的結果(我們團隊和山巍團隊的成果)。這次就由我代為執(zhí)筆,盡我努力給大家介紹一下。

作者:王東

宜信技術研發(fā)中心架構師

目前就職于宜信技術研發(fā)中心,任架構師,負責流式計算和大數(shù)據(jù)業(yè)務產品解決方案。

曾任職于Naver china(韓國***搜索引擎公司)中國研發(fā)中心資深工程師,多年從事CUBRID分布式數(shù)據(jù)庫集群開發(fā)和CUBRID數(shù)據(jù)庫引擎開發(fā)

http://www.cubrid.org/blog/news/cubrid-cluster-introduction/

主題簡介:

DWS的背景介紹

dbus+wormhole總體架構和技術實現(xiàn)方案

DWS的實際運用案例

前言

大家好,我是王東,來自宜信技術研發(fā)中心,這是我來社群的***次分享,如果有什么不足,請大家多多指正、包涵。

本次分享的主題是《基于日志的DWS平臺實現(xiàn)和應用》,主要是分享一下目前我們在宜信做的一些事情。這個主題里面包含到2個團隊很多兄弟姐妹的努力的結果(我們團隊和山巍團隊的成果)。這次就由我代為執(zhí)筆,盡我努力給大家介紹一下。

其實整個實現(xiàn)從原理上來說是比較簡單的,當然也涉及到不少技術。我會嘗試用盡量簡單的方式來表達,讓大家了解這個事情的原理和意義。在過程中,大家有問題可以隨時提出,我會盡力去解答。

DWS是一個簡稱,是由3個子項目組成,我稍后做解釋。

一、背景

事情是從公司前段時間的需求說起,大家知道宜信是一個互聯(lián)網金融企業(yè),我們的很多數(shù)據(jù)與標準互聯(lián)網企業(yè)不同,大致來說就是:

玩數(shù)據(jù)的人都知道數(shù)據(jù)是非常有價值的,然后這些數(shù)據(jù)是保存在各個系統(tǒng)的數(shù)據(jù)庫中,如何讓需要數(shù)據(jù)的使用方得到一致性、實時的數(shù)據(jù)呢?

過去的通用做法有幾種是:

  1. DBA開放各個系統(tǒng)的備庫,在業(yè)務低峰期(比如夜間),使用方各自抽取所需數(shù)據(jù)。由于抽取時間不同,各個數(shù)據(jù)使用方數(shù)據(jù)不一致,數(shù)據(jù)發(fā)生沖突,而且重復抽取,相信不少DBA很頭疼這個事情。
  2. 公司統(tǒng)一的大數(shù)據(jù)平臺,通過Sqoop 在業(yè)務低峰期到各個系統(tǒng)統(tǒng)一抽取數(shù)據(jù), 并保存到Hive表中, 然后為其他數(shù)據(jù)使用方提供數(shù)據(jù)服務。這種做法解決了一致性問題,但時效性差,基本是T+1的時效。
  3. 基于trigger的方式獲取增量變更,主要問題是業(yè)務方侵入性大,而且trigger也帶來性能損失。

這些方案都不算***。我們在了解和考慮了不同實現(xiàn)方式后,***借鑒了 linkedin的思想,認為要想同時解決數(shù)據(jù)一致性和實時性,比較合理的方法應該是來自于log。

(此圖來自:https://www.confluent.io/blog/using-logs-to-build-a-solid-data-infrastructure-or-why-dual-writes-are-a-bad-idea/)

把增量的Log作為一切系統(tǒng)的基礎。后續(xù)的數(shù)據(jù)使用方,通過訂閱kafka來消費log。

比如:

  • 大數(shù)據(jù)的使用方可以將數(shù)據(jù)保存到Hive表或者Parquet文件給Hive或Spark查詢;
  • 提供搜索服務的使用方可以保存到Elasticsearch或HBase 中;
  • 提供緩存服務的使用方可以將日志緩存到Redis或alluxio中;
  • 數(shù)據(jù)同步的使用方可以將數(shù)據(jù)保存到自己的數(shù)據(jù)庫中;
  • 由于kafka的日志是可以重復消費的,并且緩存一段時間,各個使用方可以通過消費kafka的日志來達到既能保持與數(shù)據(jù)庫的一致性,也能保證實時性;

為什么使用log和kafka作為基礎,而不使用Sqoop進行抽取呢? 因為:

為什么不使用dual write(雙寫)呢?,請參考https://www.confluent.io/blog/using-logs-to-build-a-solid-data-infrastructure-or-why-dual-writes-are-a-bad-idea/

我這里就不多做解釋了。

二、總體架構

于是我們提出了構建一個基于log的公司級的平臺的想法。

下面解釋一下DWS平臺, DWS平臺是有3個子項目組成:

  1. Dbus(數(shù)據(jù)總線):負責實時將數(shù)據(jù)從源端實時抽出,并轉換為約定的自帶schema的json格式數(shù)據(jù)(UMS 數(shù)據(jù)),放入kafka中;
  2. Wormhole(數(shù)據(jù)交換平臺):負責從kafka讀出數(shù)據(jù) 將數(shù)據(jù)寫入到目標中;
  3. Swifts(實時計算平臺):負責從kafka中讀出數(shù)據(jù),實時計算,并將數(shù)據(jù)寫回kafka中。

圖中:

  • Log extractor和dbus共同完成數(shù)據(jù)抽取和數(shù)據(jù)轉換,抽取包括全量和增量抽取。
  • Wormhole可以將所有日志數(shù)據(jù)保存到HDFS中; 還可以將數(shù)據(jù)落地到所有支持jdbc的數(shù)據(jù)庫,落地到HBash,Elasticsearch,Cassandra等;
  • Swifts支持以配置和SQL的方式實現(xiàn)對進行流式計算,包括支持流式join,look up,filter,window aggregation等功能;
  • Dbus web是dbus的配置管理端,rider除了配置管理以外,還包括對Wormhole和Swifts運行時管理,數(shù)據(jù)質量校驗等。

由于時間關系,我今天主要介紹DWS中的Dbus和Wormhole,在需要的時候附帶介紹一下Swifts。

三、dbus解決方案

日志解析

如前面所說,Dbus主要解決的是將日志從源端實時的抽出。 這里我們以MySQL為例子,簡單說明如何實現(xiàn)。

我們知道,雖然MySQL InnoDB有自己的log,MySQL主備同步是通過binlog來實現(xiàn)的。如下圖:

圖片來自:https://github.com/alibaba/canal

而binlog有三種模式:

Row 模式:日志中會記錄成每一行數(shù)據(jù)被修改的形式,然后在slave端再對相同的數(shù)據(jù)進行修改。

Statement 模式: 每一條會修改數(shù)據(jù)的sql都會記錄到 master的bin-log中。slave在復制的時候SQL進程會解析成和原來master端執(zhí)行過的相同的SQL來再次執(zhí)行。

Mixed模式: MySQL會根據(jù)執(zhí)行的每一條具體的sql語句來區(qū)分對待記錄的日志形式,也就是在Statement和Row之間選擇一種。

他們各自的優(yōu)缺點如下:

此處來自:http://www.jquerycn.cn/a_13625

由于statement 模式的缺點,在與我們的DBA溝通過程中了解到,實際生產過程中都使用row 模式進行復制。這使得讀取全量日志成為可能。

通常我們的MySQL布局是采用 2個master主庫(vip)+ 1個slave從庫 + 1個backup容災庫 的解決方案,由于容災庫通常是用于異地容災,實時性不高也不便于部署。

為了最小化對源端產生影響,顯然我們讀取binlog日志應該從slave從庫讀取。

讀取binlog的方案比較多,github上不少,參考https://github.com/search?utf8=%E2%9C%93&q=binlog。最終我們選用了阿里的canal做位日志抽取方。

Canal最早被用于阿里中美機房同步, canal原理相對比較簡單:

  1. Canal模擬MySQL Slave的交互協(xié)議,偽裝自己為MySQL Slave,向MySQL Slave發(fā)送dump協(xié)議
  2. MySQL master收到dump請求,開始推送binary log給Slave(也就是canal)
  3. Canal解析binary log對象(原始為byte流)

圖片來自:https://github.com/alibaba/canal

解決方案

Dbus 的MySQL版主要解決方案如下:

對于增量的log,通過訂閱Canal Server的方式,我們得到了MySQL的增量日志:

  • 按照Canal的輸出,日志是protobuf格式,開發(fā)增量Storm程序,將數(shù)據(jù)實時轉換為我們定義的UMS格式(json格式,稍后我會介紹),并保存到kafka中;
  • 增量Storm程序還負責捕獲schema變化,以控制版本號;
  • 增量Storm的配置信息保存在Zookeeper中,以滿足高可用需求。
  • Kafka既作為輸出結果也作為處理過程中的緩沖器和消息解構區(qū)。
  • 在考慮使用Storm作為解決方案的時候,我們主要是認為Storm有以下優(yōu)點:
  • 技術相對成熟,比較穩(wěn)定,與kafka搭配也算標準組合;
  • 實時性比較高,能夠滿足實時性需求;
  • 滿足高可用需求;
  • 通過配置Storm并發(fā)度,可以活動性能擴展的能力;

全量抽取

對于流水表,有增量部分就夠了,但是許多表需要知道最初(已存在)的信息。這時候我們需要initial load(***次加載)。

對于initial load(***次加載),同樣開發(fā)了全量抽取Storm程序通過jdbc連接的方式,從源端數(shù)據(jù)庫的備庫進行拉取。initial load是拉全部數(shù)據(jù),所以我們推薦在業(yè)務低峰期進行。好在只做一次,不需要每天都做。

全量抽取,我們借鑒了Sqoop的思想。將全量抽取Storm分為了2 個部分:

  1. 數(shù)據(jù)分片
  2. 實際抽取

數(shù)據(jù)分片需要考慮分片列,按照配置和自動選擇列將數(shù)據(jù)按照范圍來分片,并將分片信息保存到kafka中。

下面是具體的分片策略:

全量抽取的Storm程序是讀取kafka的分片信息,采用多個并發(fā)度并行連接數(shù)據(jù)庫備庫進行拉取。因為抽取的時間可能很長。抽取過程中將實時狀態(tài)寫到Zookeeper中,便于心跳程序監(jiān)控。

統(tǒng)一消息格式

無論是增量還是全量,最終輸出到kafka中的消息都是我們約定的一個統(tǒng)一消息格式,稱為UMS(unified message schema)格式。

如下圖所示:

 

消息中schema部分,定義了namespace 是由 類型+數(shù)據(jù)源名+schema名+表名+版本號+分庫號+分表號 能夠描述整個公司的所有表,通過一個namespace就能唯一定位。

  • _ums_op_ 表明數(shù)據(jù)的類型是I(insert),U(update),D(刪除);
  • _ums_ts_ 發(fā)生增刪改的事件的時間戳,顯然新的數(shù)據(jù)發(fā)生的時間戳更新;
  • _ums_id_ 消息的唯一id,保證消息是唯一的,但這里我們保證了消息的先后順序(稍后解釋);

payload是指具體的數(shù)據(jù),一個json包里面可以包含1條至多條數(shù)據(jù),提高數(shù)據(jù)的有效載荷。

UMS中支持的數(shù)據(jù)類型,參考了Hive類型并進行簡化,基本上包含了所有數(shù)據(jù)類型。

全量和增量的一致性

在整個數(shù)據(jù)傳輸中,為了盡量的保證日志消息的順序性,kafka我們使用的是1個partition的方式。在一般情況下,基本上是順序的和唯一的。

但是我們知道寫kafka會失敗,有可能重寫,Storm也用重做機制,因此,我們并不嚴格保證exactly once和完全的順序性,但保證的是at least once。

因此_ums_id_變得尤為重要。

對于全量抽取,_ums_id_是唯一的,從zk中每個并發(fā)度分別取不同的id片區(qū),保證了唯一性和性能,填寫負數(shù),不會與增量數(shù)據(jù)沖突,也保證他們是早于增量消息的。

對于增量抽取,我們使用的是MySQL的日志文件號 + 日志偏移量作為唯一id。Id作為64位的long整數(shù),高7位用于日志文件號,低12位作為日志偏移量。

例如:000103000012345678。 103 是日志文件號,12345678 是日志偏移量。

這樣,從日志層面保證了物理唯一性(即便重做也這個id號也不變),同時也保證了順序性(還能定位日志)。通過比較_ums_id_ 消費日志就能通過比較_ums_id_知道哪條消息更新。

其實_ums_ts_與_ums_id_意圖是類似的,只不過有時候_ums_ts_可能會重復,即在1毫秒中發(fā)生了多個操作,這樣就得靠比較_ums_id_了。

心跳監(jiān)控和預警

整個系統(tǒng)涉及到數(shù)據(jù)庫的主備同步,Canal Server,多個并發(fā)度Storm進程等各個環(huán)節(jié)。

因此對流程的監(jiān)控和預警就尤為重要。

通過心跳模塊,例如每分鐘(可配置)對每個被抽取的表插入一條心態(tài)數(shù)據(jù)并保存發(fā)送時間,這個心跳表也被抽取,跟隨著整個流程下來,與被同步表在實際上走相同的邏輯(因為多個并發(fā)的的Storm可能有不同的分支),當收到心跳包的時候,即便沒有任何增刪改的數(shù)據(jù),也能證明整條鏈路是通的。

Storm程序和心跳程序將數(shù)據(jù)發(fā)送公共的統(tǒng)計topic,再由統(tǒng)計程序保存到influxdb中,使用grafana進行展示,就可以看到如下效果:

圖中是某業(yè)務系統(tǒng)的實時監(jiān)控信息。上面是實時流量情況,下面是實時延時情況。可以看到,實時性還是很不錯的,基本上1~2秒數(shù)據(jù)就已經到末端kafka中。

Granfana提供的是一種實時監(jiān)控能力。

如果出現(xiàn)延時,則是通過dbus的心跳模塊發(fā)送郵件報警或短信報警。

實時脫敏

考慮到數(shù)據(jù)安全性,對于有脫敏需求的場景,Dbus的全量storm和增量storm程序也完成了實時脫敏的功能。脫敏方式有3種:

總結一下:簡單的說,Dbus就是將各種源的數(shù)據(jù),實時的導出,并以UMS的方式提供訂閱, 支持實時脫敏,實際監(jiān)控和報警。

四、Wormhole解決方案

說完Dbus,該說一下Wormhole,為什么兩個項目不是一個,而要通過kafka來對接呢?

其中很大一個原因就是解耦,kafka具有天然的解耦能力,程序直接可以通過kafka做異步的消息傳遞。Dbus和Wornhole內部也使用了kafka做消息傳遞和解耦。

另外一個原因就是,UMS是自描述的,通過訂閱kafka,任何有能力的使用方來直接消費UMS來使用。

雖然UMS的結果可以直接訂閱,但還需要開發(fā)的工作。Wormhole解決的是:提供一鍵式的配置,將kafka中的數(shù)據(jù)落地到各種系統(tǒng)中,讓沒有開發(fā)能力的數(shù)據(jù)使用方通過wormhole來實現(xiàn)使用數(shù)據(jù)。

如圖所示,Wormhole 可以將kafka中的UMS 落地到各種系統(tǒng),目前用的最多的HDFS,JDBC的數(shù)據(jù)庫和HBase。

在技術棧上, wormhole選擇使用spark streaming來進行。

在Wormhole中,一條flow是指從一個namaspace從源端到目標端。一個spark streaming服務于多條flow。

選用Spark的理由是很充分的:

  • Spark天然的支持各種異構存儲系統(tǒng);
  • 雖然Spark Stream比Storm延時稍差,但Spark有著更好的吞吐量和更好的計算性能;
  • Spark在支持并行計算方面有更強的靈活性;
  • Spark提供了一個技術棧內解決Sparking Job,Spark Streaming,Spark SQL的統(tǒng)一功能,便于后期開發(fā);
  • 這里補充說一下Swifts的作用:
  • Swifts的本質是讀取kafka中的UMS數(shù)據(jù),進行實時計算,將結果寫入到kafka的另外一個topic。
  • 實時計算可以是很多種方式:比如過濾filter,projection(投影),lookup, 流式join window aggregation,可以完成各種具有業(yè)務價值的流式實時計算。

Wormhole和Swifts對比如下:

落HDFS

通過Wormhole Wpark Streaming程序消費kafka的UMS,首先UMS log可以被保存到HDFS上。

kafka一般只保存若干天的信息,不會保存全部信息,而HDFS中可以保存所有的歷史增刪改的信息。這就使得很多事情變?yōu)榭赡埽?/p>

  • 通過重放HDFS中的日志,我們能夠還原任意時間的歷史快照。
  • 可以做拉鏈表,還原每一條記錄的歷史信息,便于分析;
  • 當程序出現(xiàn)錯誤是,可以通過回灌(backfill),重新消費消息,重新形成新的快照。

可以說HDFS中的日志是很多的事情基礎。

介于Spark原生對parquet支持的很好,Spark SQL能夠對Parquet提供很好的查詢。UMS落地到HDFS上是保存到Parquet文件中的。Parquet的內容是所有l(wèi)og的增刪改信息以及_ums_id_,_ums_ts_都存下來。

Wormhole spark streaming根據(jù)namespace 將數(shù)據(jù)分布存儲到不同的目錄中,即不同的表和版本放在不同目錄中。

由于每次寫的Parquet都是小文件,大家知道HDFS對于小文件性能并不好,因此另外還有一個job,每天定時將這些的Parquet文件進行合并成大文件。

每個Parquet文件目錄都帶有文件數(shù)據(jù)的起始時間和結束時間。這樣在回灌數(shù)據(jù)時,可以根據(jù)選取的時間范圍來決定需要讀取哪些Parquet文件,不必讀取全部數(shù)據(jù)。

插入或更新數(shù)據(jù)的冪等性

常常我們遇到的需求是,將數(shù)據(jù)經過加工落地到數(shù)據(jù)庫或HBase中。那么這里涉及到的一個問題就是,什么樣的數(shù)據(jù)可以被更新到數(shù)據(jù)?

這里最重要的一個原則就是數(shù)據(jù)的冪等性。

無論是遇到增刪改任何的數(shù)據(jù),我們面臨的問題都是:

  1. 該更新哪一行;
  2. 更新的策略是什么。

對于***個問題,其實就需要定位數(shù)據(jù)要找一個唯一的鍵,常見的有:

  1. 使用業(yè)務庫的主鍵;
  2. 由業(yè)務方指定幾個列做聯(lián)合唯一索引;

對于第二個問題,就涉及到_ums_id_了,因為我們已經保證了_ums_id_大的值更新,因此在找到對應數(shù)據(jù)行后,根據(jù)這個原則來進行替換更新。

之所以要軟刪除和加入_is_active_列,是為了這樣一種情況:

如果已經插入的_ums_id_比較大,是刪除的數(shù)據(jù)(表明這個數(shù)據(jù)已經刪除了), 如果不是軟刪除,此時插入一個_ums_id_小的數(shù)據(jù)(舊數(shù)據(jù)),就會真的插入進去。

這就導致舊數(shù)據(jù)被插入了。不冪等了。所以被刪除的數(shù)據(jù)依然保留(軟刪除)是有價值的,它能被用于保證數(shù)據(jù)的冪等性。

HBase的保存

插入數(shù)據(jù)到Hbase中,相當要簡單一些。不同的是HBase可以保留多個版本的數(shù)據(jù)(當然也可以只保留一個版本)默認是保留3個版本;

因此插入數(shù)據(jù)到HBase,需要解決的問題是:

  1. 選擇合適的rowkey:Rowkey的設計是可以選的,用戶可以選擇源表的主鍵,也可以選擇若干列做聯(lián)合主鍵。
  2. 選擇合適的version:使用_ums_id_+ 較大的偏移量(比如100億) 作為row的version。

Version的選擇很有意思,利用_ums_id_的唯一性和自增性,與version自身的比較關系一致:即version較大等價于_ums_id_較大,對應的版本較新。

從提高性能的角度,我們可以將整個Spark Streaming的Dataset集合直接插入到HBase,不需要比較。讓HBase基于version自動替我們判斷哪些數(shù)據(jù)可以保留,哪些數(shù)據(jù)不需要保留。

Jdbc的插入數(shù)據(jù):

插入數(shù)據(jù)到數(shù)據(jù)庫中,保證冪等的原理雖然簡單,要想提高性能在實現(xiàn)上就變得復雜很多,總不能一條一條的比較然后在插入或更新。

我們知道Spark的RDD/dataset都是以集合的方式來操作以提高性能,同樣的我們需要以集合操作的方式實現(xiàn)冪等性。

具體思路是:

  1. 首先根據(jù)集合中的主鍵到目標數(shù)據(jù)庫中查詢,得到一個已有數(shù)據(jù)集合;
  2. 與dataset中的集合比較,分出兩類:

A:不存在的數(shù)據(jù),即這部分數(shù)據(jù)insert就可以;

B:存在的數(shù)據(jù),比較_ums_id_, 最終只將哪些_ums_id_更新較大row到目標數(shù)據(jù)庫,小的直接拋棄。

使用Spark的同學都知道,RDD/dataset都是可以partition的,可以使用多個worker并進行操作以提高效率。

在考慮并發(fā)情況下,插入和更新都可能出現(xiàn)失敗,那么還有考慮失敗后的策略。

比如:因為別的worker已經插入,那么因為唯一性約束插入失敗,那么需要改為更新,還要比較_ums_id_看是否能夠更新。

對于無法插入其他情況(比如目標系統(tǒng)有問題),Wormhole還有重試機制。說起來細節(jié)特別多。這里就不多介紹了。

有些還在開發(fā)中。

插入到其他存儲中的就不多介紹了,總的原則是:根據(jù)各自存儲自身特性,設計基于集合的,并發(fā)的插入數(shù)據(jù)實現(xiàn)。這些都是Wormhole為了性能而做的努力,使用Wormhole的用戶不必關心 。

五、運用案例

實時營銷

說了那么多,DWS有什么實際運用呢?下面我來介紹某系統(tǒng)使用DWS實現(xiàn)了的實時營銷。

如上圖所示:

系統(tǒng)A的數(shù)據(jù)都保存到自己的數(shù)據(jù)庫中,我們知道,宜信提供很多金融服務,其中包括借款,而借款過程中很重要的就是信用審核。

借款人需要提供證明具有信用價值的信息,比如央行征信報告,是具有***信用數(shù)據(jù)的數(shù)據(jù)。 而銀行流水,網購流水也是具有較強的信用屬性的數(shù)據(jù)。

借款人通過Web或手機APP在系統(tǒng)A中填寫信用信息時,可能會某些原因無法繼續(xù),雖然可能這個借款人是一個優(yōu)質潛在客戶,但以前由于無法或很久才能知道這個信息,所以實際上這樣的客戶是流失了。

應用了DWS以后,借款人已經填寫的信息已經記錄到數(shù)據(jù)庫中,并通過DWS實時的進行抽取、計算和落地到目標庫中。根據(jù)對客戶的打分,評價出優(yōu)質客戶。然后立刻將這個客戶的信息輸出到客服系統(tǒng)中。

客服人員在很短的時間(幾分鐘以內)就通過打電話的方式聯(lián)系上這個借款人(潛客),進行客戶關懷,將這個潛客轉換為真正的客戶。我們知道借款是有時效性的,如果時間太久就沒有價值了。

如果沒有實時抽取/計算/落庫的能力,那么這一切都無法實現(xiàn)。

實時報表系統(tǒng)

另外一個實時報表的應用如下:

我們數(shù)據(jù)使用方的數(shù)據(jù)來自多個系統(tǒng),以前是通過T+1的方式獲得報表信息,然后指導第二天的運營,這樣時效性很差。

通過DWS,將數(shù)據(jù)從多個系統(tǒng)中實時抽取,計算和落地,并提供報表展示,使得運營可以及時作出部署和調整,快速應對。

六、總結

說了那么多,大致總結一下:

  • DWS技術上基于主流實時流式大數(shù)據(jù)技術框架,高可用大吞吐強水平擴容,低延遲高容錯最終一致。
  • DWS能力上支持異構多源多目標系統(tǒng),支持多數(shù)據(jù)格式(結構化半結構化非結構化數(shù)據(jù))和實時技術能力。
  • DWS將三個子項目合并作為一個平臺推出,使得我們具備了實時的能力, 驅動各種實時場景應用。

適合場景包括:實時同步/實時計算/實時監(jiān)控/實時報表/實時分析/實時洞察/實時管理/實時運營/實時決策

感謝大家的聆聽,此次分享到此為止。

Q&A

Q1:Oracle log reader有開源方案嗎?

A1:對于Oracle業(yè)界也有許多商業(yè)解決方案,例如:Oracle GoldenGate(原來的goldengate), Oracle Xstream, IBM InfoSphere Change Data Capture(原來的DataMirror),Dell SharePlex (原來的Quest),國內的DSG superSync等,開源的方案好用的很少。

Q2:這個項目投入了多少人力物力?感覺有點復雜。

Q2:DWS是三個子項目組成,平均每個項目5~7人。是有點復雜,其實也是試圖使用大數(shù)據(jù)技術來解決我們公司目前遇到的困難。

因為是搞大數(shù)據(jù)相關技術,所有團隊里面的兄弟姐妹都還是比較happy的:)

其實這里面,Dbus和Wormhole相對固定模式化,容易輕松復用。Swifts實時計算是與每個業(yè)務相關比較大的,自定義比較強,相對比較麻煩一些。

Q3:宜信的這個DWS系統(tǒng)會開源么?

A3:我們也考慮過向社區(qū)貢獻,就像宜信的其他開源項目一樣,目前項目剛剛成形,還有待進一步磨煉,我相信未來的某個時候,我們會給它開源出來。

Q4:架構師怎么理解,是不是系統(tǒng)工程師?

A4:不是系統(tǒng)工程師,在我們宜信有多位架構師,應該算是以技術驅動業(yè)務的技術管理人員。包含產品設計,技術管理等。

Q5:復制方案是否是OGG?

A5:OGG與上面提到的其他商業(yè)解決方案都是可選方案。

責任編輯:武曉燕 來源: 運維派
相關推薦

2021-07-26 06:33:42

CRDT數(shù)據(jù)CAP

2024-08-20 16:13:52

2024-06-04 09:51:48

2020-06-01 22:09:48

緩存緩存同步緩存誤用

2021-12-14 07:15:57

MySQLRedis數(shù)據(jù)

2022-09-15 10:37:46

MySQLRedis數(shù)據(jù)一致性

2023-05-26 07:34:50

RedisMySQL緩存

2022-02-17 21:04:27

數(shù)據(jù)庫MysqlRedis

2019-08-30 12:46:10

并發(fā)扣款查詢SQL

2025-03-27 08:20:54

2017-07-25 14:38:56

數(shù)據(jù)庫一致性非鎖定讀一致性鎖定讀

2020-11-24 09:03:41

一致性MySQLMVCC

2022-10-19 12:22:53

并發(fā)扣款一致性

2017-06-27 09:40:28

MYSQL數(shù)據(jù)備份

2021-03-04 06:49:53

RocketMQ事務

2024-12-26 15:01:29

2023-09-07 08:11:24

Redis管道機制

2022-12-14 08:23:30

2021-05-19 21:50:46

Hash算法測試

2022-11-10 07:49:09

hash算法代碼
點贊
收藏

51CTO技術棧公眾號

亚洲精品国产拍免费91在线| 亚洲免费成人av| 国产成人精品在线观看| 青青青视频在线播放| 亚洲视频自拍| 亚洲h精品动漫在线观看| 麻豆av福利av久久av| 瑟瑟视频在线免费观看| 欧美成人一品| 亚洲女人初尝黑人巨大| 免费成年人高清视频| av老司机在线观看| 国产精品私人影院| 国产精品视频在线免费观看 | 国产精品丝袜一区| 国产厕所精品在线观看| 国产精品一色哟哟| 日本私人网站在线观看| 国产中文字幕一区| 国产福利精品在线| 日韩av在线播放观看| 色偷偷综合网| 国产视频精品自拍| 中文字幕一区二区三区人妻在线视频| 色视频免费在线观看| 麻豆freexxxx性91精品| 18久久久久久| 久久久久久国产精品视频| 国产欧美日韩免费观看| 亚洲国产精品va在线| 亚洲欧美一区二区三区不卡| 免费亚洲电影| 偷拍一区二区三区| 国产专区在线视频| 麻豆91在线| 亚洲国产电影在线观看| 久久免费99精品久久久久久| 亚洲国产综合网| 欧美日韩亚洲国产精品| 中文字幕欧美日韩va免费视频| 免费国产黄色网址| 69成人在线| 136国产福利精品导航| 欧洲精品在线一区| 青青草视频在线观看| caoporm超碰国产精品| 91精品婷婷国产综合久久蝌蚪| 精品国产www| 日韩高清一级片| 欧美最猛性xxxxx(亚洲精品)| 久久精品视频国产| 伊人影院久久| 久久久综合免费视频| 久久久久无码国产精品| 欧美喷水视频| 欧美高跟鞋交xxxxxhd| 超碰在线国产97| 羞羞答答成人影院www| 日韩专区在线播放| 老熟妻内射精品一区| 亚洲草久电影| 欧美国产精品va在线观看| 青青草国产在线观看| 欧美激情一级片一区二区| 色综合色综合久久综合频道88| 草视频在线观看| 狠狠噜噜久久| 亚州欧美日韩中文视频| 国产精品久久久免费视频| 国产精品女主播一区二区三区| 91a在线视频| 国产乱国产乱老熟| 日韩精品三区四区| 成人免费黄色网| www.黄色av| 白白色亚洲国产精品| 乱一区二区三区在线播放| 九色视频网站在线观看| 国产精品福利一区| 久久精品无码中文字幕| 男人av在线播放| 在线观看免费视频综合| 中文字幕第一页在线视频| 一区二区三区视频免费视频观看网站 | 一区二区三区欧美久久| 91网站在线观看免费| 国产精品原创| 成人黄色在线看| 精品视频一区二区三区四区| 国产美女性感在线观看懂色av| 国产精品久久久久久亚洲毛片| 黄色录像特级片| 极品白浆推特女神在线观看| 国产精品欧美综合在线| 免费人成在线观看视频播放| 欧美动物xxx| 91精品国产91久久综合桃花| 疯狂揉花蒂控制高潮h| 成人影院天天5g天天爽无毒影院| 久久av红桃一区二区小说| 国产一区二区三区四区五区六区 | 色噜噜狠狠狠综合曰曰曰| 农村妇女精品一区二区| 亚久久调教视频| 久久久久久亚洲精品| 久久久久在线视频| 国产福利一区二区三区视频在线| 美国av一区二区三区| 岛国中文字幕在线| 91国在线观看| 美女久久久久久久久| 欧美残忍xxxx极端| 8x海外华人永久免费日韩内陆视频 | 欧美黄色激情| 一本一道综合狠狠老| av在线天堂网| 97精品视频| 国产成人亚洲综合91| 少妇人妻一区二区| 风流少妇一区二区| 涩涩涩999| 亚洲美女尤物影院| 欧美xxxx在线观看| √天堂中文官网8在线| 视频在线观看国产精品| 国产成人涩涩涩视频在线观看 | jiyouzz国产精品久久| 久久av秘一区二区三区| 毛片av在线| 日本精品一级二级| 极品粉嫩小仙女高潮喷水久久| 女人色偷偷aa久久天堂| 国产在线观看不卡| avtt亚洲| 国产精品女主播av| 国语对白做受xxxxx在线中国| www.国产精品一区| 色综合久久久888| 国产手机av在线| 国产精品成人免费在线| 69久久久久久| 日本女优一区| 国产精品一区二区性色av| 韩国精品视频| 在线观看网站黄不卡| 欧美激情aaa| 首页亚洲欧美制服丝腿| 日韩一区二区三区资源| 向日葵视频成人app网址| 亚洲精品一区二区三区婷婷月| 日本在线播放视频| 337p粉嫩大胆噜噜噜噜噜91av| jizzjizzxxxx| a屁视频一区二区三区四区| 欧美日韩国产免费| 国产成人av免费观看| 亚洲草久电影| 电影午夜精品一区二区三区| 美洲精品一卡2卡三卡4卡四卡| 日韩写真欧美这视频| 粉嫩av懂色av蜜臀av分享| 精品国产一区二区三区久久久蜜臀| 亚洲18私人小影院| 神马电影在线观看| 色欧美88888久久久久久影院| 亚洲а∨天堂久久精品2021| 蜜臀精品一区二区三区在线观看 | 第一中文字幕在线| 亚洲精品美女免费| 波多野结衣视频网站| 国产拍欧美日韩视频二区| 尤蜜粉嫩av国产一区二区三区| 日韩欧美三级| 成人片在线免费看| 伊人久久av| 色婷婷av一区二区三区在线观看| 国产精品无码白浆高潮| 亚洲福利视频一区二区| 在线免费观看麻豆| 精品中文字幕一区二区小辣椒| 大地资源网在线观看免费官网| 另类春色校园亚洲| 国产精品美女免费| 性爱视频在线播放| 亚洲女人初尝黑人巨大| 国产三级漂亮女教师| 激情懂色av一区av二区av| 亚洲精品国产精品国自| 国产成人免费视频网站 | 国产精品一区不卡| 成人免费毛片网| 久久久久久久久国产一区| 精品午夜一区二区三区| 国产成人精品一区二区三区视频 | 日韩精品久久久久久福利| 中文字幕a级片| 偷拍亚洲欧洲综合| 黄色片网站在线播放| proumb性欧美在线观看| 欧美日韩一区二区三区69堂| 激情综合电影网| 色女人综合av| 久久aimee| 91亚洲精品久久久| 欧美www.| 97精品免费视频| v片在线观看| 夜夜嗨av一区二区三区免费区| xxxx国产精品| 欧美另类z0zxhd电影| 亚洲欧美日韩第一页| 成人国产电影网| 91福利免费观看| 日av在线不卡| 国产又黄又大又粗视频| 欧美午夜a级限制福利片| 视频一区二区在线| 五月综合久久| 国产免费一区二区三区| 国产美女精品视频免费播放软件| 国产ts一区二区| 福利影院在线看| 欧美激情啊啊啊| 99视频免费在线观看| 中文字幕av一区中文字幕天堂 | 国产美女www爽爽爽| 亚洲大片在线观看| 欧美成人一二三区| 自拍偷拍国产精品| 国产精品久久久久久成人| 2024国产精品| 91av在线免费| 99久久婷婷国产综合精品| 色欲欲www成人网站| 国产在线精品一区二区| 亚洲国产成人va在线观看麻豆| 久久久亚洲一区| 苍井空浴缸大战猛男120分钟| 国产美女诱惑一区二区| 欧美 日本 亚洲| 一区二区久久| 国产二区视频在线播放| 99在线精品视频在线观看| 成人在线国产视频| 亚洲国产导航| 18禁免费观看网站| 99精品热6080yy久久| 妞干网在线观看视频| 激情国产一区| 国产日产欧美视频| 久久一区中文字幕| 国产高潮免费视频| 久久精品国产成人一区二区三区 | 色哟哟亚洲精品一区二区| 成人亚洲性情网站www在线观看| 亚洲天堂成人在线视频| 国产黄色免费在线观看| 在线播放国产精品| 97电影在线看视频| 久久精品成人欧美大片古装| 成人ww免费完整版在线观看| 色综合久久88| 激情黄产视频在线免费观看| 热99精品里视频精品| 日韩毛片免费观看| 成人黄色av网站| 亚洲精品v亚洲精品v日韩精品| 99蜜桃在线观看免费视频网站| 国产一级成人av| 蜜桃传媒视频麻豆第一区免费观看 | 国产高清中文字幕在线| 日韩av电影在线免费播放| 成人免费av电影| 亚洲aaa激情| 欧美日韩一区二区三区四区不卡| 美女视频久久| 国产亚洲一卡2卡3卡4卡新区| 色视频一区二区三区| 欧美在线精品一区| 人妻有码中文字幕| 精品一区二区三区香蕉蜜桃| 午夜性福利视频| 久久久久久久久久久久久夜| 成年人视频软件| 亚洲五月六月丁香激情| 天天操天天干天天摸| 欧美一区二区三区影视| 亚洲欧美综合一区二区| 日韩在线www| 极品在线视频| 91久久久国产精品| 自拍自偷一区二区三区| 国产树林野战在线播放| 久久久久国产精品一区二区| 亚洲精品乱码久久久久久动漫| 99久久综合精品| 69夜色精品国产69乱| 五月天欧美精品| 一区二区三区黄色片| 日韩激情片免费| av片在线观看| 国产精品九九九| 国产日韩三级| 中文字幕一区二区三区乱码 | 97免费公开视频| 国产午夜精品一区二区| 国产真实的和子乱拍在线观看| 欧美视频三区在线播放| 狠狠躁夜夜躁av无码中文幕| 色综久久综合桃花网| 九九色在线视频| 91精品久久久久久久久久入口 | 日韩高清a**址| 制服丝袜中文字幕在线| 国产精品久久久久久久久| 国产人妖ts一区二区| 日韩欧美视频免费在线观看| 日一区二区三区| 中文字幕 亚洲一区| 一区二区三区蜜桃网| 91精品国产乱码久久久| 亚洲天堂2020| 中文字幕在线视频网站| 国产视频在线观看一区| 欧美三区视频| 日本美女久久久| 亚洲人成亚洲人成在线观看图片 | 欧美gay视频| 久久99精品久久久久久久青青日本| 欧美暴力喷水在线| 一级黄色大片儿| 亚洲图片你懂的| 一级欧美一级日韩| 中文字幕在线观看日韩| 一区二区视频免费完整版观看| 久久久免费看| 一级黄色录像免费看| 久久99久国产精品黄毛片色诱| 中文字幕伦理片| 在线观看网站黄不卡| www.国产精品.com| 国产精品激情av电影在线观看| 国产精品免费不| 婷婷丁香激情网| 国产精品美女久久福利网站| 天天干天天操天天操| 亚洲天堂av在线免费| gogo亚洲高清大胆美女人体| 欧美日韩亚洲一区二区三区在线观看| 宅男噜噜噜66国产日韩在线观看| 黄色免费看视频| 欧美日韩国产一区二区三区| 香蕉视频黄色片| 国产不卡在线观看| 欧美午夜精彩| 污视频网址在线观看| ㊣最新国产の精品bt伙计久久| 国产精品一区二区免费视频| 另类少妇人与禽zozz0性伦| 日韩免费成人| 欧美又粗又长又爽做受| 92精品国产成人观看免费| 一级黄色在线视频| 中文字幕免费精品一区高清| 国产精品一区二区三区www| 久久免费一级片| 成人avav影音| 国产又粗又猛又爽又| www.久久久久久.com| 91蜜桃臀久久一区二区| 乱妇乱女熟妇熟女网站| 国产日本亚洲高清| 国产一区二区在线播放视频| 欧美日本精品在线| 妖精视频一区二区三区免费观看| 三年中国国语在线播放免费| 亚洲日本va在线观看| 免费观看国产精品| 国产精品成人观看视频国产奇米| 国产精品不卡| 少妇一级淫免费观看| 欧美性做爰猛烈叫床潮| 在线看一级片| 日本不卡一区二区三区视频| 精品一区二区三区久久久| 久久午夜无码鲁丝片午夜精品| 精品亚洲男同gayvideo网站| 欧美极品在线| 国产精品裸体瑜伽视频| 国产精品网站在线观看| 成人毛片在线免费观看| 国产福利成人在线| 国产精品a久久久久| 欧美18—19性高清hd4k| 日韩欧美一区在线| 日本黄色一区| 亚洲色欲久久久综合网东京热| 国产日韩av一区二区| 丰满熟女一区二区三区| 国产精品美腿一区在线看|