日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kylin的cube模型

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kylin的cube模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 數據倉庫的相關概念

OLAP

大部分數據庫系統的主要任務是執行聯機事務處理和查詢處理,這種處理被稱為OLTP(Online Transaction Processing, OLTP),面向的是顧客,諸如:辦事員、DBA等。而數據倉庫主要面向知識工人(如經理、主管等)提供數據分析處理,這種處理被稱為OLAP(Online Analysis Processing)。OLTP管理的是當前數據,比較瑣碎,很難用于做決策。而OLAP管理的是大量歷史數據,提供匯總與聚集機制,并在不同的維度、不同的粒度存儲和管理信息。

特征OLTPOLAP
面向辦事員、DBA知識工人
DB設計基于ER,面向應用星形/雪花,面向主題
數據當前的、確保更新歷史的、跨時間維護
視圖詳細、一般關系匯總的、多維的
訪問讀/寫大多數為讀
度量事務吞吐量查詢吞吐量、訪問時間

舉個簡單的例子:我們會用OLTP去管理app名稱與app類別的映射關系;而分析某一周app(和app類別)的UV,則會使用OLAP;并且OLAP提供了數據的多維觀察——比如:在某周在華為手機上top100用戶的APP

Fact Table

事實表(Fact Table)是中心表,包含了大批數據并不冗余,其數據列可分為兩類:

  • 包含大量數據事實的列;
  • 與維表(Dimension Table)的primary key相對應的foreign key。

Lookup Table

Lookup Table包含對事實表的某些列進行擴充說明的字段。在Kylin的quick start中給出sample cube(kylin_sales_cube)——其Fact Table為購買記錄,lookup table有兩個:用于對購買日期PART_DT、商品的LEAF_CATEG_ID與LSTG_SITE_ID字段進行擴展說明。

Dimension

維表(Dimension Table)是由fact table與lookup table邏輯抽象出來的表,包含了多個相關的列(即dimension),以提供對數據的多維觀察;其中dimension的值的數目稱為cardinatily。在kylin_sales_cube的事實表的LSTG_FORMAT_NAME被單獨抽出來做一個dimension,可與其他維度組合分析數據。

Star Schema

星形模式(Star Schema)包含一個或多個事實表、一組維表,其中維表的primary key與事實表的foreign key相對應。這種模式很像星光四射,維表顯示在圍繞事實表的射線上。下圖是我根據某數據源所建立的星形模式:

Cube

cube是所有的dimensions組合,任一dimensions的組合稱為cuboid。因此,包含\(n\)個dimensions的cube有\(2^n\)個cuboid,如下圖所示:

2. Kylin介紹

Dimension

為了減少cuboid的數目,Kylin將Dimension分為四種類型:

  • Normal,為最常見的類型,與所有其他的dimension組合構成cuboid。
  • Mandatory,在每一次查詢中都會用到dimension,在下圖中A為Mandatory dimension,則與B、C總共構成了4個cuboid,相較于normal dimension的cuboid(\(2^3=8\))減少了一半。

  • Hierarchy,為帶層級的dimension,比如說:省份->城市, 年->季度->月->周->日;以用于做drill down。

  • Derived,指該dimensions與維表的primary key是一一對應關系,可以更有效地減少cuboid數量,詳細的解釋參看這里;并且derived dimension只能由lookup table的列生成。


然而,Kylin的Hierarchy dimensions并沒有做集合包含約束,比如:kylin_sales_cube定義Hierarchy dimension為META_CATEG_NAME->CATEG_LVL2_NAME->CATEG_LVL3_NAME,但是同一個CATEG_LVL2_NAME可以對應不同META_CATEG_NAME。因此,hierarchy 顯得非常雞肋,以至于在Kylin后臺處理時被廢棄了(詳見Li Yang在mail group中所說):

@Julian, plan to refactor the underlying aggregation group in Q4. Will drop
hierarchy concept in the backend, however in the frontend for ease of
understanding, may still call it hierarchy.

Measure

Measure為事實表的列度量,Kylin提供諸如:

  • Sum
  • Count
  • Max
  • Min
  • Average
  • Distinct Count (based on HyperLogLog)

等函數,一般配合group by dimesion使用。

3. 實戰

下面的SQL語句是在kylin_sales_cube build成功后執行的。

sql命令select * from kylin_sales,得到fact table所緩存的列——均為dimension的主key、measure中所需計算的字段。

各個時間段內的銷售額及購買量:

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

查詢某一時間的銷售額及購買量,

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales where part_dt = '2014-01-01' group by part_dt

發現報錯:

Error while compiling generated Java code: public static class Record3_0 implements java.io.Serializable { public java.math.BigDecimal f0; public boolean f1; public org.apache.kylin.common.hll.HyperLogLogPlusCounter f2; public Record3_0(java.math.BigDecimal f0, boolean f1, ...

這是因為part_dt是date類型,在解析string到date的時候出問題,應將sql語句改為:

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales where part_dt between '2014-01-01' and '2014-01-01' group by part_dt-- or select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales where part_dt = date '2014-01-01' group by part_dt

上面查詢只用到了fact table,而沒有用到lookup table。如果查詢各個時間段所有二級商品類型的銷售額,則需要fact table與lookup table做inner join:

select fact.part_dt, lookup.CATEG_LVL2_NAME, count(distinct seller_id) as sellers from kylin_sales fact inner join KYLIN_CATEGORY_GROUPINGS lookup on fact.LEAF_CATEG_ID = lookup.LEAF_CATEG_ID and fact.LSTG_SITE_ID = lookup.SITE_ID group by fact.part_dt, lookup.CATEG_LVL2_NAME order by fact.part_dt desc

4. 參考資料

[1] 韓家煒,《數據挖掘——概念與技術》.
[2] 教練_我要踢球, OLAP引擎——Kylin介紹.
[3] Kylin, Design Cube in Kylin.

轉載于:https://www.cnblogs.com/en-heng/p/cube-model-of-kylin.html

總結

以上是生活随笔為你收集整理的Kylin的cube模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人区人妻精品一区二区网站 | 久久一线 | 日韩精品自拍 | 色在线视频观看 | 青青草91 | 人妻互换一二三区激情视频 | 久久精品一区二区三区四区 | 久久亚洲免费视频 | 日本免费三级网站 | 国产精品一线天粉嫩av | 日本zzjj | 日本泡妞xxxx免费视频软件 | 美女精品一区二区 | 国产在线观看免费av | 日韩免费一区二区三区 | 久久久青草| 日韩中文字幕在线 | 国产免费av网 | 黄片毛片 | 欧美日韩国产在线一区 | 亚洲欧美一区二区精品久久久 | gogo人体做爰aaaa| 北岛玲av | 久久福利影院 | 久久丫丫 | 蜜桃av在线 | 无码国产精品96久久久久 | 91蝌蚪在线观看 | 免费黄色资源 | 亚洲国产情侣 | 朋友的姐姐2在线观看 | 男女午夜视频 | 一区二区国产视频 | 亚洲高清自拍 | 日本亚洲综合 | 性生交大片免费看l | 色老汉av一区二区三区 | 欧美 日韩 国产 亚洲 色 | 中日韩午夜理伦电影免费 | 久久夜色精品国产欧美乱 | 在线观看av的网址 | 高清视频在线播放 | 中文久久乱码一区二区 | 美女大逼| 91视频看看 | 快播av在线 | 91桃色网站 | 中文字幕在线视频免费观看 | 亚洲一区二区伦理 | 国产伦精品一区二区三区免.费 | 超碰在线观看免费版 | 国产亚洲色婷婷久久99精品91 | 中文字av| 亚洲精品福利 | bl无遮挡高h动漫 | 人体裸体bbb欣赏 | 国产99在线播放 | 欧美性生活xxx | 日韩欧美在线不卡 | 视频一区二区国产 | 黄色一级视频 | 极品美女高潮出白浆 | 天堂а√在线中文在线新版 | 亚洲天堂av女优 | 露胸app | 狼性av懂色av禁果av | 好吊色视频在线观看 | 日本久热| 亚洲精品国产成人久久av盗摄 | 女同hd系列中文字幕 | jzz国产| 国产成人精品午夜福利Av免费 | 色图插插插 | 日本免费观看视频 | 亚洲国产日韩一区二区 | 懂爱av| 深夜影院在线观看 | 欧美久久综合 | 91最新在线| 91夜色视频 | 泽村玲子av | 欧美丝袜一区二区三区 | 成人福利视频导航 | 黄一区二区三区 | 午夜网 | 2022国产精品 | 岛国av在线播放 | 日韩欧美视频一区 | 97成人精品视频在线观看 | 成年人理论片 | 亚洲欧美第一页 | 夜夜嗨视频 | 男插女视频在线观看 | 久久综合精品国产二区无码不卡 | 日韩h视频 | 香蕉视频三级 | 亚洲av无一区二区三区久久 | 久草网在线视频 | 免费麻豆国产一区二区三区四区 |