日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

計算組(Warehouse)使用說明

本文為您介紹在StarRocks中如何使用指定的計算組

前提條件

已創建StarRocks 3.3及以上的存算分離版實例,詳情請參見創建實例

注意事項

目前所有的動態分區的創建、Compaction、Schema Change操作、MV刷新、統計信息收集等異步任務默認都是在default_warehouse中進行的。所以為了保證性能和流暢的用戶使用體驗,建議default_warehouse下至少配置3個計算節點。

查看所有Warehouse信息

SHOW WAREHOUSES [LIKE '<pattern>'];

Query、Load等操作使用指定計算組

說明

如果沒有明確指定Warehouse,所有的操作都默認在內置的default_warehouse中執行。

Query操作使用指定計算組

Query只支持通過setVar方式或在當前Session中手動切換Warehouse來指定使用的Warehouse。

  • setVar方式指定

    以指定Warehouse為test為例,/*+SET_VAR(warehouse="test")*/為固定寫法,非注釋內容。語法如下:

    SELECT /*+SET_VAR(warehouse="test")*/ * FROM my_db.my_table;
  • 在當前Session中手動切換

    1. 指定使用某個Warehouse。

      SET [session] warehouse [=] <warehouse_name>;

      其中,session=可寫可不寫,不影響語義。

    2. 查看當前使用的Warehouse。

      SHOW variables LIKE "%warehouse%";

      指定的Warehouse只在當前Session中生效。不明確指定則使用default_warehouse。Compaction、異步物化視圖刷新、統計信息等異步任務都使用default_warehouse

    3. 執行Query或其他SQL。

      SELECT * FROM my_db.my_table;

Load操作使用指定計算組

  • Stream Load使用指定計算組

    將Warehouse信息添加到HTTP請求的Header中。例如:

    curl --location-trusted -u <username>:<password> \
        -H "label:<label_name>"  -H "timeout:100" -H "max_filter_ratio:1" \
        -H "warehouse:<warehouse_name>" \
        -T example1.csv \
        -XPUT http://<fe_host>:<fe_http_port>/api/<database_name>/<table_name>/_stream_load

    參數說明如下表所述。

    參數名稱

    是否必須

    參數說明

    username:password

    用于指定StarRocks集群賬號的用戶名和密碼。如果賬號沒有設置密碼,這里只需要傳入<username>:,如:root:

    label

    用于指定導入作業的標簽。如果您不指定標簽,StarRocks會自動為導入作業生成一個標簽。相同標簽的數據無法多次成功導入,這樣可以避免一份數據重復導入。

    timeout

    用于導入作業的超時時間。取值范圍:1~259200。單位:秒。

    max_filter_ratio

    用于指定導入作業的最大容錯率,即導入作業能夠容忍的因數據質量不合格而過濾掉的數據行所占的最大比例。取值范圍:0~1。

    warehouse

    用于指定Stream Load使用的Warehouse。

    fe_host

    用于指定StarRocks集群中FE的內網地址。可在StarRocks集群的實例詳情中查看FE內網地址。

    說明

    如果您直接提交導入作業給某一個BE(或CN)節點,則需要傳入該BE(或CN)的IP地址。

    fe_http_port

    指定StarRocks集群中FE的HTTP端口號。默認端口號為8030。

    說明

    如果您直接提交導入作業給某一指定的BE(或CN)節點,則需要傳入該BE(或CN)的HTTP端口號。默認端口號為8040。

    database_name

    指定目標StarRocks表所在的數據庫的名稱。

    table_name

    指定目標StarRocks表的名稱。

  • 表事務導入使用指定計算組

    在調用/api/transaction/begin接口開啟事務時,您必須指定標簽Label,并將Warehouse信息添加到HTTP請求的Header中。語法如下:

    curl --location-trusted -u <username>:<password> \
        -H "label:<label_name>" \
        -H "db:<database_name>" \
        -H "table:<table_name>" \
        -H "warehouse::<warehouse_name>" \
        -XPOST http://<fe_host>:<fe_http_port>/api/transaction/begin

    之后,在使用/api/transaction/load/api/transaction/prepare/api/transaction/commit接口時,必須使用與/api/transaction/begin接口相同的標簽,但不需要在HTTP請求的Header中再次指定warehouse信息。

  • Broker Load使用指定計算組

    LOAD LABEL [<database_name>.]<label_name>
    (
        data_desc[, data_desc ...]
    )
    WITH BROKER
    (
        StorageCredentialParams
    )
    [PROPERTIES
    (
        opt_properties
    )
    ]

    創建導入任務的語句中opt_properties新增 "warehouse" 參數,默認值為當前Session的Warehouse。例如:

    LOAD LABEL my_db.path_extra_fields_label
    (
      DATA INFILE( "hdfs://<hdfs_ip>:9000/starrocks_test_data/hdfs_data/*.orc")
      INTO TABLE `my_tbl` 
      FORMAT AS "orc" 
    )  
    WITH BROKER hdfs_broker 
    (
      "hadoop.security.authentication" = "simple",
      "username" = "<hdfs_username>",
      "password" = "<hdfs_password>"
    ) 
     PROPERTIES
    (
      "warehouse"="test"
    );
  • Routine load使用指定計算組

    job_properties新增 "warehouse" 參數,默認值為當前Session的Warehouse。

    CREATE ROUTINE LOAD <database_name>.<job_name> ON <table_name>
    [load_properties]
    [job_properties]
    FROM data_source
    [data_source_properties]

    使用Routine Load指定名為test的Warehouse,通過持續消費Kafka中的消息并導入至StarRocks中,示例如下。

    CREATE ROUTINE LOAD my_db.routine_load_basic_types_xxx 
    ON my_table
    COLUMNS (k1,k2,k3,k4,k5,k6,v1,v2,v3,v4,v5,v6,v7,v8), 
    COLUMNS TERMINATED BY ',',where v1 != 0 
    PROPERTIES (
        "desired_concurrent_number"="1",
        "max_error_number"="1000",
        "max_batch_interval"="7",
        "warehouse"="test"
    )
    FROM KAFKA (
        "kafka_broker_list"="<kafka_broker_ip>:<kafka_broker_port>",
        "kafka_topic"="xxx",
        "kafka_partitions"="0",
        "kafka_offsets"="OFFSET_BEGINNING"
    );

物化視圖使用指定計算組

CREATE MATERIALIZED VIEW語句中PROPERTIES新增 "warehouse"參數,默認值為當前Session的Warehouse。語法如下:

CREATE MATERIALIZED VIEW [IF NOT EXISTS] [database_name.]<mv_name>
[COMMENT ""]
[PROPERTIES ("key"="value", ...)]
AS 
<query_statement>

例如:要創建一個名為order_mv的物化視圖,指定后續改寫操作都在名為test的Warehouse中運行,創建語句如下:

CREATE MATERIALIZED VIEW order_mv
DISTRIBUTED BY HASH(`order_id`)
REFRESH ASYNC EVERY (interval 1 MINUTE) 
PROPERTIES ("warehouse" = "test")
AS SELECT 
    order_list.order_id,
    sum(goods.price) as total
FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2
GROUP BY order_id;

執行成功后,可以用以下兩種方式查看Warehouse信息。fe.audit.log中也會記錄物化視圖改寫語句的執行情況,其中包含了Warehouse字段。

  • 方式一:執行以下命令,查詢名為 "order_mv" 的物化視圖的詳細信息。

    SHOW materilized views WHERE name="order_mv";
  • 方式二:執行以下命令,查看創建物化視圖 "order_mv" 的完整SQL語句。

    SHOW CREATE materilized VIEW order_mv;

Compaction使用指定計算組

Compaction默認是在default_warehouse中執行的。如果想要指定其他Warehouse,可通過修改配置項lake_compaction_warehouse實現。支持在Session中動態修改和在fe.conf中修改后重啟兩種方式。

例如,想要指定名為test的Warehouse做Compaction。

  • 方式一:您可以通過ADMIN SET FRONTEND CONFIG命令在線修改FE動態參數。

    ADMIN SET FRONTEND CONFIG ("lake_compaction_warehouse" = "test");
  • 方式二:在fe.conf中寫入lake_compaction_warehouse = test;后重啟FE以使修改生效。

修改后可通過show proc '/compactions' ;查看最近的Compaction記錄,最后一列是Warehouse信息。

JDBC連接使用指定計算組

語法如下:

jdbc.url=jdbc:mysql://<mysql_host>:3306/dbName?sessionVariables=warehouse=<warehouse_name>

Superset連接使用指定計算組

參考支持 Superset | StarRocks安裝starrocks-sqlalchemy,使用init_command設置對應的Warehouse。

starrocks://<username>:<password>@<host>:<port>/<database_name>?init_command=set warehouse = <warehouse_name> 

權限相關

您可以通過GRANT操作對用戶和角色進行授權。語法如下:

GRANT  
    { USAGE } 
    ON { WAREHOUSE <warehouse_name> [, <warehouse_name>,...] | ALL WAREHOUSE } 
    TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]

權限

用途

USAGE

使用指定的Warehouse。

擁有Warehouse的Usage權限,默認也具備Show權限。

示例:已有用戶名為user1,為其賦予USAGE權限。

GRANT USAGE ON warehouse waa TO user1;

更多權限相關操作,請參見管理用戶權限