《潘金蓮改變了歷史嗎-PostgreSQL輿情事件分析應用》要點:
本文介紹了潘金蓮改變了歷史嗎-PostgreSQL輿情事件分析應用,希望對您有用。如果有疑問,可以聯系我們。
更多深度文章,請關注云計算頻道:https://yq.aliyun.com/cloud
標簽
PostgreSQL , 獨立變亂分析 , 輿情分析 , 輿情變亂 , 相關變亂 , 行為軌跡 , 獨立變亂的流水相關性分析 , PostgreSQL服務端編程實踐
配景
潘金蓮改變了歷史嗎?
網上的段子
潘金蓮撐開窗戶,撐窗戶滴棍子掉下去了,于是西門慶看到了,于是他們相遇了.如果潘金蓮同學當時沒有開窗,那么她就不會遇到西門慶.
類似蝴蝶效應,歷史是很有趣的事情.
實際上在我們的生活中也有這樣的現象或者需求,好比某些業務系統,會記錄事件,流水賬那樣.
然后業務可能想知道某類事件發生后,接下來發生了什么,好比說房價調控措施出臺后的事件,是不是有大量資金涌入股票市場?
說道這里,我要把PostgreSQL數據庫搬出來,到底怎么實現上述需求呢?
模擬現實
1. 構建變亂輸入的表結構
create table event(
2. 插入1000萬變亂記錄,其中5000個變亂的種類.
insert into event (class, info , crt_time) select (5000*random())::int::text, 'test', clock_timestamp() from generate_series(1,10000000);
3. 針對變亂種類,創建索引
create index idx_event_class on event (class);
需求
查詢某個變亂發生后,若干個接下來發生的變亂
使用函數可以輕松實現這個需求
create or replace function f(
查詢舉例
查詢變亂類別為1的變亂,它后面發生的2個變亂,輸出10次分析結果.
postgres=# select * from f('select id from event where class=$$1$$', '1', 2, 10);
利用以上結果,我們就可以知道發生了變亂1之后,都發生了其他什么變亂.
至于你要拿這些結果進行接下來的分析,可以使用類似關鍵詞的熱點分析辦法,或者使用PostgreSQL提供的MADlib機器學習庫,又或者使用plR進行分析.
總之你肯定有辦法找出事件之間的關聯關系.
非獨立變亂的相關性分析
因為前面分析的都是獨立事件,即本身就沒有相關性的,所以需要通過函數的辦法來輸出結果.
對于非獨立事件,好比說用戶逛淘寶的點鼠標的行為,在點了某個商品后,又點了哪些其他商品.
對于非獨立事件,在結構設計上,就有關聯字段,好比USERID,所以我們可以很方便的進行關聯.
使用PostgreSQL遞歸調用,就可以對非獨立變亂進行軌跡分析.
例子
《PostgreSQL 遞歸查詢CASE - 樹型路徑分組輸出》
《用PostgreSQL找回618秒逝去的青春 - 遞歸收斂優化》
《distinct xx和count(distinct xx)的變態遞歸優化辦法 - 索引收斂(skip scan)掃描》
《PostgreSQL 使用遞歸SQL 找出數據庫對象之間的依賴關系》
《PostgreSQL 遞歸死循環案例及解法》
《PostgreSQL 遞歸查詢一例 - 資金累加鏈》
《PostgreSQL Oracle 兼容性之 - WITH 遞歸 ( connect by )》
《遞歸優化CASE - group by & distinct tuning case : use WITH RECURSIVE and min() function》
《遞歸優化CASE - performance tuning case :use cursor\trigger\recursive replace (group by and order by) REDUCE needed blockes scan》
小結
PostgreSQL的遞歸語法、plpgsql編程,可以很好的滿足輿情分析中變亂前后變亂的分析需求.
再利用PostgreSQL的熱點詞分析,聚類分析或者使用PostgreSQL提供的MADlib機器學習庫,又或者使用plR進行分析.找出變亂之間的關聯關系.
維易PHP培訓學院每天發布《潘金蓮改變了歷史嗎-PostgreSQL輿情事件分析應用》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。