本技術(shù)實施例涉及云計算領(lǐng)域,尤其涉及一種數(shù)據(jù)湖的分桶方法以及裝置。
背景技術(shù):
1、隨著數(shù)據(jù)湖業(yè)務的不斷發(fā)展,在一些大數(shù)據(jù)量讀寫的場景下,用戶對數(shù)據(jù)湖的查詢和更新性能要求越來越高,由于分桶寫入技術(shù)能夠帶來的更高性能數(shù)據(jù)查詢和更新能力,因此,越來越多的用戶在構(gòu)建數(shù)據(jù)湖時傾向于選擇采用分桶寫入技術(shù)在數(shù)據(jù)湖寫入數(shù)據(jù)。
2、在目前的分桶寫入技術(shù)中,數(shù)據(jù)湖中包含多個分區(qū),其中每個分區(qū)包含多個桶,計算設(shè)備在數(shù)據(jù)寫入過程中,需要加載每個分區(qū)的分桶策略,其中,分桶策略能夠指示該分區(qū)中的桶數(shù)量。在目前配置分桶策略的過程中,計算設(shè)備需要手動配置每個分區(qū)的分桶策略,并且目前分桶策略中每個分區(qū)都采用固定的分桶數(shù)。
3、然而,由于用戶基于實際業(yè)務進行數(shù)據(jù)寫入時,會存在寫入數(shù)據(jù)在不同分區(qū)分布不均勻的情況,因此,每個分區(qū)都采用固定的分桶數(shù)則會使得部分桶數(shù)據(jù)量過大,部分桶數(shù)據(jù)量過小,使得分桶靈活性差,容易產(chǎn)生數(shù)據(jù)傾斜,進一步導致數(shù)據(jù)查詢和寫入效率低。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種數(shù)據(jù)湖的分桶方法,數(shù)據(jù)湖系統(tǒng)能夠根據(jù)業(yè)務需求能夠的配置不同分區(qū)的桶數(shù)量,從而提升了分桶的靈活性以及數(shù)據(jù)查詢和寫入效率。本技術(shù)實施例還提供了數(shù)據(jù)湖的分桶方法對應的數(shù)據(jù)湖的分桶裝置、計算設(shè)備、計算設(shè)備集群、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品。
2、第一方面,本技術(shù)實施例提供了一種數(shù)據(jù)湖的分桶方法,該方法可以由數(shù)據(jù)湖系統(tǒng)執(zhí)行,也可以由數(shù)據(jù)湖系統(tǒng)的部件,例如數(shù)據(jù)湖系統(tǒng)的處理器、芯片或芯片系統(tǒng)等執(zhí)行,還可以由能實現(xiàn)全部或部分數(shù)據(jù)湖系統(tǒng)功能的邏輯模塊或軟件實現(xiàn)。第一方面提供的方法包括:數(shù)據(jù)湖系統(tǒng)獲取業(yè)務需求信息,業(yè)務需求信息用于指示數(shù)據(jù)湖中一個或多個分區(qū)中待寫入數(shù)據(jù)的預測數(shù)據(jù)量,待寫入數(shù)據(jù)用于寫入一個或多個分區(qū)的數(shù)據(jù)桶。數(shù)據(jù)湖系統(tǒng)根據(jù)業(yè)務需求信息確定一個或多個分區(qū)的預分桶策略,預分桶策略用于指示數(shù)據(jù)湖中不同分區(qū)的桶數(shù)量,不同分區(qū)的桶數(shù)量不同。數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用于管理數(shù)據(jù)湖中的數(shù)據(jù)。當數(shù)據(jù)湖系統(tǒng)接收到待寫入數(shù)據(jù)之后,可以基于數(shù)據(jù)表中預分桶策略執(zhí)行分桶寫入。
3、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)能夠根據(jù)業(yè)務需求信息為不同分區(qū)配置不同的預分桶策略,不同分區(qū)能夠靈活設(shè)置桶數(shù)量,相較于目前數(shù)據(jù)湖系統(tǒng)設(shè)置固定分桶數(shù),本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)基于業(yè)務需求對應的預測數(shù)據(jù)量靈活設(shè)置不同分區(qū)的分桶數(shù),從而提升了不同分區(qū)的桶數(shù)量的配置準確性以及分桶的靈活性,進一步提升了數(shù)據(jù)湖的數(shù)據(jù)查詢和寫入效率。
4、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)根據(jù)業(yè)務需求信息確定每個分區(qū)的預分桶策略的過程中,數(shù)據(jù)湖系統(tǒng)基于業(yè)務需求信息生成一個或多個分區(qū)的策略鍵值對,策略鍵值對用于指示不同分區(qū)的桶數(shù)量,策略鍵值對包括鍵和值兩部分,鍵用于指定分區(qū),值用于指定分區(qū)對應的桶數(shù)量。策略鍵值對的類型包括一項或多項:直接匹配、正則匹配和范圍匹配。其中,直接匹配是指直接指定分區(qū)中的分桶數(shù)量,正則匹配通過字符串指定符合條件的分區(qū)中的分桶數(shù)量,范圍匹配是指定一個范圍內(nèi)的分區(qū)中的分桶數(shù)量。數(shù)據(jù)湖系統(tǒng)基于策略鍵值對生成一個或多個分區(qū)的預分桶策略。
5、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)能夠根據(jù)業(yè)務需求信息自動確定策略鍵值對,并基于策略鍵值對生成多種類型的預分桶策略,從而提升了不同分區(qū)的桶數(shù)量的配置效率,進一步提升了數(shù)據(jù)湖的數(shù)據(jù)查詢和寫入效率。
6、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)獲取業(yè)務需求信息的過程中,數(shù)據(jù)湖系統(tǒng)獲取一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量,根據(jù)一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量預測業(yè)務需求信息,業(yè)務需求信息包括指定分區(qū)的待寫入數(shù)據(jù)的預測數(shù)據(jù)量。數(shù)據(jù)湖系統(tǒng)根據(jù)業(yè)務需求信息確定一個或多個分區(qū)的預分桶策略的過程中,根據(jù)指定分區(qū)的待寫入數(shù)據(jù)的預測數(shù)據(jù)量和指定分區(qū)的桶大小確定指定分區(qū)的桶數(shù)量。
7、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)能夠根據(jù)不同分區(qū)的歷史寫入數(shù)據(jù)量預測業(yè)務需求信息,從而提升了業(yè)務需求信息的準確性,進一步提升了不同分區(qū)的桶數(shù)量的準確性。
8、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)根據(jù)一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量和不同歷史分區(qū)對應的權(quán)重系數(shù)計算一個或多個分區(qū)待寫入數(shù)據(jù)的預測數(shù)據(jù)量。
9、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)在根據(jù)歷史寫入數(shù)據(jù)量確定業(yè)務需求信息的過程中,能夠按照不同歷史分區(qū)對應的權(quán)重系數(shù)計算一個或多個分區(qū)待寫入數(shù)據(jù)的預測數(shù)據(jù)量,從而提升了業(yè)務需求信息的準確性,進一步提升了不同分區(qū)的桶數(shù)量的準確性。
10、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)根據(jù)一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量和歷史分區(qū)數(shù)量計算一個或多個分區(qū)的待寫入數(shù)據(jù)的預測數(shù)據(jù)量,即根據(jù)歷史分區(qū)的歷史寫入數(shù)據(jù)量均值確定待寫入數(shù)據(jù)的預測數(shù)據(jù)量。
11、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)在根據(jù)歷史寫入數(shù)據(jù)量確定業(yè)務需求信息的過程中,也可以按照歷史分區(qū)的歷史寫入數(shù)據(jù)量均值確定待寫入數(shù)據(jù)的預測數(shù)據(jù)量,從而提升了業(yè)務需求信息的預測效率,進一步提升了不同分區(qū)的桶數(shù)量的配置效率。
12、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)接收待寫入數(shù)據(jù),確定待寫入數(shù)據(jù)要寫入的一個或多個分區(qū)不存在預分桶策略時,基于分區(qū)統(tǒng)計信息自動確定一個或多個分區(qū)的桶數(shù)量,分區(qū)統(tǒng)計信息包括待寫入數(shù)據(jù)在一個或多個分區(qū)的寫入數(shù)據(jù)量。
13、本技術(shù)實施例中當數(shù)據(jù)湖系統(tǒng)無法獲取業(yè)務需求信息生成預分桶策略,數(shù)據(jù)湖系統(tǒng)可以基于待寫入數(shù)據(jù)確定分區(qū)統(tǒng)計信息,并基于分區(qū)統(tǒng)計信息確定每個分區(qū)的桶數(shù)量,從而提升了數(shù)據(jù)湖的分桶靈活性以及分桶效率,進一步提升了數(shù)據(jù)湖的數(shù)據(jù)查詢和寫入效率。
14、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)基于分區(qū)統(tǒng)計信息自動確定分區(qū)的桶數(shù)量的過程中,數(shù)據(jù)湖系統(tǒng)對待寫入數(shù)據(jù)進行聚合操作,確定每個分區(qū)的數(shù)據(jù)條數(shù),對待寫入數(shù)據(jù)進行采樣,確定每條數(shù)據(jù)的平均大小,根據(jù)數(shù)據(jù)條數(shù)和每條數(shù)據(jù)的平均大小,確定分區(qū)統(tǒng)計信息,基于分區(qū)統(tǒng)計信息和每個分區(qū)的桶大小計算一個或多個分區(qū)中每個分區(qū)的桶數(shù)量。
15、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)可以對待寫入數(shù)據(jù)確定進行采樣確定數(shù)據(jù)平均大小,對待寫入數(shù)據(jù)進行分區(qū)聚合確定每個分區(qū)的數(shù)據(jù)條數(shù),并基于數(shù)據(jù)平均大小和每個分區(qū)的數(shù)據(jù)條數(shù)計算分區(qū)統(tǒng)計信息,從而提升了分區(qū)統(tǒng)計信息的準確性,進一步提升了分桶數(shù)量的配置準確性。
16、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表的過程中,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略。當在數(shù)據(jù)湖系統(tǒng)在數(shù)據(jù)湖寫入數(shù)據(jù)時,從數(shù)據(jù)表的元數(shù)據(jù)區(qū)中加載預分桶策略,并根據(jù)預分桶策略自動設(shè)置分區(qū)的桶數(shù)目。
17、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)能夠直接在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略,從提升了配置預分桶策略可實現(xiàn)性。
18、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表的過程中,基于預分桶策略生成配置文件,配置文件包括一個或多個分區(qū)的預分桶策略,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入配置文件的加載路徑。當數(shù)據(jù)湖系統(tǒng)在數(shù)據(jù)湖中寫入數(shù)據(jù)時,從數(shù)據(jù)表的元數(shù)據(jù)中獲取配置文件的加載路徑,并加載預分桶策略的配置文件,并根據(jù)配置文件中預分桶策略自動設(shè)置分區(qū)的桶數(shù)目。
19、本技術(shù)實施例中數(shù)據(jù)湖系統(tǒng)也可以在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略對應配置文件的加載路徑,從提升了配置預分桶策略可實現(xiàn)性。
20、一種可能的實施方式中,當數(shù)據(jù)湖的一個分區(qū)配置多個預分桶策略時,基于多個預分桶策略的交集確定一個分區(qū)的桶數(shù)量。
21、本技術(shù)實施例中當數(shù)據(jù)湖的一個分區(qū)配置多個預分桶策略時,數(shù)據(jù)湖系統(tǒng)可以基于多個預分桶策略的交集確定該分區(qū)的桶數(shù)量,從而提升了分桶數(shù)量的配置準確性。
22、第二方面,本技術(shù)實施例提供了一種數(shù)據(jù)湖的分桶方法,該方法可以由數(shù)據(jù)湖系統(tǒng)執(zhí)行,也可以由數(shù)據(jù)湖系統(tǒng)的部件,例如數(shù)據(jù)湖系統(tǒng)的處理器、芯片或芯片系統(tǒng)等執(zhí)行,還可以由能實現(xiàn)全部或部分數(shù)據(jù)湖系統(tǒng)功能的邏輯模塊或軟件實現(xiàn)。第一方面提供的方法包括:數(shù)據(jù)湖系統(tǒng)接收用戶輸入的一個或多個策略鍵值對,策略鍵值對用于指示不同分區(qū)的桶數(shù)量,策略鍵值對的類型包括一項或多項:直接匹配、正則匹配和范圍匹配。數(shù)據(jù)湖系統(tǒng)基于一個或多個策略鍵值對生成數(shù)據(jù)湖中一個或多個分區(qū)的預分桶策略,預分桶策略用于指示數(shù)據(jù)湖中不同分區(qū)的桶數(shù)量。數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用于管理數(shù)據(jù)湖中的數(shù)據(jù)。
23、本技術(shù)實施例中用戶也可以直接通過策略鍵值對配置預分桶策略,數(shù)據(jù)湖系統(tǒng)接收用戶輸入的策略鍵值對后,基于該策略鍵值對生成預分桶策略,從而提升了不同分區(qū)的桶數(shù)量的配置效率,進一步提升了數(shù)據(jù)湖的數(shù)據(jù)查詢和寫入效率。
24、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表的過程中,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略。
25、一種可能的實施方式中,數(shù)據(jù)湖系統(tǒng)基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表的過程中,基于預分桶策略生成配置文件,配置文件包括一個或多個分區(qū)的預分桶策略,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入配置文件的加載路徑。
26、一種可能的實施方式中,當數(shù)據(jù)湖的一個分區(qū)配置多個預分桶策略時,基于多個預分桶策略的交集確定一個分區(qū)的桶數(shù)量。
27、第三方面,本技術(shù)實施例提供了一種數(shù)據(jù)湖的分桶裝置,該裝置包括獲取單元、處理單元和收發(fā)單元。其中,獲取單元用于獲取業(yè)務需求信息,業(yè)務需求信息用于指示數(shù)據(jù)湖中一個或多個分區(qū)中待寫入數(shù)據(jù)的預測數(shù)據(jù)量,待寫入數(shù)據(jù)用于寫入一個或多個分區(qū)的數(shù)據(jù)桶。處理單元用于根據(jù)業(yè)務需求信息確定一個或多個分區(qū)的預分桶策略,預分桶策略用于指示數(shù)據(jù)湖中不同分區(qū)的桶數(shù)量。處理單元還用于基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用于管理數(shù)據(jù)湖中的數(shù)據(jù)。
28、一種可能的實施方式中,獲取單元具體用于獲取一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量,根據(jù)一個或多個歷史分區(qū)的歷史寫入數(shù)據(jù)量預測業(yè)務需求信息,業(yè)務需求信息包括指定分區(qū)的待寫入數(shù)據(jù)的預測數(shù)據(jù)量。處理單元具體用于根據(jù)指定分區(qū)的待寫入數(shù)據(jù)的預測數(shù)據(jù)量和指定分區(qū)的桶大小確定指定分區(qū)的桶數(shù)量。
29、一種可能的實施方式中,收發(fā)單元用于接收待寫入數(shù)據(jù)。處理單元還用于確定待寫入數(shù)據(jù)要寫入的一個或多個分區(qū)不存在預分桶策略時,基于分區(qū)統(tǒng)計信息自動確定一個或多個分區(qū)的桶數(shù)量,分區(qū)統(tǒng)計信息包括待寫入數(shù)據(jù)在一個或多個分區(qū)的寫入數(shù)據(jù)量。
30、一種可能的實施方式中,處理單元具體用于對待寫入數(shù)據(jù)進行聚合操作,確定每個分區(qū)的數(shù)據(jù)條數(shù),對待寫入數(shù)據(jù)進行采樣,確定每條數(shù)據(jù)的平均大小,根據(jù)數(shù)據(jù)條數(shù)和每條數(shù)據(jù)的平均大小,確定分區(qū)統(tǒng)計信息,基于分區(qū)統(tǒng)計信息和每個分區(qū)的桶大小計算一個或多個分區(qū)中每個分區(qū)的桶數(shù)量。
31、一種可能的實施方式中,處理單元具體用于在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略。
32、一種可能的實施方式中,處理單元還用于基于預分桶策略生成配置文件,配置文件包括一個或多個分區(qū)的預分桶策略,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入配置文件的加載路徑。
33、一種可能的實施方式中,處理單元還用于當數(shù)據(jù)湖的一個分區(qū)配置多個預分桶策略時,基于多個預分桶策略的交集確定一個分區(qū)的桶數(shù)量。
34、第四方面,本技術(shù)實施例提供了一種數(shù)據(jù)湖的分桶裝置,該裝置包括收發(fā)單元和處理單元,其中,收發(fā)單元用于接收用戶輸入的一個或多個策略鍵值對,策略鍵值對用于指示不同分區(qū)的桶數(shù)量,策略鍵值對的類型包括一項或多項:直接匹配、正則匹配和范圍匹配。處理單元用于基于一個或多個策略鍵值對生成數(shù)據(jù)湖中一個或多個分區(qū)的預分桶策略,預分桶策略用于指示數(shù)據(jù)湖中不同分區(qū)的桶數(shù)量。處理單元還用于基于預分桶策略在數(shù)據(jù)湖中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用于管理數(shù)據(jù)湖中的數(shù)據(jù)。
35、一種可能的實施方式中,處理單元具體用于在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入預分桶策略。
36、一種可能的實施方式中,處理單元具體用于基于預分桶策略生成配置文件,配置文件包括一個或多個分區(qū)的預分桶策略,在數(shù)據(jù)表的元數(shù)據(jù)區(qū)中寫入配置文件的加載路徑。
37、一種可能的實施方式中,處理單元還用于當數(shù)據(jù)湖的一個分區(qū)配置多個預分桶策略時,基于多個預分桶策略的交集確定一個分區(qū)的桶數(shù)量。
38、第五方面,本技術(shù)實施例提供了一種計算設(shè)備,計算設(shè)備包括處理器,處理器與存儲器耦合,處理器用于存儲指令,當指令被處理器執(zhí)行時,以使得計算設(shè)備執(zhí)行第一方面或第一方面任意一種可能的實施方式所述的方法,或者,以使得計算設(shè)備執(zhí)行第二方面或第二方面任意一種可能的實施方式所述的方法。
39、第六方面,本技術(shù)實施例提供了一種計算設(shè)備集群,計算設(shè)備集群包括一個或多個計算設(shè)備,計算設(shè)備包括處理器,處理器與存儲器耦合,處理器用于存儲指令,當指令被處理器執(zhí)行時,以使得計算設(shè)備集群執(zhí)行第一方面或第一方面任意一種可能的實施方式所述的方法,或者,以使得計算設(shè)備集群執(zhí)行第二方面或第二方面任意一種可能的實施方式所述的方法。
40、第七方面,本技術(shù)實施例提供了一種計算機可讀存儲介質(zhì),其上存儲有指令,指令被執(zhí)行時,以使得計算機執(zhí)行上述第一方面或第一方面任意一種可能的實施方式所述的方法,或者,以使得計算機執(zhí)行上述第二方面或第二方面任意一種可能的實施方式所述的方法。
41、第八方面,本技術(shù)實施例提供了一種計算機程序產(chǎn)品,計算機程序產(chǎn)品中包括指令,指令被執(zhí)行時,以使得計算機實現(xiàn)上述第一方面或第一方面任意一種可能的實施方式所述的方法,或者,以使得計算機實現(xiàn)上述第二方面或第二方面任意一種可能的實施方式所述的方法。
42、可以理解,上述提供的任意一種數(shù)據(jù)湖的分桶裝置、計算設(shè)備、計算設(shè)備集群、計算機可讀介質(zhì)或計算機程序產(chǎn)品等所能達到的有益效果可參考對應的方法中的有益效果,此處不再贅述。