精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

讓我來告訴你列存數據倉庫怎樣更高效

開發 前端
開源數據計算引擎SPL充分利用數據有序存儲的特征,在保持低 CPU 消耗的前提下,實現了較高壓縮率的壓縮算法,大幅減少了物理存儲量,進一步提高了性能。SPL還提供倍增分段機制,解決了列存分段難題,讓列存數據也能充分利用并行計算來提高效率。

很多數據倉庫產品都采用了列式存儲。如果數據表的總列數很多而計算涉及的列很少,采用列存就只讀取需要的列即可,能夠減少硬盤訪問量,提高性能。特別是數據量非常大時,硬盤掃描和讀取的時間占比很大,這時候列存的優勢會很明顯。

那么,是不是只要用了列存就一定能做到性能最佳呢?我們來看看,列式存儲在哪些方面還可以做的更高效。

壓縮

結構化數據的編碼方式一般都不會非常緊湊,常常還有一定的可壓縮余地。數據倉庫通常會在列存的基礎上對數據進行壓縮,在物理上減少數據存儲量,從而減少讀取時間,提高性能。數據表相同字段的數據類型一般都是一樣的,甚至有些情況取值都很接近,這樣的一批數據通常會有較好的壓縮率。列存是將相同字段值存儲在一起的,所以比行存更有利于數據壓縮。

但是,通用的壓縮算法不能假定數據有某種特征,只能將數據當作隨意的字節流去編碼,有時并不能獲得最好的壓縮率。而且,高壓縮率的算法壓縮出來的數據,解壓縮時常常會增加CPU的運算量,消耗更多的時間。這部分多消耗的時間,甚至會大于壓縮節省的硬盤讀取時間,得不償失。

如果我們先對數據做一些處理,人為地制造某些數據特征來利用,再配合壓縮算法,就可以實現較高的壓縮率,同時保持較低的CPU消耗。

將數據排序后存儲就是一個有效的處理方法。數據表中常常有許多維度字段,比如地區、日期等。這些維度的取值基本都在一個小集合范圍內,數據量大時會有很多重復取值。如果數據是按這些列排序的,則相鄰記錄之間取值相同的情況就很常見。這時,使用很輕量級的壓縮算法也能獲得很好的壓縮率。簡單來講,可以直接存儲列值及其重復次數,而不必把同樣的值存儲多遍,少占用的空間是相當可觀的。

排序的次序也有講究。要盡量把字段值較長的列放在前面排序。比如有地區和性別兩個列,地區的值(“北京”、“上?!钡龋┳址麛狄笥谛詣e(“男”、“女”),則先地區、后性別排序的效果就要好于反過來的情況。

我們還可以進行數據類型的優化,比如將字符串、日期等轉換為適當的數值編碼。如果把地區、性別字段都轉換為小整數編號,字段值的長度就一樣了。這時,可以選擇重復情況更多的字段排到前面。例如性別只有兩個枚舉值,而地區則相對較多。所以各條記錄中,性別重復的會更多,先性別、后地區排序所占用空間通常會更小。

開源數據計算引擎SPL提供的列存方案,就實現了這種壓縮算法。把有序數據追加進SPL的組表時,默認會自動執行上述方法,只記錄一次值和重復計數。

SPL建立有序列存組表,并完成遍歷計算的寫法,大致是這樣:

示例代碼1:有序壓縮列存和遍歷計算


A

1

=file("T_ordinary.ctx").open().cursor(f1,f2,f3,f4,…).sortx(f1,f2,f3)

2

>file("T.ctx").create(#f1,#f2,#f3,f4,…).append@i(A1)

3

=file("T.ctx").open().cursor().groups(…;sum(amt1),avg(amt2),max(amt3+amt4),…)

A1:建立原數據的游標,并按照f1,f2,f3三個字段排序。

A2:建立新的組表,指定f1,f2,f3三個字段有序。將已經排好序的數據寫入組表。

A3:打開已經建好的新組表,做分組匯總。

在下面這個測試中,SPL采用數據類型優化和有序壓縮列存后,數據存儲量減少了31%,而計算性能提高了9倍多。測試結果見下圖:

這個測試更詳細的信息請參考: 多維分析后臺實踐 3:維度排序壓縮

并行

多線程并行可以充分利用多CPU計算能力,是重要的提速手段。而要并行就需要先把數據分段。行存分段比較簡單,按數據量大體平均分段,再找記錄結束標記確定分段點位置即可。但列存不能采用同樣的辦法。由于列存的不同列是分別存儲的,也必須分別分段。又因為不定長字段和壓縮數據的存在,各個列相同的分段點位置不一定會落在同一條記錄上,會導致讀取錯誤。

業界普遍采用分塊方案解決列存分段同步性問題:塊內數據用列式存儲,分段必須以塊為單位,在塊內不再分段并行。實施這種方法,要先確定每一塊的數據量大小。如果數據表總數據量固定,以后也不再追加數據,則很容易計算出一個合適的塊大小。但數據表一般都會有新增數據不斷追加進來,這就會出現塊大小如何確定的矛盾。假如塊較大,在初期總數據量較小時,分塊數會比較少,無法做到靈活分段。而均勻、靈活的分段是決定并行計算性能的關鍵。假如塊較小,在數據量增長后分塊數會變得很多,列數據在物理上將被拆成很多不連續的小塊,會多讀入分塊之間的少量無用數據??紤]硬盤的尋道時間,分塊數越多這個問題越嚴重。很多數據倉庫或大數據平臺都無法解決這個分塊大小和分塊數的矛盾,所以很難充分利用并行計算提升性能。

SPL提供了倍增分段方式,將固定(物理)分塊改為動態(邏輯)分塊,可以很好的解決這個矛盾。具體做法是:為每列數據建立固定大?。ɡ?1024 個索引位)的索引區,每個索引位存儲一條記錄的起始位置,相當于一條記錄為一塊。追加記錄到索引位填滿后,重寫索引區,丟棄偶數索引位,奇數位向前移動,空出索引區后一半位置。相當于將分塊數縮減為 512 個,兩條記錄為一塊。依次類推,重復追加數據、填滿、重寫索引區的過程。隨著數據量的增加,塊的大?。▔K內記錄數)不斷翻倍。所有列的索引區要同步填充,且填滿后同步重寫,始終保持一致。這種辦法實質上是以記錄數作為分段依據的,而不是字節數,所以可以保證各個列即使分別分段也是同步的,不會出現錯位的情況。

以動態塊為單位分段時,塊個數保持在 512 到 1024 之間(記錄數小于 512 除外),可以滿足分段靈活的要求。各列的動態塊對應記錄數完全相同,也可以滿足分段均勻的要求。數據量無論大小,都可以獲得良好的分段效果。倍增分段原理的詳細介紹參見這里:SPL 的倍增分段。

示例代碼1中生成的組表T,缺省采用了倍增分段方案。要用T做并行計算,只要將A3代碼做簡單修改:

=file("T.ctx").open().cursor@m().groups(;sum(amt1),avg(amt2),max(amt3+amt4),)

cursor函數加上@m選項,就可以做并行計算了。

后續再追加數據時,不需要重新生成一遍組表。打開組表直接追加即可,代碼大致是這樣的:

> file("T.ctx").open().append@i(cs)

這里要保證游標cs中的待追加數據,按照f1,f2,f3三個字段繼續有序。實際應用中,待追加數據不一定滿足這個條件。對于這種情況,SPL也給出了高性能的解決方案,具體方法請參考:SPL 的有序存儲。

查找

列存比較適合遍歷計算,比如分組匯總等。對于大多數查找任務來講,列存卻會導致更差的性能。在不用索引的時候,通常的列存即使已經有序存儲,也無法使用二分法查找。這個原因,和上面并行分段介紹的一樣,還是因為列存不能保證各列的同步性,可能會出現錯位,導致讀取錯誤。這時列存數據只能用遍歷法來查找了,性能會很差。

列存數據表上也可以建立索引來避免遍歷,但非常麻煩。理論上講,要在索引中把各個字段的物理位置都記錄下來,索引容量就會比行存時的索引大很多,甚至可能和原數據表一樣大(因為每個字段都有個物理位置,索引中的數據量和原數據相同,僅是數據類型簡單)。而且,讀取時也要分別到各個字段的數據區去讀,而硬盤有個最小讀取單位,這會導致各列的總讀取量遠遠超過行存,表現出來就是查找性能差很多。

SPL采用倍增分段機制后,可以較迅速按記錄序號在列存格式中找到各字段值,就可以執行二分法了。同時,索引中記錄整條記錄的序號即可,容量就能小得多,和行存時差不多。不過,使用二分法或索引查找的時候,仍然需要到各個字段的數據塊分別讀取,性能還是趕不上行存。所以,如果要追求極致的查找性能,還是要采用行存。實際應用中,最好是讓程序員根據計算的需要來選擇是否列存。但是,有些數據倉庫做成了透明機制,不允許用戶自由選擇行存和列存,就很難達到最佳效果了。

SPL則將這個自由度留給了開發人員,可以根據實際需要來決定是否采用列存、哪些數據采用列存,從而獲得極致性能。

在前面的介紹中,組表缺省使用列存,但也提供行存模式,可以在創建時用選項 @r 指明。

示例代碼1中的A2可以改為:

=file("T_r.ctx").create@r(#f1,#f2,#f3,f4,).append@i(A1)

這樣生成的就是行存組表。有了列存和行存兩個組表,程序員即可根據需要自由選擇使用。

對遍歷和查找性能要求都很高的場景,就只能用存儲空間來換計算時間。也就是將數據冗余存儲兩遍,列存用于遍歷,行存用于查找。不過,這種共存方案的數據要冗余兩遍,且行存還要再建立索引,所以整體占用的硬盤空間會比較大。

SPL 還提供了一種帶值索引,在建立索引時把其它字段值一起復制過來。原組表繼續采用列存用于遍歷,而索引本身已經保存了字段值并使用行存,在查找時一般不再訪問原表,能獲得更好的性能。帶值索引和行列共存方案一樣,都能兼顧遍歷、查找的性能。而且,帶值索引相當于行存加上索引,比行列共存方案占用的空間更小。

示例代碼2:帶值索引


A

1

=file("T.ctx").open()

2

=A1.index(IDS;f1;f4,amt1,amt2)

3

=A1.icursor(f1,f4;f1==123456).fetch()

4

=A1.icursor(f4,amt2;f1>=123456 && f2<=654321)

A2 建立索引IDS時,把要引用的字段f4,amt1,amt2抄在參數中,就可以在索引中復制這些字段值。以后取出目標值時,只要涉及字段在這部分內,就不必再讀取原表。

回顧與總結

采用列存可以只讀取需要的列,在總列數較多、計算涉及的列較少時,能減少硬盤訪問量,提高性能。但僅此還不夠,列存數據倉庫還要在數據壓縮、多線程并行和查找計算等方面做優化以將列存的效果做到最佳。

開源數據計算引擎SPL充分利用數據有序存儲的特征,在保持低 CPU 消耗的前提下,實現了較高壓縮率的壓縮算法,大幅減少了物理存儲量,進一步提高了性能。SPL還提供倍增分段機制,解決了列存分段難題,讓列存數據也能充分利用并行計算來提高效率。并且,SPL能夠自由建立行存、列存數據表,允許開發者自主選擇使用,且提供了帶值索引機制,可以同時實現高性能遍歷和查找計算。

SPL資料

SPL下載

SPL源代碼

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-04-08 09:40:00

DWD數據倉庫大數據

2022-04-29 08:00:36

web3區塊鏈比特幣

2017-08-25 09:18:04

2019-04-19 08:47:00

前端監控數據

2010-12-23 15:55:00

上網行為管理

2011-08-29 09:33:48

2024-08-19 00:35:00

Pythondict遍歷列表推導式

2019-07-04 15:57:16

內存頻率DDR4

2018-05-08 14:58:07

戴爾

2011-03-07 09:44:09

赤裸的密碼密碼

2024-11-08 08:34:59

RocketMQ5.Remoting通信

2015-09-30 14:22:44

Qlik數據

2022-02-15 20:08:41

JDKJavaWindows

2023-11-24 11:20:04

functoolsPython

2016-06-30 16:54:49

UCloud愛數云計算

2015-09-02 11:44:39

視頻云華為

2018-06-20 11:00:06

云應用開發PaaS

2016-11-14 10:23:08

Hadoop工具大數據數據倉庫

2016-10-28 15:58:29

大數據就業成功率

2023-11-07 08:25:34

API接口參數驗證
點贊
收藏

51CTO技術棧公眾號

欧美在线色视频| 成人免费视频播放| 永久免费毛片在线播放不卡| 中文字幕亚洲乱码| 韩国av网站在线| 成人av片在线观看| 国产精品精品视频| 久久久久久久9999| 欧美理论电影大全| 精品国产99国产精品| 不卡av免费在线| а_天堂中文在线| 国产精品人妖ts系列视频| 国产高清一区视频| 中文在线观看av| 亚洲全部视频| 日韩在线观看精品| 中日韩精品一区二区三区| 超碰国产精品一区二页| 色婷婷国产精品综合在线观看| 在线国产精品网| 欧美午夜黄色| 国产成人午夜高潮毛片| 国产精品黄色av| 日本一区二区不卡在线| 国产精品毛片久久| 亚洲石原莉奈一区二区在线观看| 制服.丝袜.亚洲.中文.综合懂| 视频在线日韩| 岛国av一区二区| 99中文字幕在线观看| 高清毛片在线看| 久久综合久久综合亚洲| 国产色综合一区二区三区| 国产一区二区三区中文字幕| 日韩高清在线电影| 2021国产精品视频| 精品无码久久久久久久| 一区二区三区在线电影| 色偷偷9999www| 国产中年熟女高潮大集合| 米奇精品关键词| 精品久久久久久久久久久久包黑料| 亚洲综合av在线播放| 精品成人免费一区二区在线播放| 欧美日韩一区二区在线播放| 91九色丨porny丨国产jk| 亚洲精品白浆| 亚洲嫩草精品久久| 91成人在线视频观看| 一本一道波多野毛片中文在线| 久久久久久久久免费| 美女主播视频一区| 天堂成人在线| 久久网这里都是精品| 蜜桃成人在线| 国产三级在线免费| 亚洲国产精品t66y| 亚洲乱码国产乱码精品天美传媒| 1769在线观看| 亚洲欧美日本在线| 异国色恋浪漫潭| 污污片在线免费视频| 亚洲老妇xxxxxx| 成人污网站在线观看| 青草影视电视剧免费播放在线观看| 樱花影视一区二区| 日韩小视频网站| av日韩中文| 欧美日韩亚洲视频一区| 一区二区三区免费播放| 亚洲福利影视| 精品国产凹凸成av人网站| 先锋资源av在线| 你懂的视频欧美| 中文字幕日本欧美| 日日碰狠狠添天天爽| 国产精品久久久久久久免费观看| 欧美大片在线看| 日本一二三区视频| 日韩成人一区二区三区在线观看| 成人观看高清在线观看免费| 亚洲产国偷v产偷v自拍涩爱| 99久久精品费精品国产一区二区| 欧美综合激情| 超碰porn在线| 欧美丝袜一区二区三区| 女人高潮一级片| 激情小说亚洲图片| 国产亚洲精品激情久久| www.av视频| 国产欧美一区二区色老头 | 久久久久久国产精品视频 | 国产91色在线观看| 精品午夜av| 亚洲欧美精品伊人久久| av激情在线观看| 国产精品一级| 国产在线精品一区免费香蕉| 天堂在线观看免费视频| 国产精品久久久爽爽爽麻豆色哟哟 | 六月婷婷中文字幕| 中文字幕+乱码+中文字幕一区| 97精品国产97久久久久久粉红| a一区二区三区| 欧美一区二区二区| 熟女高潮一区二区三区| 欧美日韩99| 国产精品九九久久久久久久| 亚洲黄色在线免费观看| 国产精品美日韩| 日日摸日日碰夜夜爽无码| 日韩黄色在线| 亚洲欧美国产高清va在线播| 久久久久成人网站| 精品一区二区日韩| 欧美激情第六页| av福利在线导航| 欧美一区二区三区四区五区| www在线观看免费视频| 国产综合自拍| 91麻豆国产精品| 川上优的av在线一区二区| 亚洲第一精品在线| 中文字幕在线视频一区二区| 成人写真视频| 国产精品96久久久久久又黄又硬| 少妇高潮一区二区三区69| 国产精品天美传媒| 免费国产成人av| 琪琪久久久久日韩精品| 久久久久久久亚洲精品| 成人av手机在线| 亚洲日本一区二区| 色噜噜狠狠永久免费| 竹菊久久久久久久| 欧美在线免费看| 天天操天天干天天干| 亚洲国产综合91精品麻豆| 久久黄色一级视频| 欧美a级片一区| 亚洲自拍中文字幕| 国产精品刘玥久久一区| 欧美日韩高清一区二区| 手机看片国产日韩| 美女网站色91| 亚洲一区二区在线看| 黄色欧美视频| 日韩亚洲欧美中文在线| 一区二区日韩在线观看| 国产精品成人网| 热久久久久久久久| 综合av在线| 鬼打鬼之黄金道士1992林正英| 人人超在线公开视频| 日韩一区二区免费视频| 男女免费视频网站| 成人国产精品免费网站| 国产视频一视频二| 伊人春色精品| 国产精品日日做人人爱| 欧美三级黄网| 日韩一区二区免费在线观看| 国产在线视频在线观看| av亚洲精华国产精华| 妺妺窝人体色www在线小说| 伊人精品一区| 国产乱人伦真实精品视频| 黄色在线观看网站| 精品久久久影院| 欧美 日韩 精品| 亚洲国产电影在线观看| 色偷偷中文字幕| 亚洲狼人精品一区二区三区| 欧美乱偷一区二区三区在线| 欧美男女视频| 欧美日韩国产成人在线| 日本韩国精品一区二区| 欧美日韩一区二区在线观看 | 国产精品一区二区电影| av官网在线播放| 日韩经典中文字幕| 中文字幕一区二区人妻| 亚洲一区在线免费观看| wwwwxxxx国产| 国精产品一区一区三区mba视频| 国产精品videossex国产高清| 婷婷综合福利| 成人国产精品一区二区| а√天堂中文资源在线bt| 一本大道久久加勒比香蕉| 国产成人精品a视频| 色呦呦网站一区| 波多野结衣亚洲色图| 26uuu另类欧美| 日本中文字幕影院| 在线亚洲自拍| 秋霞在线一区二区| 免费久久精品| 亚洲伊人第一页| 国产超碰精品| 欧美激情综合色| 成人在线播放视频| 亚洲精品狠狠操| 91免费视频播放| 欧美性猛交xxxx免费看漫画| 成人免费视频网站入口::| 91网站黄www| 亚洲av无码久久精品色欲| 久久电影一区| 日韩精品视频在线观看视频| 91久久夜色精品国产按摩| 久久av一区二区三区漫画| 国产午夜精品一区在线观看| 国产精品精品一区二区三区午夜版| heyzo在线欧美播放| 日韩有码在线播放| 国产在线黄色| 日韩成人在线观看| 亚洲精品久久久久久久久久| 91精品一区二区三区在线观看| 欧美一级淫片免费视频黄| 亚洲国产成人精品视频| 色欲人妻综合网| 国产精品国产精品国产专区不片| 久久中文字幕人妻| 不卡av在线免费观看| 亚洲午夜精品在线观看| 国产一区二区电影| 免费成年人高清视频| 老司机精品视频导航| 国产日韩一区二区在线观看| 99精品久久久| 国产无限制自拍| 一区视频在线看| 成人在线国产视频| 韩国在线视频一区| 国产又粗又猛又爽又黄的网站| 一区二区三区网站| 久久久99精品视频| 午夜精彩国产免费不卡不顿大片| 亚洲AV无码成人精品一区| 久久中文亚洲字幕| 正在播放91九色| 66久久国产| 日韩一级片一区二区| 欧美成人高清| 日韩黄色片在线| 在线成人av| 一二三四视频社区在线| 99精品福利视频| 5月婷婷6月丁香| 国产精品资源| 午夜激情福利在线| 九九视频精品免费| 久久无码人妻一区二区三区| 国产精品一二三四| 日韩少妇一区二区| jizz一区二区| 美女爆乳18禁www久久久久久| 欧美激情综合五月色丁香小说| 中文字幕伦理片| 亚洲视频在线一区观看| 一级性生活免费视频| 亚洲图片欧美激情| 久久精品99久久久久久| 天天综合色天天综合色h| 亚洲av无码精品一区二区| 欧美日韩激情一区二区三区| 国产欧美一级片| 亚洲国产精品美女| 国产小视频福利在线| 日日噜噜噜夜夜爽亚洲精品 | 欧美一级小视频| 国产不卡视频一区二区三区| 天堂久久久久久| 中文字幕成人av| 国产在线拍揄自揄拍| 91福利资源站| va视频在线观看| 精品亚洲一区二区三区在线观看| 91xxx在线观看| 欧美激情在线播放| 久久99久久99精品免观看软件| 成人黄色av免费在线观看| 成人资源在线播放| 日韩欧美国产二区| 欧美日韩国产在线一区| 91av俱乐部| 高清不卡一区二区在线| 久久久久久久久久久久久久久| 亚洲女同ⅹxx女同tv| 中文字幕第四页| 欧美一级久久久| 九九九伊在人线综合| 九九精品视频在线观看| 依依综合在线| 成人动漫视频在线观看免费| 成人看的视频| 国产原创中文在线观看| 九九国产精品视频| 亚洲国产欧美视频| 一区二区三区在线不卡| 最近日韩免费视频| 亚洲国产精品久久| 黄色动漫在线| 国产精品成av人在线视午夜片| 日韩在线观看一区二区三区| 午夜精品福利一区二区| 91久久在线| 国内av免费观看| 国产精品对白交换视频| 成人免费a视频| 欧美成人激情免费网| 91在线直播| 国产精品成熟老女人| 色综合www| 日韩国产一级片| 国产精品一区二区视频| 亚洲不卡的av| 91福利视频久久久久| 欧美拍拍视频| 午夜精品一区二区三区在线| 日韩成人久久| 在线观看免费黄色片| 六月婷婷色综合| 久久亚洲无码视频| 日韩欧美在线视频免费观看| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 调教+趴+乳夹+国产+精品| 国产高清精品软件丝瓜软件| 久久精品国产视频| 激情小说亚洲| 亚洲视频小说| 秋霞午夜av一区二区三区| 中文字幕国产综合| 欧美性感美女h网站在线观看免费| 欧美一级淫片aaaaaa| 久久人人97超碰精品888| 91蜜桃臀久久一区二区| 国产香蕉一区二区三区| 国产激情91久久精品导航 | 欧美日韩另类字幕中文| 人妻中文字幕一区| 国产综合在线视频| 国产精品对白| 久久综合九色综合88i| 91一区在线观看| 亚洲免费在线观看av| 精品亚洲夜色av98在线观看| 亚洲人成在线网站| 日本高清久久一区二区三区| 日韩成人伦理电影在线观看| 国产又粗又长免费视频| 欧美军同video69gay| 成人黄色在线电影| 999热视频| 136国产福利精品导航网址| 亚洲国产精品无码久久久久高潮| 黑人巨大精品欧美一区二区三区| 男人的天堂在线| 国产精品一区二区三区在线播放| 久久亚洲国产| 制服下的诱惑暮生| 亚洲大尺度视频在线观看| 午夜激情在线视频| 国产精品久久久久久搜索| 911精品美国片911久久久| 佐佐木明希电影| 欧美性极品xxxx娇小| 777电影在线观看| 亚洲一区二区少妇| 亚洲欧洲另类| 免费看日本黄色片| 欧美一级一区二区| 韩国久久久久久| 国产麻豆电影在线观看| 成人午夜免费av| 欧美一级做a爰片免费视频| 久久精品国产一区二区三区| 东京久久高清| 爱情岛论坛成人| 亚洲综合视频网| 国产三级在线| 不卡一区二区三区四区五区| 久久精品亚洲一区二区| 日韩成人短视频| 日韩精品亚洲视频| 日本国产一区| 欧美丰满熟妇bbbbbb百度| 中文字幕一区二区三区精华液| 亚洲精品一区二区三区蜜桃 | 全黄性性激高免费视频| 国产亚洲午夜高清国产拍精品| 国产视频在线观看视频| 国产91精品高潮白浆喷水| 亚洲精品极品少妇16p| 可以直接看的无码av| 91精选在线观看| 亚洲天堂导航|