中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

性能優化技巧 - 集群維表

發布時間:2020-08-03 19:29:20 來源:網絡 閱讀:130 作者:raqsoft 欄目:大數據

事實表和維表進行關聯計算時,需要對維表進行頻繁的隨機訪問,因此維表要盡量放在內存中,才能提高關聯計算的性能。如果維表較大,單機內存放不下,就應該考慮用集群方式,將維表分段讀入多臺機器的內存。下面舉例說明集群維表的用法。

假設有2個計算節點,分別為127.0.0.1:8281、127.0.0.1:8282。執行如下腳本,可將產品表加載到節點機內存中:


AB
1=["127.0.0.1:8281","127.0.0.1:8282"]
2fork [[1,20000000],[20000000,40000000]];A1=connect("demo1").query@x("select   productID,name,price from product where productID>? and productID<=?  order by productID  ",A2(1),A2(2)).keys(productID)
3
=env(product,B2)

A2:語句fork可在多個節點機上并行執行任務,其中[1,20000000]是第1臺節點機的入口參數。

B2:各節點按入口參數分別查詢產品表。其中1號節點取出編號在1-20000000之間的產品。需要注意的是:各節點數據不能有重合,需按維表主鍵排序,需用key函數建立物理鍵。

B3:函數env用來在節點機設置全局變量,各節點機變量名相同,。

接下來實現業務算法:


A
1=["127.0.0.1:8281","127.0.0.1:8282"]
2=memory(A1, product)
3=connect("demo1").cursor@x("select   orderID,productID,client, quantity from order")
4=A3.switch(productID,A2: productID)
5=A4.groups(client;sum(productID.price *quantity))

A2:按名字product在各節點機尋找全局變量,返回集群維表。注意集群維表是個遠程引用,對應的數據在各節點機。

A3:從數據庫取出訂單事實表。事實表通常數據量較大,需要用游標返回。事實表的來源不限于數據庫,任意游標都可以。

A4:對事實表和集群維表進行關聯計算。除了cs.switch()函數,也可以用cs.join()函數進行關聯計算。

A5:對關聯結果進一步計算,這里以分組匯總為例。

 

上述例子中,集群維表來自于數據源,底層數據結構為序表,但序表無壓縮,占用空間較大。如果以SPL組表為數據源,則內存中的數據結構為內表,而內表有壓縮,占用空間較小。

假設維表已分成2份,各自存為組表,名字都叫product.ctx,分別放置在兩個節點機的0數據區上,則加載數據的腳本如下:


A
1=file@z0("product.ctx", ["127.0.0.1:8281","127.0.0.1:8282"])
2=A1.create().memory()
3=env(product,A2)

A1:在各節點機的0數據區,尋找名為product.ctx的組表,定義為分布組表。

A2:將分布組表加載到各節點機內存,形成集群維表。

A3:在匯總機定義全局變量product,指向集群維表。

實現業務算法的腳本如下:


A
1=connect("demo1").cursor@x("select   orderID,productID,client, quantity from order")
2=A1.switch(productID,product: productID)
3=A2.groups(client;sum(productID.price *quantity))

A2:直接用全局變量名product引用集群維表,并參與關聯計算。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙岩市| 顺平县| 纳雍县| 高雄市| 阿克苏市| 荔波县| 乳山市| 克什克腾旗| 台南市| 凌源市| 洞口县| 仲巴县| 布尔津县| 天长市| 胶州市| 田林县| 元阳县| 银川市| 乐东| 中宁县| 晴隆县| 资阳市| 会同县| 株洲市| 曲阜市| 新丰县| 文登市| 巨鹿县| 西宁市| 北海市| 宝应县| 大厂| 得荣县| 平阳县| 沿河| 鄂托克旗| 临泽县| 萍乡市| 水富县| 钟祥市| 康乐县|