Apache Doris 资源隔离详解
一、简述
主要是对于BE节点而言
Doris 的多租户和资源隔离方案,主要目的是为了多用户在同一 Doris 集群内进行数据操作时,减少相互之间的干扰,能够将集群资源更合理的分配给各用户。
二、测试体验
2.1 BE节点设置标签
注:一个 BE 只支持设置一个 Tag。
一个 Doris 集群内的 BE 节点可以设置标签(Tag),标签相同的 BE 节点组成一个资源组(Resource Group);资源组可以看作是数据存储和计算的一个管理单元。
2.1.1 分组前
2.1.2 开始分组
-- 3个节点划分成2个资源组 alter system modify backend "be01:9050" set ("tag.location" = "group_a"); alter system modify backend "be02:9050" set ("tag.location" = "group_b"); alter system modify backend "be03:9050" set ("tag.location" = "group_c");
2.1.3 分组后
2.2 根据资源组分布数据
资源组划分好后,可以将用户数据的不同副本分布在不同资源组内。
2.2.1 创建测试表
-- 以SQL99其中一张维表为例,每个资源组放一个副本 create table tpcds.catalog_returns_duplicate ( cr_item_sk integer not null, cr_order_number integer not null, cr_returned_date_sk integer , cr_returned_time_sk integer , cr_ship_date_sk integer , cr_refunded_customer_sk integer , cr_refunded_cdemo_sk integer , cr_refunded_hdemo_sk integer , cr_refunded_addr_sk integer , cr_returning_customer_sk integer , cr_returning_cdemo_sk integer , cr_returning_hdemo_sk integer , cr_returning_addr_sk integer , cr_call_center_sk integer , cr_catalog_page_sk integer , cr_ship_mode_sk integer , cr_warehouse_sk integer ,-- cr_reason_sk integer , cr_return_quantity integer , cr_return_amount decimal(7,2) , cr_return_tax decimal(7,2) , cr_return_amt_inc_tax decimal(7,2) , cr_fee decimal(7,2) , cr_return_ship_cost decimal(7,2) , cr_refunded_cash decimal(7,2) , cr_reversed_charge decimal(7,2) , cr_store_credit decimal(7,2) , cr_net_loss decimal(7,2) )ENGINE=olap DUPLICATE KEY(`cr_item_sk`,`cr_order_number`) DISTRIBUTED BY HASH(`cr_item_sk`,`cr_order_number`) BUCKETS 10 PROPERTIES("replication_allocation" = "tag.location.group_a:1, tag.location.group_b:1, tag.location.group_c:1");