在 DataLeap 中使用 Serverless Spark、Presto、Hive任务时,所用到的内表均来自火山引擎 E-MapReduce(EMR)Serverless 集群中的 Hive 表。DataLeap 数据开发支持将本地文件(如 CSV文件)数据,通过数据集成任务,导入到 Hive 表中。本文将为您介绍本地数据写入流程。
使用前提
- 开通 EMR Serverless Spark **** 队列资源实例,并在 DataLeap 项目控制台中进行绑定。详见队列管理、引擎设置绑定。
- 开通 TOS 服务,并创建 TOS 存储桶,并授予操作子用户 TOS 控制台相关操作权限。详见创建存储桶、ACL 策略管理。
- 创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组使用。
- 配置数据集成任务前,您需完成来源 TOS 和目标端 Hive 的数据源准备,创建数据源操作详见 TOS3.1 数据源注册、Hive5.1 数据源注册。
- 准备您的 CSV 文件(如果文件已经在火山云 TOS 则可跳过)
- 在本地准备需上传的 CSV 数据文件,且文件需以英文逗号为分隔符,以 UTF-8 的格式编码形式保存。示例文件如下:
注意事项
在配置 TOS 数据源字段映射关系时,若 TOS 同名映射的集合类型类似为 MAP 的泛型,则自动生成字段类型的需手动调整,MAP 需调整为 MAP<String,String> 格式。
流程概述
向 Serverless Hive 表中写入本地数据用于大数据分析场景,您需要做以下操作:
- 第一步:准备您的 CSV 文件
导入的 CSV 文件需要是以英文逗号为分隔符,并且以 UTF-8 的格式编码。 - 第二步:上传文件至 TOS
如果文件已经上传至火山云 TOS 则可跳过此步骤。前往火山云对象存储(TOS)的控制台并将 CSV 文件上传进您的 TOS。 - 第三步:集成任务配置
创建数据集成 TOS2Hive 通道任务,将 TOS 指定路径下的 CSV 文件数据写入到 Hive 表中。在任务配置时,可通过 Hive 一键建表功能,快速在 EMR Serverless 集群中创建待导入数据的 Hive 表。 - 第四步:验证数据入湖结果
在数据集成任务调试成功之后,可通过 DataLeap 临时查询功能,快速验证数据是否已成功导入到 EMR Serverless 集群的 Hive 表中。
上传文件至 TOS
将本地已准备就绪的 CSV 文件,上传至已创建的 TOS Bucket 对应路径下。上传操作参考如下:
- 登录 TOS 桶列表控制台。
- 单击已创建的 Bucket 名称信息,进入文件列表,并单击上传文件按钮,进行上传操作。
- 在上传文件界面中,单击选择文件按钮,将本地准备就绪的 CSV 文件,并单击上传按钮,即可完成文件上传操作。

- 文件上传完成后,单击列表操作列中的详情按钮,复制文件 URL 的后缀信息,以便配置集成任务时填写。

更多上传操作说明详见上传文件。
新建 CSV 导入任务
本地文件上传 TOS 成功后,您便可进入到数据开发界面,开始新建 TOS 相关通道任务。
- 登录 DataLeap 租户控制台。
- 在具体项目中进入数据开发 > 元数据界面,选择 EMR Serverless Spark 或 EMR Serverless Presto 引擎类型,并单击更多按钮进行导入 CSV 任务创建。

说明
任务默认会创建在“CSV文件导入”目录下,并以”CSV导入_username_${date}“进行任务命名,您可按需对文件名称及目录进行操作,重命名任务名称信息仅允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。
集成任务配置
数据来源/目标配置
CSV 导入任务默认已选择来源端和目标端的数据源类型,分表为 TOS、Hive 数据源类型。
配置 TOS 数据源读取
参数 | 说明 |
---|
*数据源类型 | 默认已选择 TOS 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 TOS 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 TOS 数据源。 |
*文件路径 | 填写需要采集的 TOS 数据文件所在路径,此处可将上传文件至 TOS后复制的文件路径粘贴。格式如 doc_csv_demo/tos_test_csv.csv 说明 - 文件路径中包括 ^ , * , ? , [ , ] , { , } , ( , ) , \ 等符号,则会被判定为正则形式的路径。
- 文件路径填写说明:
- 不需要包含 Bucket 名称,且不用 / 开头;
- 您可配置目录,可配置具体的文件名称。若配置目录,仅读取当前目录下的子文件,但不递归子目录;若配置具体的文件,不支持 “.” 或 “_” 开头的文件名;
- 支持 “*” 通配符形式配置文件路径信息;
- 支持配置日期正则参数形式,如 bigdata/t_user/${date},更多时间参数详见平台时间变量与常量说明。
|
*数据类型 | 支持选择 json、pb、parquet、csv、txt 等几种数据类型,此处选择 CSV 类型。 |
*分割符 | 选择原始 CSV 文件的分隔符,如“,”、“Tab”、“;”等,下拉可选,同时也支持自定义分隔符的方式指定。此处选择“,”分隔。 |
*原始字符集 | 需选择原始文件的字符集,支持选择 GBK、UTF-8 格式。此处选择 UTF-8 格式。 |
*导入起始行 | 确认上传的 CSV 文件中是否含有表头信息,无表头请填0,有表头请填1。 |
配置 Hive 数据源写入
参数 | 说明 |
---|
*目标类型 | 默认选择 Hive 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 Hive(EMR Serverless Hive)数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 Hive 数据源。 |
*数据表 | 选择需要写入数据的 Hive 表名称信息,下拉可选。 - 一键建表:仅对于 EMR Serverless Hive(LAS Catalog)表类型而言,当目标表尚未创建,并且在源端已选定要采集的表/文件且已拉取源端表字段映射的情况下,您可单击“一键建表”按钮,依据从源端采集的字段信息,在当前窗口以弹窗形式,快速进行目标表 DDL 语句的编辑创建。
- 快速建表:若目标表还未创建,您也可单击快速建表按钮,前往数据地图界面,依据源端采集的字段信息,进行 EMR Hive、EMR Serverless Hive(LAS Catalog) 表的创建。
- 修改数据表:若源端采集的字段存在更新情况时,您可单击修改数据表按钮,及时对目标表字段进行快速修改。
|
分区设置 | 分区字段从 Hive 表中自动获取。
分区类型支持选择动态分区类型或具体分区字段类型: - 动态分区:即根据源端字段值内容,进行动态写入,动态分区对应的字段必须存在于源端 Columns 中。选择动态分区类型后,便可自动将表分区字段,加入到下方字段映射中。
说明 动态分区字段对应的源端字段值内容,允许为空,同步任务将以 Hive 空分区形式写入,以" HIVE_DEFAULT_PARTITION"形式展现。 - 具体分区字段类型:其分区内容可设置具体时间分区粒度,可以用表达式:${date}、${hour} 等参数变量表示。参数变量详见平台时间变量与常量说明。
|
数据写入方式 | 下拉选择目标数据写入方式,支持以下两种写入方式: - insert overwrite: 先删除原有数据再写入新数据;
- insert into: 直接写入新数据。
|
字段映射
数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
在基础模式下您可通过以下四种方式操作字段映射关系:
- 同名映射:您可在配置完目标端字段信息后,单击源端字段映射中的同名映射按钮,进行同名字段映射配置。
- 自动添加:源端 TOS 数据类型为 csv、txt、json、pb 时,单击自动添加按钮,源端字段信息可通过自动添加按钮操作。
- 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。
- 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。
注意
在配置 TOS 数据源字段映射关系时,若 TOS 同名映射的集合类型类似为 MAP 的泛型,则自动生成字段类型的需手动调整,MAP 需调整为 MAP<String,String> 格式。
任务运行参数
字段映射配置完成后,您可按需设置期望最大并发数、脏数据、自定义参数等任务运行参数。其中高级参数说明可参考高级参数。
数据集成资源组选择
单击右侧数据集成资源组选择按钮,在弹窗中选择测试数据源连通性成功的独享集成资源组信息。

调试任务
任务逻辑和参数配置完成后,您可在编辑器上方,单击操作栏中的保存和调试按钮,进行任务调试。
注意
调试操作,直接使用线上数据进行调试,需谨慎操作。
调试任务开始运行后,可在下方查看调试记录,单击调试记录按钮,可以查看以下详情内容:

- 概览:查看任务执行的状态、业务日期、运行时长、开始时间等任务概览信息。
- 监控:离线集成任务支持查看任务读写监控指标,您可单击数据集成监控按钮,前往云监控界面查看集成读写指标、资源组使用率等监控信息。
- 调度日志:查看任务在调度分发阶段时的日志信息。
- 执行日志:查看任务实际在独享集成资源组中运行时的执行日志详情信息,您可从中查看任务实际读取的数据大小、数据条数、或失败原因等信息。执行日志查看详见DataSail 日志查看和诊断。
- 运行事件:查看任务运行过程中的事件信息,如任务状态变化、任务失败、重启
验证数据入湖结果
调试任务执行完成后,您便可通过数据开发 > 临时查询能力,查询落入 Hive 库表中的实际数据。

在任务开发界面左侧导航栏中,进入临时查询界面。
单击新建查询按钮,新建 EMR Serverless Spark 或 EMR Serverless Presto 查询任务。
在查询编辑界面,选择 EMR Serverless 引擎计算队列信息,编辑如下查询语句:
SELECT * FROM doc_demo.doc_csv_demo2 WHERE dt = '${date}' LIMIT 1000;
