Hive方言作业快速入门

实时计算Flink版支持使用Hive方言创建批处理作业,通过兼容Hive SQL语法增强与Hive互操作性,便于从现有Hive作业平滑迁移至实时计算管理控制台。

前提条件

  • 如果您使用RAM用户或RAM角色等身份访问,需要确认已具有Flink控制台相关权限,详情请参见权限管理

  • 已创建Flink工作空间,详情请参见开通实时计算Flink

使用限制

  • VVR 8.0.11及以上版本支持使用Hive方言。

  • 目前仅支持Hive方言INSERT Statements语法,且需要在INSERT Statements之前声明USE Catalog <yourHiveCatalog>

  • 暂不支持HiveFlink自定义函数。

步骤一:创建Hive Catalog

  1. 配置Hive元数据,详情请参见配置Hive元数据

  2. 创建Hive Catalog,详情请参见创建Hive Catalog

    本示例创建的Hive Catalog命名为hdfshive。

步骤二:准备Hive示例数据表

  1. 数据开发 > 数据查询页面,单击image.png新建,创建查询脚本。

  2. 执行如下SQL示例。

    重要

    Hive源表和结果表必须使用CREATE TABLE创建永久表,而不是CREATE TEMPORARY TABLE创建临时表。

    -- 使用Hive Catalog,其中hdfshive为步骤一创建的示例名称
    USE CATALOG hdfshive;   
    
    -- 源数据表
    CREATE TABLE source_table (
     id INT,
     name STRING,
     age INT,
     city STRING,
     salary FLOAT
    )WITH ('connector' = 'hive');
    
    -- 结果数据表
    CREATE TABLE target_table (
    city STRING,
    avg_salary FLOAT,
    user_count INT
    )WITH ('connector' = 'hive');
    
    -- 写入测试数据
    INSERT INTO source_table VALUES
    (1, 'Alice', 25, 'New York', 5000.0),
    (2, 'Bob', 30, 'San Francisco', 6000.0),
    (3, 'Charlie', 35, 'New York', 7000.0),
    (4, 'David', 40, 'San Francisco', 8000.0),
    (5, 'Eva', 45, 'Los Angeles', 9000.0);

步骤三:创建Hive SQL作业

  1. 在左侧导航栏,单击数据开发 > ETL

  2. 单击新建后,在新建作业草稿对话框,选择空白的批作业草稿(BETA),单击下一步

  3. 填写作业信息。

    作业参数

    说明

    示例

    文件名称

    作业的名称。

    说明

    作业名称在当前项目中必须保持唯一。

    hive-sql

    存储位置

    指定该作业的代码文件所属的文件夹。

    您还可以在现有文件夹右侧,单击新建文件夹图标,新建子文件夹。

    作业草稿

    引擎版本

    当前作业使用的Flink引擎版本。

    建议使用带有推荐标签的版本,这些版本具有更高的可靠性和性能表现,关于引擎版本详情请参见功能发布记录引擎版本介绍

    vvr-8.0.11-flink-1.17

    SQL方言

    SQL数据处理语言。

    说明

    仅支持Hive方言的引擎版本才会显示该配置项。

    Hive SQL

  4. 单击创建

步骤四:编写Hive SQL作业并部署

  1. 编写SQL语句。

    本示例计算各城市年龄大于30的用户数量和平均工资,您可复制如下SQL示例到SQL编辑区域。

    -- 使用Hive Catalog,其中hdfshive为步骤一创建的示例名称
    USE CATALOG hdfshive; 
    
    INSERT INTO TABLE target_table
    SELECT
      city,
      AVG(salary) AS avg_salary, -- 计算平均工资
      COUNT(id) AS user_count -- 计算用户数量
    FROM source_table
    WHERE age > 30 -- 筛选年龄大于 30 的用户
    GROUP BY city; -- 按城市分组
  2. 单击右上方部署,在对话框中根据需要配置相关参数(本示例保持默认),单击确定

(可选)步骤五:配置作业运行参数

重要

如果您通过JindoSDK访问Hive集群,则需要执行该步骤。

  1. 在左侧导航栏,单击运维中心 > 作业运维

  2. 在下拉框中选择批作业,单击目标作业的详情

    11

  3. 在部署详情对话框中,单击行参数配置区域右侧的编辑

  4. 其他配置中,增加如下配置信息。

    fs.oss.jindo.endpoint: <YOUR_Endpoint> 
    fs.oss.jindo.buckets: <YOUR_Buckets>
    fs.oss.jindo.accessKeyId: <YOUR_AccessKeyId>
    fs.oss.jindo.accessKeySecret: <YOUR_AccessKeySecret>

    参数说明的详细信息请参见OSS-HDFS

  5. 单击保存

步骤六:启动作业并查看结果

  1. 单击目标作业的启动

    11

  2. 作业状态变为已完成后,查看计算结果。

    数据开发 > 数据查询页面,执行以下SQL示例,查看各城市年龄超过30岁的用户数量及其平均工资的数据结果。

    -- 使用Hive Catalog,其中hdfshive为步骤一创建的示例名称
    USE CATALOG hdfshive; 
    
    select * from target_table;

    55

相关文档