女生裸体视频一区二区三区_久久久久九九九_美日韩精品视频_欧美日韩亚洲一区二区三区在线_激情成人亚洲_亚洲一区自拍_日韩亚洲精品在线_国产精品入口66mio_亚洲在线日韩_久久亚洲二区

美林數據
ABOUT US
美林數據技術股份有限公司(簡稱:美林數據,NEEQ:831546)是國內知名的數據治理和數據分析服務提供商。

美林新聞/NEWS

首頁 美林數據 美林新聞

美林數據技術專家團隊 | 基于Spark的分布式并行處理優化策略

2021-10-21 16:40:00
由于Spark在使用JDBC方式讀取關系型模型數據的時候,默認采用單線程任務執行。在數據量較大時,經常發現內存溢出、性能低的問題。在擴大內存讀取后進行重分區,又會消耗時間,浪費資源。
因此,開發并發讀取關系型模型數據,可以有效提高任務處理并發度,減少單個任務的數據處理量,進而提升處理效率。
分布式并發處理優化

(一)總體思路
關系型模型并發讀取首先要選取分區字段,按照字段類型和分區個數確定并發分區間隔的key值。假設key值可以將模型數據均勻劃分成多個邏輯分區,根據key值構成查詢條件將模型數據進行并發讀取。其中的關鍵點包括:
1、分區字段的選取規則
(a)初步確定模型中第一個字符或者數值型字段。
2、分區個數
(a)給出默認分區個數,測試讀寫后按照1000w數據量給出建議的資源配比和默認分區個數。
(b)允許用戶進行自定義配置。
3、靜態分區策略
(a)數值型:轉換成字符并逆序,按照數值位取值的字符范圍和分區個數確定并發分區間隔的key值,進行多分區構造。
(b)字符型:逆序后按照單字符取值范圍和分區個數確定并發分區間隔的key值,進行多分區構造。
(二)總體處理流程
總體處理流程如圖所示:
分布式并發處理
分區個數合法校驗及處理規則:分區個數合法校驗及處理規則為分區個數必須在[1,range]范圍內,超出下限按照一個分區處理,超出上限按照上限range處理。支持的最大分區個數(range)字符型為64的4次方,數值型為10000。
(三)閾值范圍并發讀取
閾值范圍并發讀取適合分區字段為數值類型的模型。
關鍵參數:
partitionColumn:分區字段名稱
lowerBound:取值下限
upperBound:取值上限
numPartitions:分區個數
(四)默認并發讀取
默認并發讀取適應于字符和數值類型的分區字段,按照類型的取值范圍獲取近似均分的過濾條件,將數據按照條件分配到不同的邏輯分區中,并以并發執行來提升數據讀取效率。
1、模型并發讀取
模型并發讀取設計按照分區個數不同采用不同的接口調用方式。
?分區個數為1

val url = "jdbc:mysql://host:3306/test"
val prop = new java.util.Properties
prop.setProperty("user", "***")
prop.setProperty("password", "***")
prop.setProperty("driver", "com.mysql.jdbc.Driver")
val df = spark.sqlContext.read.jdbc(url,"tname",prop)

url為數據庫連接串信息。
tname為查詢的表名,也支持查詢條件,形如:

(select * from ronghe_mysql_bigint_50wwhere cast(RY_YGGH as UNSIGNED) > 250000)tmp

prop為數據庫連接信息、用戶名、密碼、driver等配置信息。
?分區個數大于1

val url = "jdbc:mysql://host:3306/test"
val prop = new java.util.Properties
prop.setProperty("user", "***")
prop.setProperty("password", "***")
prop.setProperty("driver", "com.mysql.jdbc.Driver")
val df = spark.sqlContext.read.jdbc(url,"tname",predicates,prop)

多分區并發讀取比分區個數為1的參數增加了分區預劃分條件。
其中,predicates為分區預劃分條件,Array[String],讀取時按照每個元素內容過濾數據。
2、分區預劃分條件
分區預劃分條件是由多個條件構成的字符串數據。

val predicates = Array[String](
  " cols < '3'",
  " cols >= '3' and cols <'6'",
  " cols >= '6'
)

分區預劃分條件包括分區條件列和比對值。分區條件值由選取的分區字段及其操作構成,比對值即為靜態分區間隔值。考慮到有序數值型、字符型在業務場景中使用一般高位相似低位差異明顯,因此對分區字段進行逆序處理。
假設分區字段為splitCol。
splitCol為數值類型時:分區條件列cols 為reverse(cast(splitColas char))。
splitCol為字符類型時:分區條件列cols 為reverse(splitCol)。
假設分區間隔值為splitKeys(Array[String]),長度為L。對比值按照左閉右開的方式構造。
第一個條件為cols < splitKeys(0);
第二個條件為cols >= splitKeys(0) and cols < splitKeys(1);
第i個條件為cols >= splitKeys(i-2)and cols < splitKeys(i-1);
最后一個條件為cols >= splitKeys(L-1)。
3、分區個數
模型并發讀取設計,按照四位字符來表示分區間隔值。那么,可表示的值范圍即為每位可取的值個數的四次方。
設定字符每位可取64個,數字可取的值個數10,即支持的最大分區個數(range):字符型(64的4次方)、數值型(10000)。
4、靜態分區間隔值獲取
實現思路
按照字段類型的字符范圍找到分區間隔值,即找到間隔值所表示范圍的近似均分位置點。
假定分區間隔值使用四位字符表示。(設N個分區)
數字類型字符間隔值尋找思路:
(1)數字取值[0,9](暫不考慮小數點,按位將被分到小于0對應的分區),表示范圍:1, 2, 3,……,9998,9999。
(2)找到每個分片的大小范圍S,表示范圍個數除以分區個數(10^4/(N-1))。
(3)S-1,2S-1,3S-1,……,(N-1)*S-1即為可以將四位數均分的間隔值。
字符類型間隔值尋找思路(取值范圍64個字符,優化算法):

(1)按照常用程度,將間隔值每位字符取值范圍確定為:Array('.', '0', '1', '2', '3','4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p','q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '~')
(2)不常用字符將被歸到最臨近的一個分區,中文字符將被歸到最后一個分區,避免不常用字符的獨占一個分區情況,以減少對資源的消耗。
(3)找到每個分段的大小范圍S,表示范圍個數除以分區個數(64^4/(N-1))
(4)同數字字符間隔值,將字符間隔值理解成64進制的數字(可以采用移位運算快速獲取),那么S-1,2S-1,3S-1,……,(N-1)*S-1就是將四位字符近似均分的數字,每位對應的字符間隔值數組中的字符構成的字符串即為間隔值。
Spark的分布式并行處理
十進制轉為64進制,以十進制數keyInt為例,tmp為轉換后結果數組:digitsNum為表示位數4。

for (j <- 1 to digitsNum) {
    tmp(digitsNum - j) = charactors(keyInt & (charLength - 1))
    keyInt >>= 6
}

字符類型間隔值尋找思路(取值范圍任意個字符,通用算法):
與字符類型字符間隔值總體尋找思路一致,但不受取值范圍個數的限制。
(1)按照常用程度,將間隔值每位字符取值范圍確定為Array(……),元素個數為m。
(2)不常用字符將被歸到最臨近的一個分區,中文字符將被歸到最后一個分區,避免不常用字符的獨占一個分區情況,以減少對資源的消耗。
(3)找到每個分段的大小范圍S,表示范圍個數除以分區個數(m^4/(N-1))。
(4)同數字字符間隔值,將字符間隔值理解成m進制的數字,那么S-1,2S-1,3S-1,……,(N-1)*S-1就是將四位字符近似均分的數字,這些數字對應的字符串即為均分字符范圍的間隔值(數字每一位對應的字符間隔值數組中的字符構成的字符串即為間隔值)。
十進制轉為m進制,以十進制數keyInt為例,tmp為轉換后結果數組:digitsNum為表示位數4。

for (j <- 1 to digitsNum) {
    tmp(digitsNum - j) = charactors(keyInt % m)
    keyInt = math.floor(keyInt / m).toInt
}

測試結果
在數據資產平臺中,以50萬、1000萬的數據進行同步性能測試,測試結果如下表:

數據資產平臺
總結與展望

 
按照分區字段并發讀取數據進行處理能夠有效提升數據的處理能力,但受分區字段取值范圍、數據分布情況的影響,效果不盡相同,后續將對分區策略進行持續優化,以達到適應各種業務場景的性能要求。
服務熱線
400-608-2558
咨詢熱線
15502965860-
美林數據
微信掃描二維碼,立即在線咨詢
女生裸体视频一区二区三区_久久久久九九九_美日韩精品视频_欧美日韩亚洲一区二区三区在线_激情成人亚洲_亚洲一区自拍_日韩亚洲精品在线_国产精品入口66mio_亚洲在线日韩_久久亚洲二区
在线观看区一区二| 婷婷中文字幕综合| 久久毛片高清国产| www激情久久| 久久久久97国产精华液好用吗| 欧美一二三四区在线| 日韩精品一区二区在线| 日韩欧美电影一区| 欧美精品一区二区蜜臀亚洲| 久久综合网色—综合色88| 亚洲精品在线电影| 日本一区免费视频| 亚洲免费资源在线播放| 亚洲高清不卡在线| 美女视频第一区二区三区免费观看网站| 首页国产欧美久久| 九色porny丨国产精品| 国产成人综合亚洲91猫咪| 成人app下载| 亚洲午夜久久久久久尤物| 在线一区视频| 91精品91久久久中77777| 欧美日本高清视频在线观看| 日韩欧美在线不卡| 国产精品视频线看| 亚洲一级片在线观看| 青草国产精品久久久久久| 国模一区二区三区白浆| 99精品国产99久久久久久白柏| 欧美激情五月| 久久福利一区| 欧美成人aa大片| 中文字幕亚洲一区二区va在线| 亚洲国产精品一区二区久久恐怖片 | 国产精品扒开腿做爽爽爽软件| 亚洲日韩视频| 欧美欧美午夜aⅴ在线观看| 久久久亚洲精华液精华液精华液| 1024国产精品| 国内外成人在线| 狠狠88综合久久久久综合网| 翔田千里一区二区| 日韩欧美国产午夜精品| 亚洲精品视频自拍| 国产福利一区二区三区| 亚洲免费大片| 91精品午夜视频| 亚洲免费av观看| 国产一区二区导航在线播放| 亚洲高清成人| 欧美一区二区三区在线电影| 国产精品盗摄一区二区三区| 久久99精品久久久久| 精品成人在线| 日韩欧美一级片| 午夜精品福利一区二区三区蜜桃| 99久久免费精品| 在线观看日韩一区| 国产精品日日摸夜夜摸av| 久久av中文字幕片| 亚洲高清视频一区| 欧美不卡在线视频| 婷婷久久综合九色综合伊人色| 午夜精品久久久久99热蜜桃导演 | 欧美日韩免费一区二区三区视频| 国产精品欧美综合在线| 久99久精品视频免费观看| 日韩视频精品| 久久午夜羞羞影院免费观看| 热久久久久久久| 在线亚洲国产精品网站| 久久久精品国产免费观看同学| 狠狠久久亚洲欧美| 免费看的黄色欧美网站| 国产精品久久久一本精品| 国产盗摄一区二区三区| 色婷婷综合五月| 亚洲综合在线五月| 欧美日韩亚洲免费| 精品国产成人在线影院| 黑人巨大精品欧美一区| 一本在线高清不卡dvd| 亚洲精品v日韩精品| 欧美日本一区二区视频在线观看| 日韩午夜在线播放| 精品一区二区国语对白| 亚洲综合丁香| 亚洲精品第一国产综合野| 午夜精品美女久久久久av福利| 日韩欧美激情一区| 国产一二三精品| 欧美亚洲图片小说| 日韩电影免费在线看| 久久精品亚洲| 视频在线观看91| 久久成人免费| 日韩精品福利网| 一本一道久久a久久精品综合蜜臀| 亚洲自拍偷拍图区| 午夜在线播放视频欧美| 亚洲午夜精品网| 美女日韩在线中文字幕| 天堂va蜜桃一区二区三区漫画版| 国产视频不卡| 亚洲成人激情自拍| 91黄视频在线| 精品无人区卡一卡二卡三乱码免费卡 | 在线一区免费观看| 亚洲国产aⅴ成人精品无吗| 国产精品久久久久久久免费软件| 亚洲黄色片在线观看| 国产欧美二区| 男女男精品视频| 欧美日韩视频一区二区| 国产成人免费在线观看| 精品久久久久一区二区国产| 91视频观看免费| 一区二区中文字幕在线| 一区二区三区国产盗摄| 视频一区国产视频| 在线播放91灌醉迷j高跟美女| 国产成人夜色高潮福利影视| 国产性天天综合网| 99国产精品久久久久久久成人热| 亚洲二区在线视频| 欧美日韩久久不卡| 91同城在线观看| 一区二区三区影院| 亚欧色一区w666天堂| 欧美日韩国产综合草草| av一区二区三区| 亚洲免费av在线| 欧美人狂配大交3d怪物一区| av亚洲精华国产精华| 亚洲视频在线一区| 91久久人澡人人添人人爽欧美| 国产一区二区91| 国产精品久久久久影视| 久久人人九九| 菠萝蜜视频在线观看一区| 国产精品久久影院| 欧美日韩视频一区二区| 国产精品初高中精品久久| 三级成人在线视频| 久久综合九色综合欧美亚洲| 99精品99久久久久久宅男| 久久99精品国产| 国产精品国产三级国产aⅴ无密码| 久久综合电影| 欧美日韩亚洲一区| 国产主播一区二区三区| 亚洲色图欧美在线| 制服丝袜激情欧洲亚洲| 亚洲精品视频一区二区三区| 国产一区二区精品久久99| 亚洲人成影院在线观看| 91精品国产综合久久小美女| 亚洲天堂黄色| 成人免费视频网站在线观看| 婷婷丁香久久五月婷婷| 国产精品国产三级国产三级人妇| 欧美中文字幕不卡| 日韩网站在线| 97se亚洲国产综合自在线观| 日韩av一区二区三区四区| 国产精品久久久久7777按摩 | 亚洲激情综合网| 欧美大白屁股肥臀xxxxxx| 免费中文字幕日韩欧美| 黄色精品网站| av一区二区久久| 国产麻豆精品视频| 无码av免费一区二区三区试看 | 亚洲欧洲av在线| 精品国产一区二区三区不卡 | 亚洲靠逼com| 中文字幕精品一区二区三区精品| 欧美丰满一区二区免费视频| 久久国产精品99国产| 亚洲国内欧美| 欧美在线亚洲| 91亚洲男人天堂| 岛国精品在线观看| 国产制服丝袜一区| 毛片不卡一区二区| 亚洲成国产人片在线观看| |精品福利一区二区三区| 国产亚洲欧美日韩日本| 欧美精品一区二区三区蜜臀| 欧美精品日韩精品| 欧美日韩精品欧美日韩精品一 | 午夜激情久久久| 一区二区三区美女视频| 国产精品久久久久久久岛一牛影视 | 成人一道本在线| 国产999精品久久久久久绿帽| 国产精品一区免费视频| 国产乱码精品一区二区三区五月婷 | 亚洲一区二区欧美日韩| 亚洲一区二区在线免费观看视频|