You need to enable JavaScript to run this app.
导航
EMR StarRocks
最近更新时间:2024.11.01 16:27:19首次发布时间:2023.07.19 15:30:27

1 概述

火山引擎 E-MapReduce(EMR)StarRocks 是新一代极速全场景 MPP 型数据库。StarRocks 的愿景是能够让您的数据分析变得更加简单和敏捷。您无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。
使用 EMR StarRocks,您可以灵活构建包括大宽表、星型模型、雪花模型在内的各类模型,兼容 MySQL 协议,支持标准 SQL 语法,便于您对接使用。
本文将为您介绍通过 DataLeap 创建 EMR StarRocks 节点,使用 SQL 语句,周期性的在 StarRocks 集群中进行数据加工、查询、分析等操作。

2 使用前提

  1. 若仅开通 DataLeap 版本中湖仓一体的服务,项目不支持绑定 EMR 引擎。详见版本服务说明
  2. 已创建 EMR-3.2.1 及以上的 StarRocks 集群类型版本。详见创建集群
  3. Dataleap 项目控制台中需绑定创建的 EMR StarRocks 集群,首次绑定集群时,会提示在 EMR 集群关联的安全组中添加 8898 和 9030 端口,您单击确定按钮即可实现自动添加。添加后,为确保能在 DataLeap 上正常进行数据开发和执行任务,需保证相关端口一直存在于安全组中,不要删除。
    Image
    详见创建项目

3 新建任务

任务配置步骤如下:

  1. 登录 DataLeap租户控制台
  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。
  3. 任务开发界面,左侧导航栏中,单击新建任务按钮,进入新建任务页面。
  4. 选择任务类型:
    1. 分类:数据开发
    2. 绑定引擎:EMR
    3. 关联实例:在下拉列表中选择项目绑定时的 StarRocks 引擎实例,项目支持绑定多个 EMR 引擎,您可在多个引擎实例中选取该任务需执行的引擎实例。多引擎绑定详见创建项目
    4. 选择任务:离线数据 EMR StarRocks SQL
  5. 填写任务基本信息:
    1. 任务名称:输入任务的名称,只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。
    2. 保存至: 选择任务存放的目标文件夹目录。
  6. 单击确认按钮,成功创建任务。

Image

4 配置任务

任务创建成功后,进入到 EMR StarRocks 任务配置界面,在配置界面中您可按需编写 StarRocks 支持的 SQL 语法。

4.1 编辑任务

在代码编辑器界面,输入对应 EMR StarRocks SQL 语句,示例如下:

说明

  • 在一个 EMR StarRocks 节点中,目前仅支持同时提交一个 Query。
  • EMR StarRocks 集群若开启安全模式
    • 子用户执行 SQL 语句时,需确保有相应的 StarRocks 库表权限。
    • 子用户通过 SQL 语句创建表后,数据地图中展现的表责任人为主账号信息。您可以通过数据地图> Table 管理中的移交操作,将表责任人转交,在 T+1 天后,数据安全会给责任人授予相应的表权限。转交操作详见管理 EMR StarRocks 表
    • 您也可以通过数据安全-我的权限模块,主动进行库表权限申请操作,以快速获取库表的权限。
      开启安全模式操作详见绑定 EMR StarRocks 集群,子用户申请库表权限详见申请权限
--创建 StarRocks 数据库;
CREATE DATABASE IF NOT EXISTS emr_sr_x; 

--创建数据表
DROP TABLE IF EXISTS emr_sr_x.sr_test_table;
CREATE TABLE IF NOT EXISTS emr_sr_x.sr_test_table
(
    event_day DATE,
    siteid INT DEFAULT '10',
    city VARCHAR(32) DEFAULT '',
    username VARCHAR(32) DEFAULT '',
    pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(event_day, siteid, city, username)
PARTITION BY RANGE(event_day)
(
    PARTITION p201706 VALUES LESS THAN ('2020-07-01'),
    PARTITION p201707 VALUES LESS THAN ('2020-08-01'),
    PARTITION p201708 VALUES LESS THAN ('2020-09-01')
)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1");

--清空表中历史数据
TRUNCATE TABLE emr_sr_x.sr_test_table;

--插入新数据
insert into emr_sr_x.sr_test_table VALUES ('2020-07-11',27,'天津市丽县', '张三',1669);

--查询 StarRocks 表中数据
SELECT * FROM emr_sr_x.sr_test_table;

4.2 导航栏功能区解析

Image

功能名称

描述

格式化

依据在个性化设置中的 SQL 格式化风格的设置,格式化编辑完成的代码,使其语法结构看起来简洁明了。

解析

解析检查书写的 SQL 代码的语法和语义正确性,运行前检查语法错误信息,防止运行出错。

执行引擎

支持 StarRocks 执行引擎。

4.3 调度设置

任务配置完成后,在右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置基本信息、调度属性、依赖等信息,详细参数设置详见:调度设置

4.3.1 任务产出数据登记

任务产出数据登记,用于记录任务、数据血缘信息,并不会对代码逻辑造成影响。您可在调度设置 > 任务产出数据登记一栏中,设置产出登记相关信息。
对于系统无法通过解析获取产出信息的其他任务,EMR StarRocks 任务可自动或手动方式登记其产出信息。如果任务含有 StarRocks 库表数据的产出,则强烈建议填写,以便后续维护任务数据血缘关系。

  • 自动登记:
    任务产出数据使用“自动登记”模式,则任务每次上线时,系统将根据代码解析结果自动进行更新。您可单击查看“线上版本”的产出数据、查看“草稿版本”的产出数据按钮,查看当前任务不同版本下的产出数据自动登记结果。

    注意

    选择自动登记时,若 SQL 代码查询的字段名中包含 SQL 关键字,则需对其进行转义操作,即添加转义符号,如将 group 转义为 group、order 转义为 order 等。若不进行转义,将会影响后续数据地图中的数据血缘图谱、表生产信息等内容展现,或者您也可通过下方的手动登记方式,进行手动登记任务产出数据。

  • 手动登记:
    您手动填写的内容即为任务产出,支持填写多个。其他任务依赖时,您可在其调度设置界面,通过依赖推荐手动添加的方式,依据此处 StarRocks 任务产出的库表名信息来搜索添加依赖。 具体登记内容包括以下数据类型:

    • StarRocks:该任务逻辑会将数据写入到 StarRocks 表,需填写 StarRocks 数据库名、表名、分区名,分区内容可以使用变量,如 ${date}、${hour} 形式。
    • 其他:该任务逻辑不写数据到 StarRocks 表。

5 查询控制台

5.1 调试任务

任务代码逻辑和参数配置完成后,您可在编辑器上方,单击操作栏中的保存调试按钮,进行任务调试。

注意

调试操作,直接使用线上数据进行调试,需谨慎操作。

5.2 调试记录

调试任务开始运行后,可在下方查看调试记录,您也可以查看任务的历史运行记录,包括状态、业务日期、开始时间、结束时间、耗时、提交人等。
单击调试记录,可以查看以下详情内容:
Image

  • 结果:展示代码执行后的查询结果。

    说明

    因结果页界面预览数据上限为 1000,以及项目数据安全设置均存在限制,查询结果显示数据可能小于实际数据量。建议按如下处理方式:

    • 前往项目控制台,调整项目数据安全设置上限,上限 1 万行。
    • 项目控制台 > 配置信息 > 数据安全设置 > 查询结果勾选允许下载,您便可在查询结果区域单击下载按钮,下载完整数据至本地查看。
      操作详见:新建项目
  • 概览:查看运行结果的代码。

  • 日志:查看运行详情,可下载日志。

6 提交任务

查询结果确认无误后,单击上方操作栏中的保存提交上线按钮,在提交上线对话框中,选择回溯数据、监控设置、提交设置等参数,最后单击确认按钮,完成作业提交。 提交上线说明详见:数据开发概述---离线任务提交
后续任务运维操作详见:离线任务运维