You need to enable JavaScript to run this app.
导航

Shell 执行 EMR Doris SQL 任务

最近更新时间2023.04.04 15:51:27

首次发布时间2023.04.03 10:34:23

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库产品,仅需亚秒级响应时间即可获得海量数据下的查询结果,不仅能支持高吞吐的复杂分析场景,也可高效地进行实时数据分析。Apache Doris 的分布式架构非常简洁,易于运维,也能够支持聚合,排序,连接等计算任务的高效执行等优势。

火山引擎 E-MapReduce(EMR)集群中集成了 Doris 组件服务,您可通过创建 EMR Doris 集群,来满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等。更多信息详见 Doris 概述
本文将为您介绍在火山引擎大数据研发治理套件 DataLeap 上,通过 Shell 任务调用 EMR Doris 的方式,对 Doris 中的数据进行访问。

1 使用前提

  1. 已开通 DataLeap 服务。

  2. 已创建 EMR Doris 的集群类型。详见创建集群

  3. 如子账号登录,需具备服务使用权限,如 DataLeapFullAccess、EMRFullAccess 等权限。

  4. Shell 任务访问私有网络服务或资源时,需通过独享计算资源组访问,Shell 任务界面不支持单独修改网络配置。独享计算资源组操作详见详见资源组管理

注意

  1. 若仅开通 Dataleap 大数据集成服务,不支持创建 Shell 任务。

  2. 独享计算资源组绑定的私有网络、子网、安全组信息,需和 EMR Doris 集群中的网络配置信息保持一致,便于网络互通。

2 Doris 连接信息获取

从 EMR Doris 集群中,获取 Shell 任务所需的 Doris 连接信息。

2.1 localhost 地址获取

  1. 登录 EMR 控制台

  2. 在左侧导航栏中,进入集群管理 > 集群列表界面。

  3. 单击已创建好的 Doris 集群名称 > 节点管理,进入到节点组列表界面。

  4. 展开 MasterGroup 节点组名称,获取 Doris 集群的内网 IP 地址。

2.2 Doris 用户名密码获取

  1. 登录 EMR Doris 集群 Master 节点,登录方式详见登录集群

  2. Master 节点机器上已经安装了 MySQL 客户端, 可以通过如下命令连接 Doris 集群:

    mysql -h 127.0.0.1 -P9030 -u root -p
    
  3. 初次登录时, 可以使用root用户和空字符串密码登录。初次登录后请尽快完成 root 账号密码修改,您可以通过以下命令修改 root 账号密码:

    SET PASSWORD FOR 'root' = PASSWORD('new_password');
    

记录修改后的账号密码信息,其余 Doris 操作详见 Doris 基础使用

3 配置 Shell 任务

  1. 登录 DataLeap租户控制台

  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。

  3. 任务开发界面,左侧目录树上,单击新建任务按钮,完成新建任务配置。详见 Shell 任务

3.1 配置脚本

任务完成新建后,进入 Shell 任务编辑界面,进行以下脚本编辑:

mysql -hlocalhost -P9030 -uusername -ppassword -e "CREATE DATABASE if not exists shell_doris_test;
use shell_doris_test;
CREATE TABLE shell_doris
(
    id          int not  null,
    date_info   date  not null,
    name       string not null,
    address     string not null,
    create_time bigint       not null,
    event_time  bigint       not null,
    price       double       not null
    
)
DUPLICATE KEY(id, date_info)
PARTITION BY RANGE(date_info)
(
    PARTITION p1 VALUES LESS THAN (\"2020-02-01\"),
    PARTITION p2 VALUES LESS THAN (\"2020-03-01\"),
    PARTITION p3 VALUES LESS THAN (\"2020-04-01\")
)
DISTRIBUTED BY HASH(id) BUCKETS 32
PROPERTIES (
    \"replication_num\" = \"1\"
);
insert into shell_doris select 125037, '2020-01-11', '张三', '天津市丽县', 1669862281, 1668155516, '-36010.5893188364';"

替换参数说明:

参数说明
localhostEMR Doris 集群中 Master 节点内网 IP 信息。
username数据库用户名信息。
password数据库用户登录信息。
-e " "根据实际场景,输入符合逻辑的 SQL 语句。

3.2 执行设置

脚本配置完成后,您可进行以下操作,完成任务执行资源配置:

  1. 单击进入右侧侧边栏执行设置窗口。

  2. 选择计算资源组:下拉选择独享计算资源组

  3. 镜像地址:

    1. DataLeap 访问 Doris 数据库所需的镜像信息,已为您集成在 DataLeap 公共镜像地址:dataleap-cn-beijing.cr.volces.com/studio/mysql:0.0.1 中,Shell 任务直接配置使用即可。

    说明

    您也可以根据实际场景,进行自定义镜像,镜像打包流程详见推送和拉取镜像,基础镜像请选择 dataleap-cn-beijing.cr.volces.com/studio/runtime_light:online

  4. 资源配置:资源可根据实际需求进行配置,以 CU 为单位,默认配置 1CU(1CU = 1Core 4GB),下拉可选择更高规格的资源配置。

3.3 网络设置

在选取独享计算资源组设置后,网络配置中会默认将独享计算资源组绑定的私有网络、子网、安全组信息填入,且不可修改。
您可在创建独享计算资源组时,配置对应的私有网络信息,需和 EMR Doris 集群中的网络配置信息保持一致,便于网络互通。创建资源组操作详见:资源组管理

3.4 任务产出设置

产出数据登记用于记录任务的数据血缘,不会对代码逻辑造成影响,此示例选择默认。

  1. 引擎类型:E-MapReduce(EMR)和湖仓一体分析服务(LAS)、默认(没有产出登记)。

  2. 关联实例:选择关联对应引擎下的实例信息。

  3. 数据类型:仅 EMR 引擎类型下需选择数据类型,目前有 Hive、HDFS、其他。

  4. 数据库表:选择对应引擎下产出的数据库和数据表。

4 保存运行任务

任务配置完成后,依次单击上方操作栏中保存调试图标按钮,执行编辑好的 Shell 命令,执行成功后,可在界面下方查看运行日志。

5 结果验证

  1. 登录 EMR Doris 集群 Master 节点,登录方式详见登录集群

  2. 输入以下命令,回车后输入密码,进入 MySQL 客户端:

    mysql -h 127.0.0.1 -P9030 -u root -p
    
  3. 进入已创建成功的数据库中查询验证:

    use shell_doris_test;
    select * from shell_doris;
    

    查询结果如下:

6 提交任务

结果验证确认无误后,您可进行后续的调度设置和将任务提交发布到运维中心离线任务运维中执行。

  1. 调度设置:

    在右侧导航栏中,进入调度设置界面,您可以在此设置调度资源组、调度属性、依赖关系等信息,详细参数设置详见调度设置

  2. 提交发布:

    单击操作栏中的保存提交上线按钮,在弹窗中,需先通过提交事前检查提交上线等上线流程,最后单击确认按钮,完成作业提交。详见概述---离线任务提交发布

注意

上线流程中的“提交事前检查”,需租户主账号或项目管理员先在项目控制台 > 流水线管理中,创建相应的流水线检查事宜后方可显示。详见流水线管理

后续任务运维操作详见:离线任务运维