形态探查功能主要是对Hive表进行数据形态的探查。一般可用于新接入的源头表或者对新加工出来的数据进行探查,了解数据整体情况。也可以通过该功能,发现数据的潜在的问题,比如主键唯一性、字段空值、非常规字段值等等。

具体可支持探查如下内容:

探查范围 支持项
表级 支持探查总记录数、主键去重记录数、确定主键唯一性。
字段级 查看枚举字段枚举值分布;查看字段去重后总量、空值/空串比例、最大长度、最大长度预览、最小长度、最小长度预览、最大值、最小值。

说明:目前所有项目成员都可以访问形态探查功能,但是仅能探查自己有读权限的表,不能操作其他人的形态探查任务。

形态探查任务创建

在形态探查页面的左上角提供了任务创建的入口,点击新建任务按钮进入创建页面。在任务创建过程中用户需要完成探查对象和规则的配置。

设置探查对象

探查对象包括数据源类型分区筛选以及非分区过滤条件,其中库名称和表名称为必填项。形态探查将使用创建人的权限执行,无所选表的读权限则会运行失败。
形态探查 - 图1

非分区过滤条件:该功能常用的场景有用来进行时间参数的转换,例如,对于unixtime,可以通过from_unixtime(create_time, 'yyyy-MM-dd HH:mm:ss')='azkaban.flow.1.days.ago'代码进行转换。

基础信息处需要设置任务名称及描述。
形态探查 - 图2

设置规则

设置规则需要进行主键和各字段探查内容的设置。

  • 对于主键设置,当指定主键时会探查主键的唯一性,不指定则不探查。支持探查联合主键的唯一性。
  • 对于字段探查,系统会根据字段类型自动推荐需要配置的内容,探查内容包括枚举值、去重后总量、空值/空串比例、最大长度、最大长度预览、最小长度、最小长度预览、最大值以及最小值。
    形态探查 - 图3

配置完上述内容后,可单击保存并运行按钮进行任务运行,也可以单击保存暂不运行任务,之后可在形态探查页面的列表中,单击运行按钮进行任务运行。

任务实例详情


任务运行后,最新的实例信息会呈现在列表中,并可以通过单击具体的任务ID,快速查看任务配置信息。
在任务列表中,单击实例列表会进入实例列表页面,在该页面中会展示当前任务生成的历史实例,对状态为已完成的实例可单击运行结果查看日志按钮查看探查结果以及任务运行日志。
形态探查 - 图4

在实例详情页中,探查结果将包括以下内容:探查对象、任务参数信息、表级探查结果、枚举字段探查以及字段常规探查。

  • 探查对象:包括库表名称、分区筛选以及非分区过滤条件信息。
  • 任务参数信息:包括任务配置时配置的spark参数信息。
  • 表级探查结果:包括总记录数、主键去重记录数、主键唯一性结论及哪些字段是主键。
  • 枚举字段探查:如果在探查任务配置时,配置了枚举字段探查,就会出现该块内容,包括字段的枚举值和分布数据。
  • 字段常规探查:根据配置的探查项反馈各字段的探查结果。
    形态探查 - 图5