傾斜角度如何流攝入成三角洲湖嗎
得到一個O ' reilly的新電子書的早期預覽一步一步的指導你需要開始使用三角洲湖。
迭戈鏈接工程副總裁傾斜點
傾斜點是新一代的遊戲夥伴,提供頂級開發工作室專家資源、服務和運營支持優化高質量生活成功的遊戲。通過用戶收購基金和世界級的技術平台,傾點基金和運行績效營銷管理和操作比賽,幫助開發者實現盈利。Beplay体育安卓版本
傾斜一點,我們每天/每小時運行批處理作業遊戲分析報告。我們想讓我們的報告接近實時和確保我們得到的見解在5到10分鍾。我們也想讓我們在遊戲中根據實時live-ops決定球員行為給一個包,並提供實時數據係統,提供最新的報警LiveOPs變化實際上可能有不可預見的不利影響,甚至警告在遊戲運營服務中斷。此外,我們必須分開存儲加密的個人身份信息(PII)數據GDPR用途。
數據流和相關的挑戰如何
我們有一個專有的SDK,開發者集成從遊戲服務器發送數據到一個攝取服務器托管在AWS。PII這個服務會刪除所有數據,然後將原始數據發送給一個Amazon消防帶端點。消防帶然後轉儲JSON格式的數據不斷S3。
清理原始數據並使其可用快速分析,我們考慮將連續數據從消防帶消息總線(例如卡夫卡,動作),然後使用Apache火花的結構化流繼續處理數據和寫三角洲湖表。而建築的聲音適合低延遲的要求處理數據在幾秒鍾內,我們沒有這樣的低延遲需求我們攝入管道。我們想讓數據用於分析在幾分鍾內,不秒。因此我們決定簡化我們的架構通過消除一個消息總線,而使用S3作為我們的一個連續源結構化流工作。但關鍵挑戰使用S3作為連續源是識別文件最近改變。
列出所有文件每隔幾分鍾就有兩個主要問題:
- 更高的延遲:列出所有文件在目錄中有大量的文件具有較高的開銷和增加處理時間。
- 高成本:清單很多文件每隔幾分鍾就可以快速添加到S3成本。
利用結構化流與Blob存儲源和三角洲湖表下沉
不斷從像S3雲blob存儲流數據,我們使用磚的S3-SQS來源。S3-SQS源提供了一種簡便的方法讓我們逐步從S3流數據,而不需要編寫任何狀態管理代碼文件最近被處理。這就是我們的消化係統管道看起來:
- 配置Amazon S3事件通知發送新的文件到達信息通過SNS SQS。
- 我們使用S3-SQS源讀取新的數據到達S3。S3-SQS源讀取新文件的名稱從SQS抵達S3,並使用這些信息來閱讀在S3中實際的文件內容。下麵一個例子代碼:
火花。readStream \。格式(“s3-sqs”)\.option (“fileFormat”,“json”)\.option (“queueUrl”,…)\. schema \ (…).load ()
- 我們的結構化流工作然後清理和轉換數據。基於遊戲數據,引發流的流媒體工作使用foreachBatch API和寫30個不同的三角洲湖表。
- 流產生大量小文件的工作。這影響到下遊消費者的性能。因此,優化運行的日常工作表中緊湊的小文件並將它們存儲數據的正確的文件大小,這樣消費者有良好的性能,同時從三角洲湖表讀取數據。我們還每周運行優化為第二輪壓實工作。
上麵的三角洲湖攝入架構有助於以下方法:
- 增量加載:S3-SQS源逐步加載S3的新文件。這有助於快速處理新的文件沒有太多開銷清單文件。
- 沒有明確的文件狀態管理:沒有明確的文件狀態管理需要尋找最近的文件。
- 較低的操作負擔:因為我們使用S3消防帶之間的檢查點和結構化流工作,停止流和處理文檔數據的操作負擔相對較低。
- 可靠的攝入:三角洲湖用途樂觀並發控製提供ACID事務擔保。這有助於可靠數據攝入。
- 文件壓縮:流攝入的一個主要問題是表結束了大量小文件的讀性能會產生影響。在三角洲湖之前,我們必須設置一個不同的表寫壓縮數據。三角洲湖,由於ACID事務,我們可以壓縮文件和重寫數據安全地回到相同的表。
- 快照隔離:三角洲湖的快照隔離允許我們讓攝入表下遊消費者而被附加的數據流在壓實工作和修改。
- 回滾:惡劣寫道,中三角洲湖的時間旅行幫助我們回滾到之前版本的表。
結論
在這個博客中,我們走過我們的用例和我們如何做流攝取使用磚”S3-SQS源湖成三角洲表有效沒有太多操作開銷使質量好使用可用的數據分析。
訪問在線三角洲湖中心要了解更多,請下載最新的代碼,並加入三角洲湖社區。