Topic操作

创建Topic

用户点击Project详情页面中的创建Topic按钮,进行Topic的创建。可以通过两种方式创建Topic

自定义格式创建

test1注意:开启Shard扩展模式,shard支持水平扩展,不再支持“合并”和“分裂”,以后shard数量只能增加,不可减少。此模式开启后可以使用kafka方式来消费当前Topic

用户可根据业务需求进行Topic的创建,各选项的意义可查看帮助文档中的基本概念。

通过导入MaxCompute表结构进行创建

步骤一

需要指定访问MaxCompute的相关参数:

odps

步骤二

点击下一步,导入MaxCompute的表结构,表结构中的Topic名称、字段注释以及字段是否为空可以根据需要进行修改注意:开启Shard扩展模式,shard支持水平扩展,不再支持“合并”和“分裂”,以后shard数量只能增加,不可减少。此模式开启后可以使用kafka方式来消费当前Topic test-3

查看Topic

1.进入Project页面,点击查看按钮a

2.查看Topic各项详情,如Topic存储量2-5

删除Topic

用户点击Topic列表中的删除按钮可进行Topic的删除。需要注意的是,一旦删除Topic,该Topic下的数据,资源(Shard, Connector)均被删除,无法恢复,请谨慎操作。2-6

新增Version

DataHub允许对已经创建的Topic进行字段的修改,并生成新的version版本。

注意:对于使用DTS、以及Logstash插件、Flume插件、OGG插件、Fluentd插件写入DataHub,暂不支持SchemaRegister,用户需要通过SDK appendField接口 或者 console工具进行添加

名词解释:

  • 版本号:Tuple类型Topic在创建完成后会自动生成版本号,初始值为0,每次修改(克隆或者增加version)版本号会在当前最新版本号+1

  • 克隆: 可以在保留原有Schema表结构上新增字段

克隆(推荐)

用户可以通过克隆来实现对原有Schema新增字段或者修改字段,主要适用场景为新增字段

步骤一

在Schema详情页签点击克隆,选择增加列按钮

1

2步骤二

填写对应的新增信息,点击确定

4

增加version

用户可以新增version,可在不继承原有Schema结构的情况下新增Schema

步骤一

在Schema详情页签点击增加Version按钮,在弹出框点击增加列

3

6

步骤二

填写对应的新增信息,点击确定,新增version成功

8

修改Topic生命周期

DataHub 可以修改Topic的生命周期参考代码如下:

  • 参数

    • projectName The name of the project in which you get.

    • topicName The name of the topic.

    • lifeCycle The lifeCycle of the topic.

    • comment The comment of the topic.

  • Exception

    • DatahubClientException

    • InvalidParameterException

    • AuthorizationFailureException

    • ResourceNotFoundException

  • 示例

    public static void updatetopic() {
      try {
          int lifeCycle = 7;
          String comment = "test";
          datahubClient.updateTopic(Constant.projectName, Constant.topicName,liefCycle,comment );
          System.out.println("update topicLifeCycle success!");
      } catch (InvalidParameterException e) {
          System.out.println("invalid parameter, please check your parameter");
          System.exit(1);
      } catch (AuthorizationFailureException e) {
          System.out.println("AK error, please check your accessId and accessKey");
          System.exit(1);
      } catch (ResourceNotFoundException e) {
          System.out.println("project or topic not found");
          System.exit(1);
      } catch (DatahubClientException e) {
          System.out.println("other error");
          System.exit(1);
      }
    }