全部产品
Search
文档中心

Topic操作

更新时间: 2021-08-16

创建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页面,点击查看按钮2-42.查看Topic各项详情,如Topic存储量2-5

删除Topic

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

新增字段

新增Topic Field有两种方式,页面新增和SDK新增

页面新增Field

  1. 进入Topic页面,在右下角点击新建Schema

2-7 2.在右侧框中填写新增字段名称、字段数据类型、是否为空以及字段描述2-83.点击确定,创建成功后查看Schema详情2-9

注意事项: 每次只支持新增一个字段,若有同时新增多字段需求请使用console工具或者自定义sdk实现

sdk新增

参考代码如下:

  • 参数

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

    • topicName The name of the topic.

  • Exception

    • DatahubClientException

    • InvalidParameterException

    • AuthorizationFailureException

    • ResourceNotFoundException

  • 示例

    public static void appendNewField() {
      try {
          Field newField = new Field("newField", FieldType.STRING, true);
          datahubClient.appendField(Constant.projectName, Constant.topicName, newField);
          System.out.println("append field successful");
      } 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);
      }
    }

修改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);
      }
    }