You need to enable JavaScript to run this app.
导航
本地数据写入 Hive 表
最近更新时间:2025.03.31 16:48:01首次发布时间:2022.01.06 21:12:26
我的收藏
有用
有用
无用
无用

在 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 的格式编码形式保存。示例文件如下:
    csv_demo.csv
    未知大小

注意事项

在配置 TOS 数据源字段映射关系时,若 TOS 同名映射的集合类型类似为 MAP 的泛型,则自动生成字段类型的需手动调整,MAP 需调整为 MAP<String,String> 格式。

流程概述

向 Serverless Hive 表中写入本地数据用于大数据分析场景,您需要做以下操作:

  1. 第一步:准备您的 CSV 文件
    导入的 CSV 文件需要是以英文逗号为分隔符,并且以 UTF-8 的格式编码。
  2. 第二步:上传文件至 TOS
    如果文件已经上传至火山云 TOS 则可跳过此步骤。前往火山云对象存储(TOS)的控制台并将 CSV 文件上传进您的 TOS。
  3. 第三步:集成任务配置
    创建数据集成 TOS2Hive 通道任务,将 TOS 指定路径下的 CSV 文件数据写入到 Hive 表中。在任务配置时,可通过 Hive 一键建表功能,快速在 EMR Serverless 集群中创建待导入数据的 Hive 表。
  4. 第四步:验证数据入湖结果
    在数据集成任务调试成功之后,可通过 DataLeap 临时查询功能,快速验证数据是否已成功导入到 EMR Serverless 集群的 Hive 表中。

上传文件至 TOS

将本地已准备就绪的 CSV 文件,上传至已创建的 TOS Bucket 对应路径下。上传操作参考如下:

  1. 登录 TOS 桶列表控制台
  2. 单击已创建的 Bucket 名称信息,进入文件列表,并单击上传文件按钮,进行上传操作。
  3. 在上传文件界面中,单击选择文件按钮,将本地准备就绪的 CSV 文件,并单击上传按钮,即可完成文件上传操作。
    Image
  4. 文件上传完成后,单击列表操作列中的详情按钮,复制文件 URL 的后缀信息,以便配置集成任务时填写。
    Image
    更多上传操作说明详见上传文件

新建 CSV 导入任务

本地文件上传 TOS 成功后,您便可进入到数据开发界面,开始新建 TOS 相关通道任务。

  1. 登录 DataLeap 租户控制台
  2. 在具体项目中进入数据开发 > 元数据界面,选择 EMR Serverless Spark 或 EMR Serverless Presto 引擎类型,并单击更多按钮进行导入 CSV 任务创建。
    Image

    说明

    任务默认会创建在“CSV文件导入”目录下,并以”CSV导入_username_${date}“进行任务命名,您可按需对文件名称及目录进行操作,重命名任务名称信息仅允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。

集成任务配置

数据来源/目标配置

CSV 导入任务默认已选择来源端和目标端的数据源类型,分表为 TOS、Hive 数据源类型。

  1. 配置 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。

  2. 配置 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> 格式。

任务运行参数

字段映射配置完成后,您可按需设置期望最大并发数、脏数据、自定义参数等任务运行参数。其中高级参数说明可参考高级参数

数据集成资源组选择

单击右侧数据集成资源组选择按钮,在弹窗中选择测试数据源连通性成功的独享集成资源组信息。
Image

调试任务

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

注意

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

调试任务开始运行后,可在下方查看调试记录,单击调试记录按钮,可以查看以下详情内容:
Image

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

验证数据入湖结果

调试任务执行完成后,您便可通过数据开发 > 临时查询能力,查询落入 Hive 库表中的实际数据。
Image

  1. 在任务开发界面左侧导航栏中,进入临时查询界面。

  2. 单击新建查询按钮,新建 EMR Serverless Spark 或 EMR Serverless Presto 查询任务。

  3. 在查询编辑界面,选择 EMR Serverless 引擎计算队列信息,编辑如下查询语句:

    SELECT * FROM doc_demo.doc_csv_demo2 WHERE dt = '${date}' LIMIT 1000;
    

    Image