映射表主要用于用户存储静态数据,其主要功能包含:
用户在进行日志清洗后,将清洗出的字段通过进行静态 Join 获取需要的目标字段。
用户在进行数据集查询时,可以结合维表进行组合查询。
静态 Join 案例
映射表的新建与使用
假设用户日志格式如下:
2017-01-09 16:02:49|42.**.**.**|Kevin.yang
如下图为原始切分逻辑,切分后的字段分别为 date、ip、username。
原始切分
现在业务需求是统计每分钟每个国家的用户访问量,但是切分模型没有相关的国家字段。这时候通过映射表可以进行 Join ,映射表中保存了 IP 与国家、省份、城市的映射关系,如下图所示为结合映射表之后的逻辑:
JOIN
通过上图可以发现,国家、省份、城市这三个字段根据原始的 IP 字段获得了,问题来了,上图中“映射表 ID”是怎么设置的呢?
在控制台左侧菜单栏选择配置管理>映射表管理,单击右侧新建映射表。
填写映射表名称。
新建映射表
填写映射表的 schema 信息:针对上述需求 ip 转化为国家、省份与城市,其 schema 信息详相当于源字段信息(名称、类型)与目标字段信息(名称、类型)的映射关系。
注意: 类型仅仅支持 string、long、double 类型。
选择映射表的资源类型(目前只支持文本类型 TEXT,后续会支持其他接入方式)。
如果映射表的类型为文本类型,需要添加文本内容,文本内容可以参考样例数据进行录入,如图针对上述需求文本中只录入了一个 ip 的映射关系,文本内容必须严格按照 schema 设定的形式,否则无法保存。
映射表保存后系统生成一个唯一的维表 ID ,填入上述的积木块中即可。
映射表数据更新
针对上述的案例,用户可能会提出这样的问题,刚刚映射表中的文本中只配置了 IP 为42...** 的映射关系,用户上述的任务已经运行起来了,但是实际日志中包含其他 IP,利用刚才建立的映射表进行静态 Join 岂不是有问题的?
不用担心,用户无需停止任务,只需要更新一下映射表里面的文本数据即可。
更新
修改映射表时,映射表的 schema 与资源类型不能修改。
如上图所示当资源类型为文本类型时,修改文本内容即可。
基于映射表进行数据集的组合查询
在控制台左侧菜单栏选择监控管理>数据集管理,单击右侧数据查询。下面演示一个简单的示例:
444
如上数据集存在维度 _hostIp ,选择下钻,其结果如下所示:
555
现在需要查询各个省份、地址详细的数据咋办?只需要对 _hostIp 进行 Join 查询,我们已经在自己的维表中配置 IP 到地区的详细映射关系了。
666
其查询后的详细数据如下:
666
注意: 目前组合查询只支持维度的 Join,其他字段暂时不支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。