-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

事件流實戰

( 簡體 字)
作者:[美] 亞歷山大·德安(Alexander Dean), 瓦倫丁·克雷塔(Valentin Crettaz)著 金中浩 譯類別:1. -> 程式設計 -> 綜合
譯者:
出版社:清華大學出版社事件流實戰 3dWoo書號: 53606
詢問書籍請說出此書號!

缺書
NT售價: 490

出版日:8/1/2020
頁數:284
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302559412
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

序 言



一條由現實世界或數字事件所組成的、不間斷的流,正在不經意間影響著公司的運營。你可能認為你每天的工作無非是與各種人與事打交道,或者是使用各種不同的軟、硬件完成各項事務。
然而計算機卻無法如此思考問題。計算機將公司看成一條持續的流,會不停地產生或響應各種事件。我們相信用這種持續事件流的方式重塑你的業務會帶來巨大收益。這是一個年輕但至關重要的領域,卻鮮有人討論。
《事件流實戰》是一本全程關注事件的書籍,主要討論如何定義事件,如何向Apache Kafka、Amazon Kinesis這類統一日志系統發送事件,以及如何編寫一個處理流數據的應用程序。《事件流實戰》涵蓋了以下技術的基礎知識:Kafka、Kinesis、Samza和Spark Streaming等流式處理框架,以及與事件處理契合的數據庫(如Redshift)。
《事件流實戰》會給你充分的信心,無論在何處發現事件流,你都能識別出模型并處理它們。當你閱讀完《事件流實戰》后,一定會發現身邊到處都是事件流!更重要的是,希望《事件流實戰》能像一塊跳板,讓作為軟件工程師的我們,就如何處理事件展開更廣泛的討論。



前 言



在充斥著數據的環境中編寫一個真實可用的應用程序猶如在火焰中參加彩蛋射擊游戲。每一步都需要你組合事件流、批量歸檔,用戶與系統都需要實時地響應。統一日志處理是一種用來應對批量與準實時流數據處理、事件日志與聚合、統一事件流數據處理的綜合架構。通過從多個數據源高效地創建一個單獨的統一事件日志,統一日志處理能讓大規模的數據驅動應用變得更易于設計、部署與維護。
《事件流實戰》讀者對象
《事件流實戰》適合有Java使用經驗的程序員。Scala與Python的使用經驗可以幫助你更好地理解書中的一些概念,但并不是必需的。
《事件流實戰》路線圖
《事件流實戰》分為三個部分,還包含一個附錄。
第Ⅰ部分定義了什么是事件流與統一日志,提供了一個寬泛的視角。
? 第1章通過展現事件、持續事件流的定義與配套示例,為后續內容提供了堅實基礎。簡單介紹了如何使用統一日志實現統一事件流。
? 第2章深入探討統一日志的各個關鍵屬性,并引導你配置Kafka,使用Kafka發送、讀取事件。
? 第3章介紹事件流處理,以及如何編寫處理單個事件的程序,對事件進行校驗與擴展。
? 第4章聚焦在如何使用Amazon Kinesis,一款完全托管的統一日志服務,用來處理事件流。
? 第5章關注有狀態的流式處理。使用流行的流式處理框架在有狀態的流中處理多個事件。
第Ⅱ部分深入研究被發送到統一日志的事件的特質。
? 第6章介紹事件模式與相關的模式技術,關注如何使用Apache Avro實現自描述事件。
? 第7章涵蓋事件歸檔的各個方面,深入闡述事件歸檔的重要性以及歸檔過程中的最佳實踐。
? 第8章介紹UNIX的程序異常、Java異常與異常日志是如何處理的,以及如何設計單個流處理程序與跨越多個流處理程序的異常處理機制。
? 第9章介紹命令在統一日志中扮演的角色,以及如何使用Apache Avro定義模式與處理命令。
第Ⅲ部分首先介紹如何使用統一日志進行分析,接著引入兩種主要的基于統一日志的分析方法,之后使用不同的數據庫與流處理技術對事件流展開分析。
? 第10章介紹如何使用Amazon Redshift實現讀取時分析與寫入時分析,以及存儲、擴展事件的相關技術。Amazon Redshift是一個支持水平擴展、面向列存儲的數據庫。
? 第11章提供一個對事件流進行寫入時分析的簡單算法,你可以使用AWS Lambda函數對其進行部署與測試。
《事件流實戰》代碼
《事件流實戰》包含大量示例代碼,有些是以代碼清單的形式展現,而有些是普通文本的形式。代碼清單以等寬字體顯示,能很容易地與正文區分開。有時代碼中有些部分會用粗體標出,意味著這部分代碼之前曾出現過,但發生了一些變化,例如在已有的代碼中增添了新特性。
大部分情況下,已經對原始代碼進行了格式化;我們增加了換行符與縮進符,最大限度地利用書頁的空間。很罕見的情況下,空間不足,無法顯示一行完整的代碼,我們會使用連行符連接兩行代碼。此外如果代碼清單中的注釋已經在正文中有相關描述,則會從代碼中移除。代碼注釋往往伴隨著需要深入討論的重要概念。
可掃描封底二維碼下載源代碼。
作者簡介
Alexander Dean作為共同創始人與技術負責人研發了Snowplow Analytics,這是一款開源的事件處理與分析平臺。
Valentin Crettaz作為一名獨立IT咨詢顧問在過去25年中參與過許多富有挑戰性的全球項目。她的專業能力涵蓋了從軟件工程與架構到數據科學與商業智能。她的日常工作是在IT解決方案中使用當前最先進的Web、數據以及流技術,促使IT與業務部門的合作更融洽。
關于封面插畫
《事件流實戰》封面上的圖片描述的是1667年一名韃靼女士的著裝習俗。這幅插畫來自1757—1772年在倫敦出版,由Thomas Jefferys編繪的A Collection of the Dresses of Different Nations, Ancient and Modern(共4卷)。這些插畫都是手工著色的銅版雕刻品,用阿拉伯膠加深了顏色。
Thomas Jefferys(1719—1771)被稱為“喬治三世的御用地理學家”。他是一名來自英格蘭的地圖繪制師,是當時頂尖的地圖供應商。他為當時的政府以及其他官方機構雕刻和印刷地圖,制作了大量跨度廣泛的商業地圖和地圖冊,尤其是北美地區的。作為一名地圖制作者,他激起了人們對各地服飾與習俗的興趣,這些信息在系列插畫中得到了出色的展示。在18世紀末期,對于遠方的向往與休閑旅行仍然是新興事物,這類向旅行者介紹異國他鄉風俗服飾的畫冊就變得非常受歡迎。
Jefferys畫冊中各式各樣的插畫為我們生動展示了200年前各個國家的獨特之處與鮮明個性。著裝風格在不斷變化,來自不同區域與國家的多樣化風格已經逐漸消失。現在僅依靠衣著已經很難將來自不同大陸的居民區分開來。如果樂觀地看待這件事,或許我們已經用文化與視覺上的多樣性換取了個人生活的多樣性——當然是更為豐富和有趣的文化和藝術生活。
在一個很難將計算機書籍區分開的時代,Manning以兩個世紀以前豐富多樣的地區生活為基礎,通過以Jefferys的圖片作為書籍封面,來彰顯計算機行業的首創精神。

內容簡介:

Linkedln、Netflix等知名應用都通過實時響應用戶和系統事件,來提高靈活度和響應速度。在大規模系統中,需要能高效地監控、管理和處理大量的事件流。
Kafka工具以及諸如統一日志處理的創新模式可幫助我們為基于事件的系統創建連貫的數據處理架構。
《事件流實戰》講解如何使用統一日志模式,來聚合、存儲和處理事件流。在這本實用指南中,你將看到Lambda架構、流聚合和事件重放處理等重要的系統設計,還將看到擴展、彈性和高級流模式!讀完本書,你將能設計出易于構建、部署和維護的由數據驅動的大型應用。
主要內容
校驗與監控事件流
事件分析
事件建模
Apache Kafka與Amazon Kinesis的使用示例
目錄:

第I部分事件流與統一日志
第1章事件流3
1.1術語定義4
1.1.1事件4
1.1.2持續事件流5
1.2探尋我們熟悉的事件流6
1.2.1應用級日志6
1.2.2站點分析8
1.2.3發布/訂閱消息9
1.3統一持續事件流11
1.3.1古典時代12
1.3.2混合時代14
1.3.3統一時代15
1.4統一日志的應用場景17
1.4.1用戶反饋環路17
1.4.2整體系統監控18
1.4.3應用系統版本在線升級19
1.5本章小結20
第2章統一日志21
2.1深入統一日志22
2.1.1統一22
2.1.2只可追加23
2.1.3分布式23
2.1.4有序性24
2.2引入我們的應用25
2.2.1識別關鍵事件26
2.2.2電子商務中的統一日志27
2.2.3首個事件建模28
2.3配置統一日志30
2.3.1下載并安裝ApacheKafka30
2.3.2創建流31
2.3.3發送和接收事件31
2.4本章小結33
第3章使用ApacheKafka進行
事件流處理35
3.1事件流處理入門36
3.1.1為什么要處理事件流?36
3.1.2單事件處理38
3.1.3多事件處理38
3.2設計第一個流處理程序39
3.2.1將Kafka作為黏合劑39
3.2.2明確需求40
3.3編寫一個簡單的Kafkaworker42
3.3.1配置開發環境42
3.3.2應用配置43
3.3.3從Kafka讀取事件45
3.3.4向Kafka寫入事件46
3.3.5整合讀取與寫入47
3.3.6測試48
3.4編寫單事件處理器49
3.4.1編寫事件處理器50
3.4.2更新main方法52
3.4.3再次測試53
3.5本章小結54
第4章使用AmazonKinesis處理流事件55
4.1向Kinesis寫入事件56
4.1.1系統監控與統一日志56
4.1.2與Kafka的術語差異58
4.1.3配置事件流58
4.1.4事件建模60
4.1.5編寫代理程序60
4.2從Kinesis讀取事件65
4.2.1Kinesis的框架與SDK66
4.2.2使用AWSCLI讀取事件67
4.2.3使用boto監控Kinesisstream72
4.3本章小結79
第5章有狀態的流式處理81
5.1偵測“購物者棄置購物車”事件82
5.1.1管理者的需求82
5.1.2算法定義82
5.1.3派生事件流83
5.2新事件的模型84
5.2.1購物者將商品放入購物車84
5.2.2購物者支付訂單85
5.2.3購物者棄置購物車85
5.3有狀態的流式處理86
5.3.1狀態管理86
5.3.2流窗口88
5.3.3流式處理框架的功能88
5.3.4流式處理框架89
5.3.5為尼羅選擇一個流式處理框架92
5.4偵測被棄置的購物車92
5.4.1設計Samzajob92
5.4.2項目準備94
5.4.3配置Samzajob94
5.4.4使用Java開發jobtask96
5.5運行Samzajob101
5.5.1YARN101
5.5.2提交job102
5.5.3測試job102
5.5.4改進job104
5.6本章小結104
第II部分針對流的數據工程
第6章模式107
6.1模式介紹108
6.1.1Plum公司108
6.1.2將事件模式作為
契約109
6.1.3模式技術的功能111
6.1.4不同的模式技術112
6.1.5為Plum公司選擇一種
模式技術114
6.2Avro中的事件模型114
6.2.1準備開發環境115
6.2.2編寫質檢事件的模式116
6.2.3Avro與Java的互相轉換117
6.2.4測試120
6.3事件與模式的關聯121
6.3.1初步的探索121
6.3.2Plum公司的自描述事件124
6.3.3Plum公司的模式注冊125
6.4本章小結127
第7章事件歸檔129
7.1歸檔者宣言130
7.1.1彈性131
7.1.2重復處理132
7.1.3精準133
7.2歸檔的設計135
7.2.1什么應被歸檔135
7.2.2何處進行歸檔136
7.2.3如何進行歸檔136
7.3使用Secor歸檔Kafka的事件137
7.3.1配置Kafka138
7.3.2創建事件歸檔140
7.3.3配置Secor141
7.4批處理事件143
7.4.1批處理入門143
7.4.2設計批處理任務145
7.4.3使用ApacheSpark編寫任務146
7.4.4使用ElasticMapReduce運行任務151
7.5本章小結156
第8章軌道式流處理157
8.1異常流程158
8.1.1UNIX編程中的異常
處理158
8.1.2Java中的異常處理160
8.1.3異常與日志163
8.2異常與統一日志164
8.2.1針對異常的設計164
8.2.2建立異常事件模型166
8.2.3組合多個正常處理流程168
8.3使用Scalaz組合異常168
8.3.1異常的處理計劃169
8.3.2配置Scala項目170
8.3.3從Java到Scala171
8.3.4使用Scalaz更好地處理異常174
8.3.5組合異常175
8.4實現軌道式編程179
8.4.1軌道式處理180
8.4.2構建軌道182
8.5本章小結189
第9章命令191
9.1命令與統一日志192
9.1.1事件與命令192
9.1.2隱式命令與顯式命令193
9.1.3在統一日志中使用命令194
9.2決策195
9.2.1Plum公司中的命令195
9.2.2對命令進行建模197
9.2.3編寫警報的模式198
9.2.4定義警報的模式200
9.3消費命令201
9.3.1合適的工具201
9.3.2讀取命令202
9.3.3轉換命令203
9.3.4連接各個程序205
9.3.5測試206
9.4執行命令207
9.4.1使用MailGun207
9.4.2完成executor208
9.4.3最后的測試211
9.5擴展命令212
9.5.1單條流還是多條?212
9.5.2處理命令執行的異常213
9.5.3命令層級214
9.6本章小結215
第III部分事件分析
第10章讀取時分析219
10.1讀取時分析與寫入時分析220
10.1.1讀取時分析220
10.1.2寫入時分析221
10.1.3選擇一種解決方案222
10.2OOPS的事件流223
10.2.1貨車事件與實體223
10.2.2貨車司機事件與實體224
10.2.3OOPS的事件模型224
10.2.4OOPS的事件歸檔226
10.3使用AmazonRedshift227
10.3.1Redshift介紹227
10.3.2配置Redshift229
10.3.3設計事件數據倉庫232
10.3.4創建事件寬表235
10.4ETL和ELT237
10.4.1加載事件237
10.4.2維度擴展240
10.4.3數據易變性244
10.5分析244
10.5.1分析1:誰更換機油的次數最多?245
10.5.2分析2:誰是最不可靠的客戶?245
10.6本章小結247
第11章寫入時分析249
11.1回到OOPS250
11.1.1配置Kinesis250
11.1.2需求收集251
11.1.3寫入時分析算法252
11.2構建Lambda函數256
11.2.1配置DynamoDB256
11.2.2AWSLambda257
11.2.3配置Lambda與事件建模258
11.2.4重溫寫入時分析算法261
11.2.5條件寫入DynamoDB265
11.2.6最后的Lambda代碼268
11.3運行Lambda函數269
11.3.1部署Lambda函數270
11.3.2測試Lambda函數272
11.4本章小結274
附錄AWS入門277
A.1設置AWS賬戶277
A.2創建用戶278
A.3設置AWSCLI283
序: