赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 最佳实践
  8. 数据富化
  9. 从其他Logstore获取数据进行数据富化

从其他Logstore获取数据进行数据富化

  • 数据富化
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文档介绍如何通过资源函数从其他Logstore中获取数据对数据进行富化。

背景信息

某酒店将客人个人信息存储在名为user_logstore的Logstore中,将客人入住信息存储在名为check-in_logstore的Logstore中,现在酒店希望从check-in_logstore中获取部分字段数据,与user_logstore中的数据拼接。针对该需求,日志服务提供res_log_logstore_pull函数从check-in_logstore中获取数据,提供e_table_map函数实现数据富化。

不同Logstore日志的拼接

  • 原始数据

    • 用于存储个人信息的Logstore(user_logstore)

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
    • 用于存储入住信息的Logstore(check-in_logstore)

      time:1567038284
      status:check in
      cid:12345
      name:maki
      room_number:1111
      
      time:1567038284
      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      time:1567038500
      status:check in
      cid:12347
      name:mary
      room_number:3333
      
      time:1567038500
      status:leave
      cid:12345
      name:maki
      room_number:1111
  • 加工规则

    说明

    res_log_logstore_pull函数支持设置时间范围,您可以设置一个时间区间,也可以只设置开始时间。

    • 在加工规则中,设置from_time=1567038284,to_time=1567038500,则表示只获取该时间范围内的Logstore数据。

    • 在加工规则中,设置from_time="begin",则表示持续获取Logstore数据。

    res_log_logstore_pull函数中的各个字段详情请参见res_log_logstore_pull。

    • e_table_map函数

      通过两个Logstore中相同的cid字段进行匹配,只有cid字段的值完全相同,才能匹配成功。匹配成功后,返回Logstore(check-in_logstore)中的room_number字段和字段值,与Logstore(check-in_logstore)中的数据拼接,生成新的数据。

      e_table_map(res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, 
              fields=["cid","room_number"],
              from_time="begin",
              ), "cid","room_number")
  • 加工结果

    • e_table_map函数

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      room_nuber:1111
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      room_number:2222
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
      room_number:3333

设置黑白名单过滤数据

设置白名单

  • 加工规则

    通过fetch_include_data设置白名单,例如fetch_include_data="room_number:1111"表示在获取数据过程中,只获取room_number值为1111的数据。

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_include_data="room_number:1111")
  • 获取到的数据

    status: check in
    cid:12345
    name:maki
    room_number:1111
    
    status:leave
    cid:12345
    name:maki
    room_number:1111

设置黑名单

  • 加工规则

    通过fetch_exclude_data设置黑名单,例如fetch_exclude_data="room_number:1111"表示在获取数据过程中,丢弃room_number值为1111的数据。

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="room_number:1111")
  • 获取到的数据

    status:check in
    cid:12346
    name:vicky
    room_number:2222
    
    
    status:check in
    cid:12347
    name:mary
    room_number:3333

同时设置黑白名单

  • 加工规则

    同时设置黑白名单时,优先匹配黑名单,再匹配白名单。例如fetch_exclude_data="time:1567038285",fetch_include_data="status:check in"表示在数据获取过程中,先匹配time值为1567038285的数据进行丢弃,再匹配status值为check in的数据进行获取。

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="time:1567038285",fetch_include_data="status:check in")
  • 获取到的数据

    status:check in
    cid:12345
    name:maki
    room_number:1111
    
    
    status:check in
    cid:12346
    name:vicky
    room_number:2222
    
    
    status:check in
    cid:12347
    name:mary
    room_number:3333

开启主键维护获取目标Logstore数据

当您获取到数据但还没加工时,您希望删除已获取到数据,不再加工,您可以开启主键维护功能。例如:您要在名为check-in_logstore的Logstore中,获取已入住但未离开的客户入住信息,如果获取到的数据中包含status:leave表示客人已经离开,可以设置res_log_logstore_pull函数的primary_keys参数设置主键,不加工该数据。

说明
  • primary_keys参数只支持设置单个字符串,且必须存在于fields字段中。

  • 开启主键维护功能时,待拉取数据的Logstore中只能存在一个Shard。

  • 开启主键维护功能时,delete_data字段必须不为None。

  • 加工规则

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status","time"],from_time=1567038284,to_time=None,primary_keys="cid",delete_data="status:leave")
  • 获得数据

    name为maki的客人,最后的入住信息为status:leave表示已离开酒店,则不加工该客人的相关数据。

    time:1567038284
    status:check in
    cid:12346
    name:vicky
    room_number:2222
    
    time:1567038500
    status:check in
    cid:12347
    name:mary
    room_number:3333
相关文章

从其他Logstore获取数据进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数从其他Logstore中获取数据对数据进行富化。 背景信息 某酒店将客人个人信息存储在名为user_logstore的Logstore中,将客人入住信息存储在名为check-in_logstore的Logstore中,现

从OSS获取IPIP库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IPIP库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取IP2Location库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IP2Location库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取CSV文件进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数和映射富化函数从OSS中获取数据对日志数据进行富化。 前提条件

从RDS MySQL数据库获取数据进行数据富化 2025-04-22 10:53

日志服务数据加工功能支持从阿里云RDS MySQL数据库获取数据,结合数据加工规则,进行数据富化。 背景信息 在数据存储场景中,您可能经常遇到数据分散存储的问题,例如用户操作、行为等相关数据存储在日志

通过日志服务访问RDS MySQL进行数据富化 2025-04-22 10:53

当数据分别存储在日志服务的Logstore和RDS MySQL数据库中时,您可以使用日志服务的数据加工功能,通过RDS的内网地址访问RDS MySQL数据库以获取数据,进而实现数据富化。 工作原理 使用日志服务数据加工功能,通过RDS内网地址访问RDS MySQL获取数据进行数据富化的过程如图所示:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号