国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

哪里網(wǎng)站用vue.js做的網(wǎng)站排名查詢(xún)平臺(tái)

哪里網(wǎng)站用vue.js做的,網(wǎng)站排名查詢(xún)平臺(tái),qq推廣加好友,做公司做網(wǎng)站有用嗎文章目錄 前言2.3 數(shù)據(jù)分布2.3.1 數(shù)據(jù)分布概覽2.3.1.1 常見(jiàn)的數(shù)據(jù)分布方式2.3.1.2 StarRocks的數(shù)據(jù)分布方式2.3.1.3 分區(qū)2.3.1.4 分桶 2.3.2 創(chuàng)建分區(qū)2.3.2.1 表達(dá)式分區(qū)2.3.2.1.1 時(shí)間函數(shù)表達(dá)式分區(qū)(自v3.1)2.3.2.1.2 列表達(dá)式分區(qū)(自v3.1&…

文章目錄

  • 前言
    • 2.3 數(shù)據(jù)分布
      • 2.3.1 數(shù)據(jù)分布概覽
        • 2.3.1.1 常見(jiàn)的數(shù)據(jù)分布方式
        • 2.3.1.2 StarRocks的數(shù)據(jù)分布方式
        • 2.3.1.3 分區(qū)
        • 2.3.1.4 分桶
      • 2.3.2 創(chuàng)建分區(qū)
        • 2.3.2.1 表達(dá)式分區(qū)
          • 2.3.2.1.1 時(shí)間函數(shù)表達(dá)式分區(qū)(自v3.1)
          • 2.3.2.1.2 列表達(dá)式分區(qū)(自v3.1)
        • 2.3.2.2 Range 分區(qū)
        • 2.3.2.3 List分區(qū)
          • 2.3.2.3.1 功能介紹
          • 2.3.2.3.2 使用方式
            • 2.3.2.3.2.1 語(yǔ)法
            • 2.3.2.3.2.2 參數(shù)說(shuō)明
            • 2.3.2.3.2.3 示例
          • 2.3.2.3.3 使用限制
        • 2.3.2.4 手動(dòng)創(chuàng)建分區(qū)
        • 2.3.2.5 批量創(chuàng)建分區(qū)
        • 2.3.2.6 動(dòng)態(tài)分區(qū)


前言

本文為Flink-StarRocks詳解后續(xù)章節(jié):主要詳解StarRocks分區(qū)分桶
由于篇幅過(guò)長(zhǎng),后續(xù)接著下面進(jìn)行詳解:
? StarRocks查詢(xún)數(shù)據(jù)湖
? 實(shí)現(xiàn)即席查詢(xún)案例

2.3 數(shù)據(jù)分布

建表時(shí),可以通過(guò)設(shè)置合理的分區(qū)和分桶,實(shí)現(xiàn)數(shù)據(jù)均勻分布和查詢(xún)性能提升。數(shù)據(jù)均勻分布是指數(shù)據(jù)按照一定規(guī)則劃分為子集,并且均衡地分布在不同節(jié)點(diǎn)上。查詢(xún)時(shí)能夠有效裁剪數(shù)據(jù)掃描量,最大限度地利用集群的并發(fā)性能,從而提升查詢(xún)性能。
說(shuō)明
自 2.5.7 版本起,在建表和新增分區(qū)時(shí)可以不設(shè)置分桶數(shù)量 (BUCKETS)。StarRocks 默認(rèn)自動(dòng)設(shè)置分桶數(shù)量,如果自動(dòng)設(shè)置分桶數(shù)量后性能未能達(dá)到預(yù)期,并且比較熟悉分桶機(jī)制,則也可以手動(dòng)設(shè)置分桶數(shù)量。
自 3.1 版本起,在建表和新增分區(qū)時(shí)可以不設(shè)置分桶鍵(即 DISTRIBUTED BY 子句)。StarRocks 默認(rèn)使用隨機(jī)分桶,將數(shù)據(jù)隨機(jī)地分布在分區(qū)的所有分桶中。

2.3.1 數(shù)據(jù)分布概覽

2.3.1.1 常見(jiàn)的數(shù)據(jù)分布方式

現(xiàn)代分布式數(shù)據(jù)庫(kù)中,常見(jiàn)的數(shù)據(jù)分布方式有如下幾種:Round-Robin、Range、List 和 Hash。如下圖所示:
在這里插入圖片描述

? Round-Robin:以輪詢(xún)的方式把數(shù)據(jù)逐個(gè)放置在相鄰節(jié)點(diǎn)上。
? Range:按區(qū)間進(jìn)行數(shù)據(jù)分布。如上圖所示,區(qū)間 [1-3]、[4-6] 分別對(duì)應(yīng)不同的范圍 (Range)。
? List:直接基于離散的各個(gè)取值做數(shù)據(jù)分布,性別、省份等數(shù)據(jù)就滿(mǎn)足這種離散的特性。每個(gè)離散值會(huì)映射到一個(gè)節(jié)點(diǎn)上,多個(gè)不同的取值可能也會(huì)映射到相同節(jié)點(diǎn)上。
? Hash:通過(guò)哈希函數(shù)把數(shù)據(jù)映射到不同節(jié)點(diǎn)上。
為了更靈活地劃分?jǐn)?shù)據(jù),除了單獨(dú)采用上述數(shù)據(jù)分布方式之一以外,還可以根據(jù)具體的業(yè)務(wù)場(chǎng)景需求組合使用這些數(shù)據(jù)分布方式。常見(jiàn)的組合方式有 Range+Hash、List+Hash。

2.3.1.2 StarRocks的數(shù)據(jù)分布方式

StarRocks 支持單獨(dú)和組合使用數(shù)據(jù)分布方式。
說(shuō)明:除了常見(jiàn)的分布方式外, StarRocks 還支持了 Random 分布,可以簡(jiǎn)化分桶設(shè)置。
并且 StarRocks 通過(guò)設(shè)置分區(qū) + 分桶的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)分布。
? 第一層為分區(qū):在一張表中,可以進(jìn)行分區(qū),支持的分區(qū)方式有表達(dá)式分區(qū)、Range 分區(qū)和 List 分區(qū),或者不分區(qū)(即全表只有一個(gè)分區(qū))。
? 第二層為分桶:在一個(gè)分區(qū)中,必須進(jìn)行分桶。支持的分桶方式有哈希分桶和隨機(jī)分桶。
在這里插入圖片描述
在這里插入圖片描述

2.3.1.3 分區(qū)

分區(qū)用于將數(shù)據(jù)劃分成不同的區(qū)間。分區(qū)的主要作用是將一張表按照分區(qū)鍵拆分成不同的管理單元,針對(duì)每一個(gè)管理單元選擇相應(yīng)的存儲(chǔ)策略,比如分桶數(shù)、冷熱策略、存儲(chǔ)介質(zhì)、副本數(shù)等。StarRocks 支持在一個(gè)集群內(nèi)使用多種存儲(chǔ)介質(zhì),可以將新數(shù)據(jù)所在分區(qū)放在 SSD 盤(pán)上,利用 SSD 優(yōu)秀的隨機(jī)讀寫(xiě)性能來(lái)提高查詢(xún)性能,將舊數(shù)據(jù)存放在 SATA 盤(pán)上,以節(jié)省數(shù)據(jù)存儲(chǔ)的成本。
在這里插入圖片描述

選擇分區(qū)列和分區(qū)粒度
? 選擇合理的分區(qū)列可以有效的裁剪查詢(xún)數(shù)據(jù)時(shí)掃描的數(shù)據(jù)量。業(yè)務(wù)系統(tǒng)中?般會(huì)選擇根據(jù)時(shí)間進(jìn)行分區(qū),以?xún)?yōu)化大量刪除過(guò)期數(shù)據(jù)帶來(lái)的性能問(wèn)題,同時(shí)也方便冷熱數(shù)據(jù)分級(jí)存儲(chǔ),此時(shí)可以使用時(shí)間列作為分區(qū)列進(jìn)行表達(dá)式分區(qū)或者 Range 分區(qū)。此外,如果經(jīng)常按照枚舉值查詢(xún)數(shù)據(jù)和管理數(shù)據(jù),則可以選擇枚舉值的列作為分區(qū)列進(jìn)行表達(dá)式分區(qū)或者 List 分區(qū)。
? 選擇分區(qū)單位時(shí)需要綜合考慮數(shù)據(jù)量、查詢(xún)特點(diǎn)、數(shù)據(jù)管理粒度等因素。
? 示例 1:表單月數(shù)據(jù)量很小,可以按月分區(qū),相比于按天分區(qū),可以減少元數(shù)據(jù)數(shù)量,從而減少元數(shù)據(jù)管理和調(diào)度的資源消耗。
? 示例 2:表單月數(shù)據(jù)量很大,而大部分查詢(xún)條件精確到天,如果按天分區(qū),可以做有效的分區(qū)裁剪,減少查詢(xún)掃描的數(shù)據(jù)量。
? 示例 3:數(shù)據(jù)要求按天過(guò)期,可以按天分區(qū)。

2.3.1.4 分桶

一個(gè)分區(qū)按分桶方式被分成了多個(gè)桶 bucket,每個(gè)桶的數(shù)據(jù)稱(chēng)之為一個(gè) tablet。
分桶方式:StarRocks 支持隨機(jī)分桶(自 v3.1)和哈希分桶。
? 隨機(jī)分桶,建表和新增分區(qū)時(shí)無(wú)需設(shè)置分桶鍵。在同一分區(qū)內(nèi),數(shù)據(jù)隨機(jī)分布到不同的分桶中。
? 哈希分桶,建表和新增分區(qū)時(shí)需要指定分桶鍵。在同一分區(qū)內(nèi),數(shù)據(jù)按照分桶鍵劃分分桶后,所有分桶鍵的值相同的行會(huì)唯一分配到對(duì)應(yīng)的一個(gè)分桶。
分桶數(shù)量:默認(rèn)由 StarRocks 自動(dòng)設(shè)置分桶數(shù)量(自 v2.5.7)。同時(shí)也支持手動(dòng)設(shè)置分桶數(shù)量。

2.3.2 創(chuàng)建分區(qū)

按照分區(qū)類(lèi)型可以分為表達(dá)式分區(qū)、Range分區(qū)和List分區(qū)。
按照分區(qū)創(chuàng)建方式可以分為手動(dòng)創(chuàng)建分區(qū)、批量創(chuàng)建分區(qū)和動(dòng)態(tài)分區(qū)。

2.3.2.1 表達(dá)式分區(qū)

自 v3.0 起,StarRocks 支持表達(dá)式分區(qū)(原稱(chēng)自動(dòng)創(chuàng)建分區(qū)),更加靈活易用,適用于大多數(shù)場(chǎng)景,比如按照連續(xù)日期范圍或者枚舉值來(lái)查詢(xún)和管理數(shù)據(jù)。
僅需要在建表時(shí)使用分區(qū)表達(dá)式(時(shí)間函數(shù)表達(dá)式或列表達(dá)式),即可實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)時(shí)自動(dòng)創(chuàng)建分區(qū),不需要預(yù)先創(chuàng)建出分區(qū)或者配置動(dòng)態(tài)分區(qū)屬性。

2.3.2.1.1 時(shí)間函數(shù)表達(dá)式分區(qū)(自v3.1)

如果經(jīng)常按照連續(xù)日期范圍來(lái)查詢(xún)和管理數(shù)據(jù),則只需要在時(shí)間函數(shù)分區(qū)表達(dá)式中,指定一個(gè)日期類(lèi)型(DATE 或者 DATETIME )的分區(qū)列,以及指定分區(qū)粒度(年、月、日或小時(shí))。StarRocks 會(huì)根據(jù)導(dǎo)入的數(shù)據(jù)和分區(qū)表達(dá)式,自動(dòng)創(chuàng)建分區(qū)并且設(shè)置分區(qū)的起止時(shí)間。
不過(guò)在一些特殊場(chǎng)景下,比如歷史數(shù)據(jù)按月劃分分區(qū)、最近數(shù)據(jù)按天劃分分區(qū),則需要采用 Range 分區(qū)創(chuàng)建分區(qū)。
(一)語(yǔ)法

PARTITION BY expression
...
[ PROPERTIES( 'partition_live_number' = 'xxx' ) ]expression ::={ date_trunc ( <time_unit> , <partition_column> ) |time_slice ( <partition_column> , INTERVAL <N> <time_unit> [ , boundary ] ) }

(二)參數(shù)解釋
在這里插入圖片描述
在這里插入圖片描述

注意:StarRocks 自動(dòng)創(chuàng)建分區(qū)數(shù)量上限默認(rèn)為 4096,由 FE 配置參數(shù) max_automatic_partition_number 決定。該參數(shù)可以防止由于誤操作而創(chuàng)建大量分區(qū)。
(三)示例
示例一:
假設(shè)經(jīng)常按天查詢(xún)數(shù)據(jù),則建表時(shí)可以使用分區(qū)表達(dá)式 date_trunc() ,并且設(shè)置分區(qū)列為 event_day ,分區(qū)粒度為 day,實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)時(shí)自動(dòng)按照數(shù)據(jù)所屬日期劃分分區(qū)。將同一天的數(shù)據(jù)存儲(chǔ)在一個(gè)分區(qū)中,利用分區(qū)裁剪可以顯著提高查詢(xún)效率。

CREATE TABLE test.site_express1 (event_day DATETIME NOT NULL,site_id INT DEFAULT '10',city_code VARCHAR(100),user_name VARCHAR(32) DEFAULT '',pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(event_day, site_id, city_code, user_name)
PARTITION BY date_trunc('day', event_day)
DISTRIBUTED BY HASH(event_day, site_id)
PROPERTIES (
"replication_num" = "1"
);

導(dǎo)入如下兩行數(shù)據(jù),則 StarRocks 會(huì)根據(jù)導(dǎo)入數(shù)據(jù)的日期范圍自動(dòng)創(chuàng)建兩個(gè)分區(qū) p20230226、p20230227,范圍分別為 [2023-02-26 00:00:00,2023-02-27 00:00:00)、[2023-02-27 00:00:00,2023-02-28 00:00:00)。如果后續(xù)導(dǎo)入數(shù)據(jù)的日期屬于這兩個(gè)范圍,則都會(huì)自動(dòng)劃分至對(duì)應(yīng)分區(qū)。

-- 導(dǎo)入兩行數(shù)據(jù)
INSERT INTO test.site_access1 VALUES ("2023-02-26 20:12:04",002,"New York","Sam Smith",1),("2023-02-27 21:06:54",001,"Los Angeles","Taylor Swift",1);

查詢(xún)分區(qū)
– 查詢(xún)分區(qū)
SHOW PARTITIONS FROM test.site_express1;

在這里插入圖片描述

示例二:
假設(shè)經(jīng)常按周查詢(xún)數(shù)據(jù),則建表時(shí)可以使用分區(qū)表達(dá)式 time_slice(),設(shè)置分區(qū)列為 event_day,分區(qū)粒度為七天。將一周的數(shù)據(jù)存儲(chǔ)在一個(gè)分區(qū)中,利用分區(qū)裁剪可以顯著提高查詢(xún)效率。

CREATE TABLE test.site_express2(event_day DATETIME NOT NULL,site_id INT DEFAULT '10',city_code VARCHAR(100),user_name VARCHAR(32) DEFAULT '',pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(event_day, site_id, city_code, user_name)
PARTITION BY time_slice(event_day, INTERVAL 7 day)
DISTRIBUTED BY HASH(event_day, site_id)
PROPERTIES (
"replication_num" = "1"
);

導(dǎo)入如下幾行數(shù)據(jù),則 StarRocks 會(huì)根據(jù)導(dǎo)入數(shù)據(jù)的日期范圍自動(dòng)創(chuàng)建兩個(gè)分區(qū) p20230220、p20230227,范圍分別為 [2023-02-20 00:00:00,2023-02-27 00:00:00)、[2023-02-27 00:00:00,2023-03-06 00:00:00)。如果后續(xù)導(dǎo)入數(shù)據(jù)的日期屬于這兩個(gè)范圍,則都會(huì)自動(dòng)劃分至對(duì)應(yīng)分區(qū)。

-- 導(dǎo)入三行數(shù)據(jù)
INSERT INTO test.site_express2VALUES ("2023-02-20 21:06:54",001,"Los Angeles","Taylor Swift",1),("2023-02-26 20:12:04",002,"New York","Sam Smith",1),("2023-02-27 21:06:54",003,"Los Angeles","Taylor Swift",1);
查詢(xún)分區(qū)
SHOW PARTITIONS FROM test.site_express2;
2.3.2.1.2 列表達(dá)式分區(qū)(自v3.1)

如果經(jīng)常按照枚舉值來(lái)查詢(xún)和管理數(shù)據(jù),則只需要指定表示類(lèi)型的列為分區(qū)列,StarRocks 會(huì)根據(jù)導(dǎo)入的數(shù)據(jù)的分區(qū)列值,來(lái)自動(dòng)劃分并創(chuàng)建分區(qū)。同Hive分區(qū)的用法。
不過(guò)在一些特殊場(chǎng)景下,比如表中包含表示城市的列,經(jīng)常按照國(guó)家和城市來(lái)查詢(xún)和管理數(shù)據(jù),希望將同屬于一個(gè)國(guó)家的多個(gè)城市的數(shù)據(jù)存儲(chǔ)在一個(gè)分區(qū)中,則需要使用 List 分區(qū)。
(一)語(yǔ)法

PARTITION BY expression
...
[ PROPERTIES( 'partition_live_number' = 'xxx' ) ]expression ::=( <partition_columns> )partition_columns ::=<column>, [ <column> [,...] ]

(二)參數(shù)解釋
在這里插入圖片描述

(三)使用說(shuō)明
(1)StarRocks 自動(dòng)創(chuàng)建分區(qū)數(shù)量上限默認(rèn)為 4096,由 FE 配置參數(shù) max_automatic_partition_number 決定。該參數(shù)可以防止由于誤操作而創(chuàng)建大量分區(qū)。
(2)分區(qū)命名規(guī)則:如果存在多個(gè)分區(qū)列,則不同分區(qū)列的值以下劃線(xiàn)(_)連接。例如:存在有兩個(gè)分區(qū)列 dt 和 city,均為字符串類(lèi)型,導(dǎo)入一條數(shù)據(jù) 2022-04-01, beijing,則自動(dòng)創(chuàng)建的分區(qū)名稱(chēng)為 p20220401_beijing。
(四)示例
假設(shè)經(jīng)常按日期范圍和特定城市查詢(xún)機(jī)房收費(fèi)明細(xì),則建表時(shí)可以使用分區(qū)表達(dá)式指定分區(qū)列為日期 dt 和城市 city。這樣屬于相同日期和城市的數(shù)據(jù)分組到同一個(gè)分區(qū)中,利用分區(qū)裁剪可以顯著提高查詢(xún)效率。

CREATE TABLE test.recharge_express(id bigint,user_id bigint,recharge_money decimal(32,2), city varchar(20) not null,dt varchar(20) not null
)
DUPLICATE KEY(id)
PARTITION BY (dt,city)
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"replication_num" = "1"
);

導(dǎo)入一條數(shù)據(jù)。

INSERT INTO test.recharge_express 
VALUES (1, 1, 1, 'Houston', '2022-04-01');

查看具體分區(qū)。返回結(jié)果顯示,StarRocks 根據(jù)導(dǎo)入數(shù)據(jù)的分區(qū)列值自動(dòng)創(chuàng)建一個(gè)分區(qū) p20220401_Houston ,如果后續(xù)導(dǎo)入數(shù)據(jù)的分區(qū)列 dt 和 city 的值是 2022-04-01和 Houston,則都會(huì)被劃分至該分區(qū)。
說(shuō)明:分區(qū)中只能包含各分區(qū)列的一個(gè)值,如果需要一個(gè)分區(qū)中包含各分區(qū)列的多值,請(qǐng)使用 List 分區(qū)。
查詢(xún)分區(qū)

SHOW PARTITIONS from test.recharge_express;
2.3.2.2 Range 分區(qū)

Range 分區(qū)適用于簡(jiǎn)單且具有連續(xù)性的數(shù)據(jù),如時(shí)間序列數(shù)據(jù)(日期或時(shí)間戳)或連續(xù)的數(shù)值數(shù)據(jù)。并且經(jīng)常按照連續(xù)日期/數(shù)值范圍,來(lái)查詢(xún)和管理數(shù)據(jù)。以及一些特殊場(chǎng)景,比如一張表的分區(qū)粒度不一致,歷史數(shù)據(jù)需要按月劃分分區(qū),而最近數(shù)據(jù)需要按天劃分分區(qū)。
StarRocks 會(huì)根據(jù)顯式定義的范圍與分區(qū)的映射關(guān)系將數(shù)據(jù)分配到相應(yīng)的分區(qū)中。
示例:

CREATE TABLE test.site_access5(event_day DATE,site_id INT DEFAULT '10',city_code VARCHAR(100),user_name VARCHAR(32) DEFAULT '',pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(event_day, site_id, city_code, user_name)
PARTITION BY RANGE(event_day)(PARTITION p1 VALUES LESS THAN ("2020-01-31"),PARTITION p2 VALUES LESS THAN ("2020-02-29"),PARTITION p3 VALUES LESS THAN ("2020-03-31")
)
DISTRIBUTED BY HASH(site_id)
PROPERTIES (
"replication_num" = "1"
);
2.3.2.3 List分區(qū)

自 v3.1 起,StarRocks 支持 List 分區(qū),數(shù)據(jù)按照顯式定義的枚舉值列表進(jìn)行分區(qū),適用于按枚舉值來(lái)查詢(xún)和管理數(shù)據(jù)。

2.3.2.3.1 功能介紹

需要顯式列出每個(gè) List 分區(qū)所包含的枚舉值列表,并且值不需要連續(xù),區(qū)別于包含連續(xù)日期或者數(shù)值范圍的 Range 分區(qū)。當(dāng)新數(shù)據(jù)導(dǎo)入表中時(shí),StarRocks 會(huì)根據(jù)數(shù)據(jù)的分區(qū)列值與分區(qū)的映射關(guān)系將數(shù)據(jù)分配到相應(yīng)的分區(qū)中。
在這里插入圖片描述

List 分區(qū)適用于存儲(chǔ)具有少量枚舉值列的數(shù)據(jù)、并且經(jīng)常按列的枚舉值來(lái)查詢(xún)和管理數(shù)據(jù)的場(chǎng)景。例如表示地理位置、狀態(tài)、類(lèi)別的列。列的每個(gè)值都代表一種獨(dú)立的類(lèi)別。按照列的枚舉值對(duì)數(shù)據(jù)進(jìn)行分區(qū),可以提高查詢(xún)性能和方便數(shù)據(jù)管理。
尤其適用于一個(gè)分區(qū)中需要包含各分區(qū)列的多個(gè)值的場(chǎng)景。例如表中存在 City 列表示個(gè)體所屬的城市,并且經(jīng)常按照州和城市查詢(xún)和管理數(shù)據(jù),則建表時(shí)可以使用 City 列作為分區(qū)列進(jìn)行 List 分區(qū),指定同屬一個(gè)州的多個(gè)城市的數(shù)據(jù)分在同一分區(qū) PARTITION pCalifornia VALUES IN (“Los Angeles”,“San Francisco”,“San Diego”),可以加速查詢(xún)和方便數(shù)據(jù)管理。

2.3.2.3.2 使用方式
2.3.2.3.2.1 語(yǔ)法
PARTITION BY LIST (partition_columns)(PARTITION <partition_name> VALUES IN (value_list)[, ...]
)partition_columns::= <column> [,<column> [, ...] ]value_list ::=value_item [, value_item [, ...] ]value_item ::={ <value> | ( <value> [, <value>, [, ...] ] ) }    
2.3.2.3.2.2 參數(shù)說(shuō)明

在這里插入圖片描述

2.3.2.3.2.3 示例

示例一
假設(shè)經(jīng)常按照州或城市查詢(xún)機(jī)房收費(fèi)明細(xì),則建表時(shí)可以指定分區(qū)列為城市 city ,并且指定每個(gè)分區(qū)所包含城市同屬一個(gè)州,這樣可以加速查詢(xún)特定州或城市的數(shù)據(jù),并且方便按照特定州或城市進(jìn)行數(shù)據(jù)管理。

CREATE TABLE test.recharge_list(id bigint,user_id bigint,recharge_money decimal(32,2), city varchar(20) not null,dt varchar(20) not null
)
DUPLICATE KEY(id)
PARTITION BY LIST (city) (PARTITION pCalifornia VALUES IN ("Los Angeles","San Francisco","San Diego"), -- 這些城市同屬一個(gè)州PARTITION pTexas VALUES IN ("Houston","Dallas","Austin")
)
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"replication_num" = "1"
);

示例二
假設(shè)經(jīng)常按日期范圍和特定州或城市查詢(xún)機(jī)房收費(fèi)明細(xì),則建表時(shí)可以指定分區(qū)列為日期 dt 和城市 city。這樣屬于特定日期和特定州或城市的數(shù)據(jù)分組到同一個(gè)分區(qū)中,以加速查詢(xún)和方便數(shù)據(jù)管理。

CREATE TABLE test.recharge_list2(id bigint,user_id bigint,recharge_money decimal(32,2), city varchar(20) not null,dt varchar(20) not null
) 
DUPLICATE KEY(id)
PARTITION BY LIST (dt,city) (PARTITION p202204_California VALUES IN (("2022-04-01", "Los Angeles"),("2022-04-01", "San Francisco"),("2022-04-02", "Los Angeles"),("2022-04-02", "San Francisco")),PARTITION p202204_Texas VALUES IN (("2022-04-01", "Houston"),("2022-04-01", "Dallas"),("2022-04-02", "Houston"),("2022-04-02", "Dallas"))
)
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"replication_num" = "1"
);
2.3.2.3.3 使用限制

? 不支持動(dòng)態(tài)和批量創(chuàng)建 List 分區(qū)。
? StarRocks 存算分離模式從 3.1.1 版本開(kāi)始支持該功能。
? 使用 ALTER TABLE <table_name> DROP PARTITION <partition_name>; 分區(qū)直接被刪除并且不能被恢復(fù)。
? List 分區(qū)暫時(shí)不支持備份與恢復(fù)。
? 異步物化視圖暫不支持基于使用 List 分區(qū)的基表創(chuàng)建。

2.3.2.4 手動(dòng)創(chuàng)建分區(qū)

選擇合理的分區(qū)鍵可以有效的裁剪掃描的數(shù)據(jù)量。目前僅支持分區(qū)鍵的數(shù)據(jù)類(lèi)型為日期和整數(shù)類(lèi)型。在實(shí)際業(yè)務(wù)場(chǎng)景中,一般從數(shù)據(jù)管理的角度選擇分區(qū)鍵,常見(jiàn)的分區(qū)鍵為時(shí)間或者區(qū)域。
如上面range分區(qū)創(chuàng)建的test.site_access5

2.3.2.5 批量創(chuàng)建分區(qū)

建表時(shí)和建表后,支持批量創(chuàng)建分區(qū),通過(guò) START、END 指定批量分區(qū)的開(kāi)始和結(jié)束,EVERY 子句指定分區(qū)增量值。其中,批量分區(qū)包含 START 的值,但是不包含 END 的值。分區(qū)的命名規(guī)則同動(dòng)態(tài)分區(qū)一樣。
? 建表時(shí)批量創(chuàng)建日期分區(qū)
當(dāng)分區(qū)鍵為日期類(lèi)型時(shí),建表時(shí)通過(guò) START、END 指定批量分區(qū)的開(kāi)始日期和結(jié)束日期,EVERY 子句指定分區(qū)增量值。并且 EVERY 子句中用 INTERVAL 關(guān)鍵字表示日期間隔,目前支持日期間隔的單位為 HOUR(自 3.0 版本起)、DAY、WEEK、MONTH、YEAR。
如下示例中,批量分區(qū)的開(kāi)始日期為 2021-01-01 和結(jié)束日期為 2021-01-04,增量值為一天:

CREATE TABLE test.site_access6(datekey DATE,site_id INT,city_code SMALLINT,user_name VARCHAR(32),pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(datekey, site_id, city_code, user_name)
PARTITION BY RANGE (datekey) (START ("2021-01-01") END ("2021-01-04") EVERY (INTERVAL 1 DAY)
)
DISTRIBUTED BY HASH(site_id)
PROPERTIES ("replication_num" = "1" 
);

則相當(dāng)于在建表語(yǔ)句中使用如下 PARTITION BY 子句:

PARTITION BY RANGE (datekey) (PARTITION p20210101 VALUES [('2021-01-01'), ('2021-01-02')),PARTITION p20210102 VALUES [('2021-01-02'), ('2021-01-03')),PARTITION p20210103 VALUES [('2021-01-03'), ('2021-01-04'))
)

? 建表時(shí)批量創(chuàng)建不同日期間隔的日期分區(qū)
建表時(shí)批量創(chuàng)建日期分區(qū)時(shí),支持針對(duì)不同的日期分區(qū)區(qū)間(日期分區(qū)區(qū)間不能相重合),使用不同的 EVERY 子句指定日期間隔。一個(gè)日期分區(qū)區(qū)間,按照對(duì)應(yīng) EVERY 子句定義的日期間隔,批量創(chuàng)建分區(qū),例如:

CREATE TABLE test.site_access7(datekey DATE,site_id INT,city_code SMALLINT,user_name VARCHAR(32),pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(datekey, site_id, city_code, user_name)
PARTITION BY RANGE (datekey) (START ("2019-01-01") END ("2021-01-01") EVERY (INTERVAL 1 YEAR),START ("2021-01-01") END ("2021-05-01") EVERY (INTERVAL 1 MONTH),START ("2021-05-01") END ("2021-05-04") EVERY (INTERVAL 1 DAY)
)
DISTRIBUTED BY HASH(site_id)
PROPERTIES ("replication_num" = "1"
);
則相當(dāng)于在建表語(yǔ)句中使用如下 PARTITION BY 子句:
PARTITION BY RANGE (datekey) (PARTITION p2019 VALUES [('2019-01-01'), ('2020-01-01')),PARTITION p2020 VALUES [('2020-01-01'), ('2021-01-01')),PARTITION p202101 VALUES [('2021-01-01'), ('2021-02-01')),PARTITION p202102 VALUES [('2021-02-01'), ('2021-03-01')),PARTITION p202103 VALUES [('2021-03-01'), ('2021-04-01')),PARTITION p202104 VALUES [('2021-04-01'), ('2021-05-01')),PARTITION p20210501 VALUES [('2021-05-01'), ('2021-05-02')),PARTITION p20210502 VALUES [('2021-05-02'), ('2021-05-03')),PARTITION p20210503 VALUES [('2021-05-03'), ('2021-05-04'))
)

? 建表時(shí)批量創(chuàng)建數(shù)字分區(qū)
當(dāng)分區(qū)鍵為整數(shù)類(lèi)型時(shí),建表時(shí)通過(guò) START、END 指定批量分區(qū)的開(kāi)始值和結(jié)束值,EVERY 子句指定分區(qū)增量值。
說(shuō)明:START、END 所指定的分區(qū)列的值需要使用英文引號(hào)包裹,而 EVERY 子句中的分區(qū)增量值不用英文引號(hào)包裹。
如下示例中,批量分區(qū)的開(kāi)始值為 1 和結(jié)束值為 5,分區(qū)增量值為 1:

CREATE TABLE test.site_access8(datekey INT,site_id INT,city_code SMALLINT,user_name VARCHAR(32),pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(datekey, site_id, city_code, user_name)
PARTITION BY RANGE (datekey) (START ("1") END ("5") EVERY (1)
)
DISTRIBUTED BY HASH(site_id)
PROPERTIES ("replication_num" = "1"
);
則相當(dāng)于在建表語(yǔ)句中使用如下 PARTITION BY 子句:
PARTITION BY RANGE (datekey) (PARTITION p1 VALUES [("1"), ("2")),PARTITION p2 VALUES [("2"), ("3")),PARTITION p3 VALUES [("3"), ("4")),PARTITION p4 VALUES [("4"), ("5"))
)

? 建表后批量創(chuàng)建分區(qū)
建表后,支持通過(guò)ALTER TABLE 語(yǔ)句批量創(chuàng)建分區(qū)。相關(guān)語(yǔ)法與建表時(shí)批量創(chuàng)建分區(qū)類(lèi)似,通過(guò)指定 ADD PARTITIONS 關(guān)鍵字,以及 START、END 以及 EVERY 子句來(lái)批量創(chuàng)建分區(qū)。示例如下:
ALTER TABLE test.site_access8
ADD PARTITIONS START (“5”) END (“9”) EVERY (2);

2.3.2.6 動(dòng)態(tài)分區(qū)

建表時(shí)配置動(dòng)態(tài)分區(qū)屬性,StarRocks 會(huì)?動(dòng)提前創(chuàng)建新的分區(qū),刪除過(guò)期分區(qū),從而確保數(shù)據(jù)的時(shí)效性,實(shí)現(xiàn)對(duì)分區(qū)的?命周期管理(Time to Life,簡(jiǎn)稱(chēng) “TTL”)。
區(qū)別于表達(dá)式分區(qū)中自動(dòng)創(chuàng)建分區(qū)功能,動(dòng)態(tài)創(chuàng)建分區(qū)只是根據(jù)配置的動(dòng)態(tài)分區(qū)屬性,定期提前創(chuàng)建一些分區(qū)。如果導(dǎo)入的新數(shù)據(jù)不屬于這些提前創(chuàng)建的分區(qū),則導(dǎo)入任務(wù)會(huì)報(bào)錯(cuò)。而表達(dá)式分區(qū)中自動(dòng)創(chuàng)建分區(qū)功能會(huì)根據(jù)導(dǎo)入數(shù)據(jù)創(chuàng)建對(duì)應(yīng)的新分區(qū)。
如下示例,創(chuàng)建一張支持動(dòng)態(tài)分區(qū)的表,表名為 site_access,動(dòng)態(tài)分區(qū)通過(guò) PROPERTIES 進(jìn)行配置。分區(qū)的區(qū)間為當(dāng)前時(shí)間的前后 3 天,總共 6 天。手動(dòng)創(chuàng)建的4個(gè)分區(qū)p20200321~p20200324,因?yàn)檫^(guò)期會(huì)被刪除。
注意:starrocks 的EMR Serverless StarRocks版本默認(rèn) dynamic_partition_enable 為true,所以不需要再手動(dòng)設(shè)置。

CREATE TABLE test.site_access_dynamic(event_day DATE,site_id INT DEFAULT '10',city_code VARCHAR(100),user_name VARCHAR(32) DEFAULT '',pv BIGINT DEFAULT '0'
)
DUPLICATE KEY(event_day, site_id, city_code, user_name)
PARTITION BY RANGE(event_day)(
PARTITION p20200321 VALUES LESS THAN ("2020-03-22"),
PARTITION p20200322 VALUES LESS THAN ("2020-03-23"),
PARTITION p20200323 VALUES LESS THAN ("2020-03-24"),
PARTITION p20200324 VALUES LESS THAN ("2020-03-25")
)
DISTRIBUTED BY HASH(event_day, site_id)
PROPERTIES("dynamic_partition.time_unit" = "DAY","dynamic_partition.start" = "-3","dynamic_partition.end" = "3","dynamic_partition.prefix" = "p","dynamic_partition.history_partition_num" = "3","replication_num" = "1"
);

在這里插入圖片描述

動(dòng)態(tài)分區(qū)相關(guān)屬性 PROPERTIES:
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述
動(dòng)態(tài)分區(qū)相關(guān) FE 配置項(xiàng):
dynamic_partition_check_interval_seconds:FE 配置項(xiàng),動(dòng)態(tài)分區(qū)檢查的時(shí)間周期,默認(rèn)為 600,單位為 s,即每10分鐘檢查一次分區(qū)情況是否滿(mǎn)足PROPERTIES中動(dòng)態(tài)分區(qū)屬性,如不滿(mǎn)足,則會(huì)自動(dòng)創(chuàng)建和刪除分區(qū)。

http://m.aloenet.com.cn/news/33140.html

相關(guān)文章:

  • 網(wǎng)站建設(shè) 大公司小公司軟文發(fā)布軟件
  • 做網(wǎng)站怎樣賺賣(mài)流量中國(guó)國(guó)家培訓(xùn)網(wǎng)正規(guī)嗎
  • 東莞做網(wǎng)站的公司有哪些谷歌網(wǎng)址
  • 個(gè)體戶(hù)做網(wǎng)站有優(yōu)勢(shì)嗎google谷歌搜索主頁(yè)
  • 網(wǎng)站建設(shè)方面的優(yōu)劣勢(shì)分析上海網(wǎng)絡(luò)營(yíng)銷(xiāo)
  • 波波網(wǎng)站建設(shè)域名查詢(xún)網(wǎng)
  • 圖片瀑布流網(wǎng)站鄭州百度網(wǎng)站優(yōu)化排名
  • 怎樣用linux做網(wǎng)站微信廣告投放推廣平臺(tái)
  • 工藝品網(wǎng)站怎么做提高網(wǎng)站排名
  • 沈陽(yáng)網(wǎng)站制作費(fèi)用中國(guó)搜索
  • wordpress適合電影網(wǎng)站的模板剛開(kāi)的店鋪怎么做推廣
  • php 網(wǎng)站301怎么優(yōu)化自己公司的網(wǎng)站
  • 政府網(wǎng)站建設(shè)需求調(diào)查表網(wǎng)站推廣方法大全
  • 個(gè)人網(wǎng)站備案可以盈利嗎阻斷艾滋病的藥有哪些
  • 南昌網(wǎng)站建設(shè)公務(wù)網(wǎng)絡(luò)營(yíng)銷(xiāo)策略都有哪些
  • 方案 網(wǎng)站建設(shè)快手seo軟件下載
  • 織夢(mèng)網(wǎng)站問(wèn)題班級(jí)優(yōu)化大師怎么加入班級(jí)
  • 電商加盟上海搜索引擎關(guān)鍵詞優(yōu)化
  • 做美食的網(wǎng)站有那一些韓國(guó)網(wǎng)站
  • ip動(dòng)態(tài)地址做網(wǎng)站網(wǎng)站seo站長(zhǎng)工具
  • 第一家做誘惑的網(wǎng)站廈門(mén)seo優(yōu)化
  • 貴州潤(rùn)鐵祥建設(shè)工程有限公司網(wǎng)站外包公司軟件開(kāi)發(fā)
  • 杭州江干區(qū)抖音seo哪里有五年級(jí)上冊(cè)語(yǔ)文優(yōu)化設(shè)計(jì)答案
  • 電子商務(wù)網(wǎng)站的作用seo排名第一的企業(yè)
  • win7iis部署asp.net網(wǎng)站媒體營(yíng)銷(xiāo)平臺(tái)
  • 企業(yè)網(wǎng)站營(yíng)銷(xiāo)優(yōu)缺點(diǎn)百度推廣平臺(tái)
  • 做網(wǎng)站費(fèi)用會(huì)計(jì)分錄百度貼吧網(wǎng)頁(yè)版登錄入口
  • 視頻網(wǎng)站 如何做seo專(zhuān)業(yè)seo公司
  • 什么網(wǎng)站可以做醫(yī)療設(shè)備的十大少兒編程教育品牌
  • 做家裝的設(shè)計(jì)公司網(wǎng)站seo廣告優(yōu)化