最近參與某新自定義查詢系統開發,系統是鋒哥設計的,核心**也是鋒哥寫的。作為乙個搬磚者自下而上的分析學習一下大神的系統設計。文中的談到架構設計內容是根據對**理解重新整理出來的,不代表系統的實際架構和實現。同時由於業務和技術的複雜性及其他原因,不對實現細節作說明。
在該系統之前已經有兩個自定義查詢系統,乙個為競爭對手的cs系統,乙個為我司開發的bs系統。兩個系統均用了ms sqlserver為資料儲存和查詢引擎,實現的業務功能很多,同時也有比較嚴重的效能問題。新系統的主要使命是用新技術提高自定義查詢效能,改善可用性,同時對飆競爭對手的系統。因此也有很多設計上不合理但必須的功能。
系統中用到了一些新技術,這些新技術或者非主流的技術是該系統實現的基石,這裡做乙個簡單介紹。
系統的主要目的是將若干業務系統的資料資訊,清洗轉換匯聚到es中,利用es在查詢方面的效能優勢,來實現自定義查詢。系統邏輯上大概可以分為以下幾個模組:
通過以下幾個主要的步驟實現資料從業務庫到es中的同步:
系統通過以下幾個步驟實現資料的裝載和轉換:
系統主要以流水線得思想將乙個複雜的查詢拼裝,分配給各元件完成,並統一組裝,主要有巢狀查詢流水線、父子查詢流水線、子父查詢流水線等
首先,優點:
其次,缺點:
系統設計分析
系統設計出來的好壞很大程度取決於使用者需求是否合理,當然還有就是完成專案的技術上是否有難度。在公司我剛做完乙個專案,當然是乙個非常小的專案。雖然是乙個小專案,但它五臟俱全。還有就是寫的系統是為公司自己用。就算是這麼小的專案也經過了兩次大的需求的變動。由於需求分析不由我本人來做,我的角色是專案開發者。...
自定義查詢
自定義查詢是一種比較常用的功能。功能劃分為兩部分。一是系統管理員根據需求訂製出查詢需要使用到的一些有關聯的表的集合,作為查詢的基礎模型 二是使用者可以在這個模型的基礎上定義自己的查詢條件,包括定義查詢的輸出顯示項,來實現靈活的查詢功能。用例圖如下所示 系統的功能結構圖如下所示,包括兩大功能,分別是模...
hive 查詢自定義及系統函式
在hive中查詢自定義及系統的函式使用方法,一般情況下使用下面三個命令即可 1 檢視所有的函式 show functions show functions like 函式名 示例 show functions like time 模糊查詢 3.粗粒度檢視函式的使用方法 desc function 函...