需求:統計出來納稅人名稱、行業、近一年業務量(辦稅服務廳、電子稅務局、自助渠道),近一年業務量top5(辦稅服務廳、電子稅務局、自助渠道)、近一年納稅金額、近一年申報數、近一年用票數。支援根據所屬稅務機關分頁查詢。看上去業務不複雜,但是資料來自多個系統,資料量很大。來來畫個示意圖展示下資料**的複雜程度:
資料涉及5個廠商,資料庫採用oracle,涉及幾十張表,其中納稅人資訊生產環境下有380多萬,更不用說其他業務表的資料量有多大了,並且還需要分組,統計,排序。此時此刻心情如下:
由於專案時間關係,想法很簡單先採用檢視,先實現再說。(其實在做的時候就有不詳的預感,感覺這種方案不行)。於是開幹,在實現的過程中我用到的
關鍵技術點有:
oracle wm_concat(column)函式實現查詢相同id欄位,內容以逗號分隔
select id, wmsys.wm_concat(欄位名)字段別名 from table group by id
oracle分組查詢取每組排序後的前n條記錄
select *
from (
select 分組的欄位名, row_number() over(partition by 分組的欄位名
order by 排序的欄位名) as rn from 表名
) where rn <= 10 得到分組後,資料的前幾條
count、sum、group by 、join、dblink等等
生產環境下驗證結果
測試環境還好,生產環境開啟檢視好久查不出來資料,臨時表空間暴增30g. 來看下現場的執行計畫
冷靜分析
接著上文,其實我們可以提前把資料加工好,插入彙總表,不用每次使用者查詢的時候去計算就好了。
技術實現關鍵點:
以上在彙總的過程中必須注意一次拉取小批量資料加工。
由於時間緊急,定時任務需要開發**,資料量大,資料批次需要處理等缺點放棄了
因為有比較多的查詢彙總,考慮到速度,最後選擇了物理檢視方案。下面簡單介紹下物理檢視。
物化檢視也是種檢視。oracle的物化檢視是包括乙個查詢結果的資料庫對像,它是遠端資料的的本地副本,或者用來生成基於資料表求和的彙總表。物化檢視儲存基於遠端表的資料,也可以稱為快照。
物化檢視可以查詢表,檢視和其它的物化檢視。
特點:
(1) 物化檢視在某種意義上說就是乙個物理表(而且不僅僅是乙個物理表),這通過其可以被user_tables查詢出來,而得到確認;
(2) 物化檢視也是一種段(segment),所以其有自己的物理儲存屬性;
(3) 物化檢視會占用資料庫磁碟空間,這點從user_segment的查詢結果,可以得到佐證;
建立語句:create materialized view mv_name as select * from table_name
建立過程一波三折
把方案一種的檢視sql改稱物理檢視,到生產環境下建立。尼瑪又出狀況了
乙個sql執行了8個小時,居然失敗了,怎麼辦?
冷靜分析
最後在3個小時左右,成功建立了5個物理檢視。
又出狀況、一波四折
測試庫是11.2.0.1.0的,wmsys.wm_concat( )函式返回的是varchar型別,而正式庫是11.2.0.4.0的,返回的是clob型別的。為了相容,所以解決辦法是:to_char(wmsys.wm_concat(param )); 只要用to_char()函式轉換一下就可以了。。。
好吧,重新來過,最後在3個小時左右,成功建立了5個物理檢視。
據說pb級別的資料,才上hadoop。為了賣弄一下我也懂點大資料技術(畢竟也讀過幾本書),簡單的列一下實現思路:
0.搭建hadoop平台
1.sqoop匯入資料到hive
2.利用hive進行分析
3.sqoop把分析結果匯入oracle彙總表
4.持續運維
為什麼不採用的原因:
1.資料量遠遠不夠
2.客戶是否給你那麼多機器來組集群。
3.公司缺乏相關技術的開發和運維,成本代價高。
大資料分析引擎之presto簡介
簡介 presto是乙個大資料分析引擎,不屬於hadoop體系,他是基於記憶體的。他的集群模式是主從式的。他可以與任何的大資料儲存引擎做整合,整合的時候使用它的connectors整合 從這裡我們可以他可以和kafka mysql 記憶體 hive來做整合 安裝 1.解壓 tar zxvf pres...
Python大資料分析之網路爬蟲
d匹配乙個數字,d匹配乙個非數字,w匹配乙個字母或數字,可以匹配任意乙個字元,表示任意字元,表示至少乙個字元 表示0個或1個字元,表示n個字元,用表示n m個字元。1 d 表示匹配3個數字 2 s 表示至少匹配乙個空格 s 表示匹配任何非空白字元 s s 可以包括換行符在內的任意字元 3 d表示匹配...
大資料分析平台Hadoop與Spark之爭
zd至頂網軟體頻道訊息 原創文章 文 鄧曉蕾 有人把大資料稱為資訊資產 有人稱為金礦 甚至社會財富。而大資料,即,無法在可承受的時間範圍內用常規軟體工具進行捕捉 管理和處理的資料集合。gartne認為 大資料 是需要新處理模式才能具有更強的決策力 洞察發現力和流程優化能力的海量 高增長率和多樣化的資...