中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

哪里網(wǎng)站用vue.js做的網(wǎng)站排名查詢平臺

哪里網(wǎng)站用vue.js做的,網(wǎng)站排名查詢平臺,qq推廣加好友,做公司做網(wǎng)站有用嗎文章目錄 前言2.3 數(shù)據(jù)分布2.3.1 數(shù)據(jù)分布概覽2.3.1.1 常見的數(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ù)表達(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 常見的數(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ù)表達(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 語法
            • 2.3.2.3.2.2 參數(shù)說明
            • 2.3.2.3.2.3 示例
          • 2.3.2.3.3 使用限制
        • 2.3.2.4 手動創(chuàng)建分區(qū)
        • 2.3.2.5 批量創(chuàng)建分區(qū)
        • 2.3.2.6 動態(tài)分區(qū)


前言

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

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

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

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

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

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

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

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

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

2.3.1.3 分區(qū)

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

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

2.3.1.4 分桶

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

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

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

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

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

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

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

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

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 會根據(jù)導(dǎo)入數(shù)據(jù)的日期范圍自動創(chuàng)建兩個分區(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ù)的日期屬于這兩個范圍,則都會自動劃分至對應(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);

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

在這里插入圖片描述

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

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 會根據(jù)導(dǎo)入數(shù)據(jù)的日期范圍自動創(chuàng)建兩個分區(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ù)的日期屬于這兩個范圍,則都會自動劃分至對應(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);
查詢分區(qū)
SHOW PARTITIONS FROM test.site_express2;
2.3.2.1.2 列表達(dá)式分區(qū)(自v3.1)

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

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

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

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

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ū)列值自動創(chuàng)建一個分區(qū) p20220401_Houston ,如果后續(xù)導(dǎo)入數(shù)據(jù)的分區(qū)列 dt 和 city 的值是 2022-04-01和 Houston,則都會被劃分至該分區(qū)。
說明:分區(qū)中只能包含各分區(qū)列的一個值,如果需要一個分區(qū)中包含各分區(qū)列的多值,請使用 List 分區(qū)。
查詢分區(qū)

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

Range 分區(qū)適用于簡單且具有連續(xù)性的數(shù)據(jù),如時間序列數(shù)據(jù)(日期或時間戳)或連續(xù)的數(shù)值數(shù)據(jù)。并且經(jīng)常按照連續(xù)日期/數(shù)值范圍,來查詢和管理數(shù)據(jù)。以及一些特殊場景,比如一張表的分區(qū)粒度不一致,歷史數(shù)據(jù)需要按月劃分分區(qū),而最近數(shù)據(jù)需要按天劃分分區(qū)。
StarRocks 會根據(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ū),適用于按枚舉值來查詢和管理數(shù)據(jù)。

2.3.2.3.1 功能介紹

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

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

2.3.2.3.2 使用方式
2.3.2.3.2.1 語法
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ù)說明

在這里插入圖片描述

2.3.2.3.2.3 示例

示例一
假設(shè)經(jīng)常按照州或城市查詢機(jī)房收費(fèi)明細(xì),則建表時可以指定分區(qū)列為城市 city ,并且指定每個分區(qū)所包含城市同屬一個州,這樣可以加速查詢特定州或城市的數(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"), -- 這些城市同屬一個州PARTITION pTexas VALUES IN ("Houston","Dallas","Austin")
)
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"replication_num" = "1"
);

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

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

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

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

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

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

? 建表時批量創(chuàng)建不同日期間隔的日期分區(qū)
建表時批量創(chuàng)建日期分區(qū)時,支持針對不同的日期分區(qū)區(qū)間(日期分區(qū)區(qū)間不能相重合),使用不同的 EVERY 子句指定日期間隔。一個日期分區(qū)區(qū)間,按照對應(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)于在建表語句中使用如下 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'))
)

? 建表時批量創(chuàng)建數(shù)字分區(qū)
當(dāng)分區(qū)鍵為整數(shù)類型時,建表時通過 START、END 指定批量分區(qū)的開始值和結(jié)束值,EVERY 子句指定分區(qū)增量值。
說明:START、END 所指定的分區(qū)列的值需要使用英文引號包裹,而 EVERY 子句中的分區(qū)增量值不用英文引號包裹。
如下示例中,批量分區(qū)的開始值為 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)于在建表語句中使用如下 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ū)
建表后,支持通過ALTER TABLE 語句批量創(chuàng)建分區(qū)。相關(guān)語法與建表時批量創(chuàng)建分區(qū)類似,通過指定 ADD PARTITIONS 關(guān)鍵字,以及 START、END 以及 EVERY 子句來批量創(chuàng)建分區(qū)。示例如下:
ALTER TABLE test.site_access8
ADD PARTITIONS START (“5”) END (“9”) EVERY (2);

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

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

在這里插入圖片描述

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

http://m.risenshineclean.com/news/33140.html

相關(guān)文章:

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