文档首页/ 表格存储服务 CloudTable/ 快速入门/ 快速创建StarRocks集群并进行实时数据分析
更新时间:2025-07-16 GMT+08:00
分享

快速创建StarRocks集群并进行实时数据分析

StarRocks是新一代极速全场景MPP(Massively Parallel Processing)数据库。StarRocks的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用StarRocks来支持多种数据分析场景的极速分析。

操作场景

假设某电商平台,需要实时分析用户订单行为,包括:

  • 记录用户订单数据(用户ID、订单时间、金额、商品类别)。
  • 快速查询特定时间段内的订单金额、热门商品类别。
    表1 原始数据

    user_id

    order_time

    amount

    category

    101

    2025-02-15 10:00:00

    50.99

    Electronics

    102

    2025-02-18 10:30:00

    99.99

    Clothing

    103

    2025-02-28 17:30:06

    159.99

    Cosmetics

    104

    2025-02-17 19:30:06

    20.00

    Shoes

    105

    2025-01-01 11:30:06

    99.00

    Drinks

    106

    2025-01-20 19:30:06

    199.00

    Furniture

    107

    2025-01-03 09:30:06

    50.99

    Kitchen

准备工作

步骤一:购买StarRocks集群

  1. 登录表格存储服务控制台。
  2. 控制台左上角选择区域。
  3. 单击“集群管理”进入集群管理界面。
  4. 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数(安全组规则配置端口请参见StarRocks安全规则组)。
  5. 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
  6. 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功。
    表2 StarRocks安全规则组

    方向

    策略

    协议端口/范围

    类型

    目的/源地址

    用途

    出方向

    允许

    全部

    IPv4/IPv6

    0.0.0.0/0

    出方向放行。

    入方向

    允许

    9030

    StarRocks集群所在的安全组。

    FE上的mysql server端口。

    允许

    8030

    FE上的http server端口。

    允许

    8040

    BE上的http server的端口。

    允许

    8050

    FE上的https server端口

步骤二:准备弹性云服务

  1. 购买弹性云服务器,登录ECS控制台。
  2. 控制台左上角选择区域。
  3. 单击左侧的服务列表,选择“计算 > 弹性云服务器 ECS”,进入弹性云服务器管理界面。
  4. 单击页面右上角“购买弹性云服务器”,进入配置界面。
  5. 配置弹性云服务器参数:基础配置、实例、操作系统、存储备份、网络、安全组、公网访问、云服务器管理、高级配置、购买量。
  6. 参数配置后,勾选“协议”并单击“立即购买”。ECS创建成功后会默认开机。

    具体请参见弹性云服务“自定义购买ECS”章节。

步骤三:添加安全组

在ECS安全组中添加本地主机的IP地址。
  1. 获取本地主机IP,按键盘中“win+R”,弹出运行界面。
  2. 在输入框中输入“cmd”,单击“确定”,进入cmd运行窗口,
  3. 在命令窗口输入“ipconfig”,单击“回车”,查询本机IP。
  4. 登录ECS服务控制台。
  5. 进入“弹性云服务器 ”列表页面,单击“弹性云服务名称 > 基本信息 > 安全组名称 > 入方向规则”,进入入方向规则页面。
  6. 单击页面右上角的“添加规则”,弹出“添加入方向规则”页面。
  7. 源地址中填写步骤3中获取的本地IP地址。单击“确定”安全组添加完成。

步骤四:手动安装MySQL客户端

  1. 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。
  2. 进入SSH工具的根目录。

    cd /

  3. 在根目录中新建一个文件夹。

    mkdir 文件夹名

  4. 登录后执行以下命令解压安装包。

    cd <客户端安装包存放路径>
    tar -xzvf 客户端压缩包名

    “<客户端安装包存放路径>”请替换为实际的客户端存放路径。

  5. 进入bin目录。

    cd mysql-5.7.22-linux-glibc2.12-x86_64/bin/

  6. 然后执行下面的命令连接StarRocks集群。

    ./mysql -uadmin -ppassword -h集群内网地址 -P9030
    • 集群内网地址:集群详情页面中集群访问地址,这里替换成您自己购买的集群的访问地址(FE节点的访问地址,都可以访问集群)。
    • password为您购买集群时设置的密码,如果有特殊符号,特殊符号前面需要\进行转义,如果密码整体用单引号括起来,则特殊字符不需要转义。
    • 端口:FE上的mysql server端口。

步骤五:在MySQL客户端创建数据表进行数据分析

  1. 创建数据库。

    CREATE DATABASE ecommerce;

  2. 使用数据库。

    USE ecommerce;

  3. 创建订单表user_orders(按天分区,按用户ID分桶)。

    CREATE TABLE user_orders (
        user_id BIGINT,
        order_time DATETIME,
        amount DECIMAL(10,2),
        category VARCHAR(50)
    )
    PARTITION BY RANGE(order_time) (
        PARTITION p202301 VALUES LESS THAN ('2025-02-01'),
        PARTITION p202302 VALUES LESS THAN ('2025-03-01')
    )
    DISTRIBUTED BY HASH(user_id) BUCKETS 8;

  4. 插入数据。

    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('101','2025-02-15 10:00:00','50.99','Electronics');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('102','2025-02-18 10:30:00','99.99','clothing');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('103','2025-02-28 17:30:06','159.99','Cosmetics');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('104','2025-02-17 19:30:06','20.00','Shoes');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('105','2025-01-01 11:30:06','99.00','Drinks');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('106','2025-01-20 19:30:06','199.00','Furniture');
    INSERT INTO user_orders (user_id,order_time,amount,category) VALUES('107','2025-01-03 09:30:06','150.99','Kitchen');

  5. 简单聚合查询2月订单总金额。

    SELECT 
        DATE(order_time) AS day,
        SUM(amount) AS total_amount,
        category
    FROM user_orders
    WHERE order_time >= '2025-02-01'
    GROUP BY day, category
    ORDER BY total_amount DESC;

    结果示例:

    +------------+--------------+-------------+
    | day        | total_amount | category    |
    +------------+--------------+-------------+
    | 2025-02-28 |       159.99 | Cosmetics   |
    | 2025-02-18 |        99.99 | clothing    |
    | 2025-02-15 |        50.99 | Electronics |
    | 2025-02-17 |        20.00 | Shoes       |
    +------------+--------------+-------------+
    4 rows in set (0.16 sec)

相关文档