全部产品
业务实时监控服务 ARMS

映射表使用最佳实践

更新时间:2017-08-04 19:55:58   分享:   

映射表主要用于用户存储静态数据,其主要功能包含:

  1. 用户在进行日志清洗后,将清洗出的字段通过进行静态 Join 获取需要的目标字段。

  2. 用户在进行数据集查询时,可以结合维表进行组合查询。

静态 Join 案例

映射表的新建与使用

假设用户日志格式如下:

  1. 2017-01-09 16:02:49|42.**.**.**|Kevin.yang

如下图为原始切分逻辑,切分后的字段分别为 date、ip、username。

原始切分

现在业务需求是统计每分钟每个国家的用户访问量,但是切分模型没有相关的国家字段。这时候通过映射表可以进行 Join ,映射表中保存了 IP 与国家、省份、城市的映射关系,如下图所示为结合映射表之后的逻辑:

JOIN

通过上图可以发现,国家、省份、城市这三个字段根据原始的 IP 字段获得了,问题来了,上图中“映射表 ID”是怎么设置的呢?

  1. 在控制台左侧菜单栏选择配置管理>映射表管理,单击右侧新建映射表

  2. 填写映射表名称。

    新建映射表

  3. 填写映射表的 schema 信息:针对上述需求 ip 转化为国家、省份与城市,其 schema 信息详相当于源字段信息(名称、类型)与目标字段信息(名称、类型)的映射关系。

    注意: 类型仅仅支持 string、long、double 类型

  4. 选择映射表的资源类型(目前只支持文本类型 TEXT,后续会支持其他接入方式)。

  5. 如果映射表的类型为文本类型,需要添加文本内容,文本内容可以参考样例数据进行录入,如图针对上述需求文本中只录入了一个 ip 的映射关系,文本内容必须严格按照 schema 设定的形式,否则无法保存。

  6. 映射表保存后系统生成一个唯一的维表 ID ,填入上述的积木块中即可。

映射表数据更新

针对上述的案例,用户可能会提出这样的问题,刚刚映射表中的文本中只配置了 IP 为42...** 的映射关系,用户上述的任务已经运行起来了,但是实际日志中包含其他 IP,利用刚才建立的映射表进行静态 Join 岂不是有问题的?

不用担心,用户无需停止任务,只需要更新一下映射表里面的文本数据即可。

更新

  • 修改映射表时,映射表的 schema 与资源类型不能修改。

  • 如上图所示当资源类型为文本类型时,修改文本内容即可。

基于映射表进行数据集的组合查询

在控制台左侧菜单栏选择监控管理>数据集管理,单击右侧数据查询。下面演示一个简单的示例:

444

如上数据集存在维度 _hostIp ,选择下钻,其结果如下所示:

555

现在需要查询各个省份、地址详细的数据咋办?只需要对 _hostIp 进行 Join 查询,我们已经在自己的维表中配置 IP 到地区的详细映射关系了。

666

其查询后的详细数据如下:

666

注意: 目前组合查询只支持维度的 Join,其他字段暂时不支持

本文导读目录
本文导读目录
以上内容是否对您有帮助?