概述

使用全局富化函数做富化时, 需要传递一个字典或者表格结构做富化. 参考构建字典与表格做数据富化的各种途径比较. 
本篇介绍从使用资源函数res_log_logstore_pull从其他logstore拉取数据的做富化的详细实践.关于res_log_logstore_pull的参数说明, 参考这里. 该语法目前支持两种模式去logstore拉取数据,一种是拉取指定时间间隔内的logstore 的数据内容,另外一种是不设置结束时间,持续的拉取目标logstore内容

背景

这里我们有两个logstore,一个是存储个人信息的source_logstore,一个是酒店存储客人入住信息的target_logstore ,我们现在将酒店的入住信息拿来做富化。
注意: 这里采用pull_log接口拉取数据, 富化的logstore并不依赖索引.

个人信息 source_logstore

topic:xxx
city:xxx
cid:12345
name:makitopic:xxx
city:xxx
cid:12346
name:vickytopic:xxx
city:xxx
cid:12347
name:mary    

酒店入住信息logstore

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

基本语法

res_log_logstore_pull(endpoint,ak_id,ak_secret,project,logstore,fields,from_time=None,to_time=None,fetch_include_data=None,fetch_exclude_data=None,primary_keys=None,delete_data=None,refresh_interval_max=60,fetch_interval=2):

具体的参数说明请参考res_log_logstore_pull,需要注意的地方是,res_log_logstore_pull 是一个单独的语法,只负责从目标logstore 拉取数据下来,本身自己并没有做任何富化的操作,所以请不要单独使用res_log_logstore_pull语法,结合e_table_map和e_search_table_map语句一起使用才是有意义的,本篇也会结合e_table_map和e_search_map_table的使用给出一些例子进行演示。

场景1: 获取指定时间内所有的数据

注意: 这里的时间是日志获取时间.

DSL编排语法

res_log_logstore_pull(..., ["cid","name","room_number"],from_time=1567038284,to_time=1567038500)

获取到的数据

#这里我们的语法中 field 填入了 cid,name,room_number 三个字段,,并且指定了时间范围,将会获取这个时间范围内的logstore的所有数据的这三个字段的值cid:12345
name:maki
room_number:1111cid:12346
name:vicky
room_number:2222cid:12347
name:mary
room_number:3333cid:12345
name:maki
room_number:1111

场景2: 设置黑白名单参数来过滤拉取的数据

1.DSL 编排语法(只设置白名单)

# 设置白名单,只有 room_number 值等于 1111的的数据会被拉去下来
res_log_logstore_pull(..., ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_include_data="room_number:1111")

获取到的数据

# 设置了 ferch_include_data 白名单,只有包含 room_numver:1111的数据会被拉去下来,其他数据不会被拉取。status: check in
cid:12345
name:maki
room_number:1111status:leave
cid:12345
name:maki
room_number:1111

2.DSL 编排语法(只设置黑名单)

res_log_logstore_pull(..., ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="room_number:1111")

获取到的数据

# 设置黑名单 fetch_exclude_data 当数据包含 room_number:1111的时候丢弃这条数据。
status:check in
cid:12346
name:vicky
room_number:2222status:check in
cid:12347
name:mary
room_number:3333

3.DSL编排语法(同时设置黑白名单)

res_log_logstore_pull(..., ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="status:leave",fetch_include_data="status:check in")

获取到的数据

# 黑白名单同时存在的情况下,优先进行黑名单数据的匹配,这里我们填入的是 status:leave的值,当数据包含status:leave的值时候,数据会被直接丢弃,而后匹配白名单,白名单我们填入的是 status:check in 当数据包含 status: check in 的值时候,该数据才会被拉取下来.
status:check in
cid:12345
name:maki
room_number:1111status:check in
cid:12346
name:vicky
room_number:2222status:check in
cid:12347
name:mary
room_number:3333

场景3: 开通持续拉取目标logstore 数据

DSL编排语法

如果目标logstore 的数据是持续写入,我们需要持续的去拉取时候,设置 to_time 参数为None 就可以,同时可以设置fetch_interval 设置拉取的时间间隔,和refresh_interval_max 当拉取遇到错误的时候退火重试的最大时间间隔

res_log_logstore_pull(..., ["cid","name","room_number","status"],from_time=1567038284,to_time=None,fetch_interval=15,refresh_interval_max=60)
# 需要注意的是,在持续拉取的过程中,如果遇到错误,服务器会一直退火重试,直到成功为止,不会停止数据加工进程。

场景4: 开启主键维护拉取的目标logstore数据(暂时不推荐)

注意事项

目前该功能仅限使用所有数据存储在logstore的同一个shard中,所以暂时不推荐使用该功能。

背景

以我们的个人信息logstore 和 酒店信息logstore的数据进行举例,因为logstore和数据库不同,logstore中的数据只能写入,无法删除,所以有的时候我们希望匹配的时候将已经删除的数据不要进行匹配,这时候就需要开启主键维护功能。

需求演示

现在我们想拉取酒店信息logstore中,所有入住还没有离开的客人信息,当status=leave的时候,表示客人已经离开酒店,所以不需要将该信息进行拉取。

DSL编排语法

res_log_logstore_pull(..., ["cid","name","room_number","status","time"],from_time=1567038284,to_time=None,primary_keys="cid",delete_data="status:leave")

得到的数据

## 可以看到 name为maki 的客人的最后更新status为leave ,已经离开酒店,所以并没有将 maki的数据拉取下来,
time:1567038284
status:check in
cid:12346
name:vicky
room_number:2222time:1567038500
status:check in
cid:12347
name:mary
room_number:3333

注意

需要注意的是 primary_keys 目前只支持设置单字符串,这个需要设置logstore数据中 值为唯一的字段,比如样例中的cid , 类似数据库的唯一主键,并且当设置primary_keys的时候,delete_data 也必须不为 None,这样才有意义。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

日志服务数据加工最佳实践: 从其他logstore拉取数据做富化相关推荐

  1. 拉取数据_Apache Kafka-数据写入过程

    本节主要内容 数据写入流程 分区策略 ACK应答机制 leader异常处理 follower异常处理 数据写入流程 数据写入流程(图1) 1.确定分区,producer确认数据写入哪个分区 2.发送数 ...

  2. Cassandra数据模型设计最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 本文是Cassandra数据模型设计第一篇(全两篇),该系列文章包含了eBay使用Cassandra数据模型设计的一些实践.其 ...

  3. Knative 应用在阿里云容器服务上的最佳实践

    作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...

  4. OLTP类系统数据结转最佳实践

    本文着重介绍了京东数据结转平台的技术架构,及OLTP类系统数据结转最佳实践,探讨解决大数据背景下的数据结转问题. 一. 背景介绍 业务系统在长期运行的过程中会积累大量的数据,这些数据有些是需要长期保存 ...

  5. 【TOP100】100个中国大数据应用最佳实践案例—为您打开万亿元大数据产业的财富之门

    热门下载(点击标题即可阅读) ☞[下载]2015中国数据分析师行业峰会精彩PPT下载(共计21个文件) 2017年3月28日至29日,由工业和信息化部指导.中国信息通信研究院和数据中心联盟主办的&qu ...

  6. 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践

    目录导读 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践 1. 开源代码整体架构设计 2. 微服务逻辑架构设计 3. 微服务熔断降级与限流规划 3.1 微服务熔断 ...

  7. 【报告分享】中国数据智能应用趋势报告:解码数据中台最佳实践,企业数字化转型新引擎.pdf(附下载链接)...

    大家好,我是文文(微信:sscbg2020),今天给大家分享爱分析于2020年10月份发布的报告<中国数据智能应用趋势报告:企业数字化转型新引擎,解码数据中台最佳实践.pdf>,希望对您有 ...

  8. 干货 | 携程机票大数据架构最佳实践

    本文转载自 携程技术中心(ctriptech) 公众号,本文PPT请点击下面 阅读原文 获取 作者简介 许鹏,携程机票大数据基础平台Leader,负责平台的构建和运维.深度掌握各种大数据开源产品,如S ...

  9. Kyligence 客户案例“泰康集团精细化经营分析与运营平台”获评数据智能最佳实践案例

    近日,"2022 爱分析·中国数据智能最佳实践案例"评选结果正式揭晓.Kyligence 携手泰康集团申报的"泰康集团精细化经营分析与运营平台"项目经过多轮角逐 ...

最新文章

  1. excel表格出问题了
  2. 语音信号处理_书单 | 语音研究进阶指南
  3. c语言运动会成绩统计报告,C语言程序设计运动会成绩统计系统1研究报告.doc
  4. Qt学习(十):QT连接mysql(增加、删除、遍历)
  5. python读取lmdb文件_python将图片转成lmdb格式
  6. android元素离边框间距,RecyclerView Item 的分割线 距边框距离问题总结
  7. 第013课_代码重定位
  8. [POI2007]MEG-Megalopolis
  9. DedeCMS 提示信息! ----------dede_addonarticle
  10. ThinkPHP链接 PgSQL
  11. odoo中tree视图上面添加按钮并绑定事件
  12. oppo手机充电慢耗电快
  13. jdbc executebatch 非事务_面试:Mybatis事务请讲解一下?
  14. mysql必知必会学习笔记
  15. 基于GEE平台实现湖泊水位与水体面积关系分析
  16. matplotlib中subplot的各参数的作用
  17. 什么都不懂的人怎么样可以建立自己的网站
  18. PCB Layout各层含义与分层原则
  19. Celeste中的平台游戏设计(思维导图)
  20. 开心网辅助程序--开心网争车位助手正式发布(含源码)

热门文章

  1. bitcount java_Java源码解释之Integer.bitCount
  2. 国外计算机专业入门语言,【转自知乎】给想要报考计算机专业学生的一些建议...
  3. 查看socket缓冲区数据_什么是socket缓冲区?
  4. 公文字体字号标准2020_一文了解公文格式规范,图文并茂(建议收藏备用)
  5. plsql无监听程序_详细!看看顶级互联网公司都在研究的无服务器架构!
  6. go语言和python结合_Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】
  7. 基于python的分布式扫描器_基于python的服务器监测系统的设计
  8. select报错 spark_spark-sql master on yarn 模式运行 select count(*) 报错日志
  9. oracle笔试题目及答案,Oracle 笔试题目带答案.doc
  10. 东方卫视收视率查询_肖战被嘲撑不起跨年收视率,看了东方卫视收视曲线,这锅不背!...