大資料分析之納稅人畫像 實現和優化思路

2022-07-25 00:03:16 字數 2797 閱讀 5732

需求:統計出來納稅人名稱、行業、近一年業務量(辦稅服務廳、電子稅務局、自助渠道),近一年業務量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認為 大資料 是需要新處理模式才能具有更強的決策力 洞察發現力和流程優化能力的海量 高增長率和多樣化的資...