2019/10/28

阿里云-日志服务-数据加工


如果我们有明确数据和不变的字段落地到 Logstore ,那么一开始就应该定制好字段的索引,哪些字段在往后中会需要进行查询使用,提前做好索引准备。但是在实际应用中我们很难保证一直不变,我们把 Logstore 当做数据库的表,但是表也会有时常添加修改字段,变更索引。而 Logstore 的索引只会在添加那一刻开始针对新数据有效,旧数据将无法使用上索引。

所以我们在收集到一手源数据后,都会进一步加工,将加工后的数据放入到新的 Logstore 中,这样我们就可以规范定义后每个加工后所需要最小字段数和索引数,并对此部分数据进一步做统计分析。

面向当前业务,需要开发一套研发后台数据统计,类似TalkingData,首要目的就是收集到角色各种数据上报,再针对源数据进行加工处理统计分析。例如激活、创角、注册、登录、充值、登出、消耗、自定义事件等等。

数据加工有多少方式:

  • 从一个 Logstore 中读取数据,进行加工后输出到另一个 Logstore 中。
  • 从一个 Logstore 中读取数据,进行加工后输出到多个不同的 Logstore 中。
  • 从多个 Logstore 中读取数据,进行加工后输出到指定一个 Logstore 中。
  • 从多个 Logstore 中读取数据,进行加工后输出到多个不同的 Logstore 中。

有一点要注意的是目前在同一个区域下操作Project,不能跨区

假设我们定义了一张Logstore,将所有日志都存放到此处,并通过字段 event_type 不同类型来进行区分加工落地到不同的 Logstore 中,如果类型没有对应的处理这抛弃。


e_if(e_has("event_type"),
    e_if(
        e_search("event_type=login"),e_compose(
            e_set("__topic__", "login"),
            e_keep_fields("create_time","game_id","user_id"),
            e_coutput(project="")
        ),

    )
)

参考文章: https://help.aliyun.com/document_detail/135175.html?spm=a2c4g.11186623.6.971.52dd600dLTH1Te
https://help.aliyun.com/document_detail/74422.html?spm=a2c4g.11186623.6.696.57f31537tuCPKm