日志服务数据加工最佳实践: 从RDS-MySQL拉取数据做富化

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本篇覆盖日志服务数据加工最佳实践: 从RDS-MySQL拉取数据做富化的各种场景, 包括定期刷新拉取所有, 拉取部分数据, 拉取后再过滤数据, 调整返回表格结构等

概述

使用全局富化函数做富化时, 需要传递一个字典或者表格结构做富化. 参考构建字典与表格做数据富化的各种途径比较.
本篇介绍从使用资源函数res_rds_mysql从RDS-MySQL拉取数据的做富化的详细实践.关于res_rds_mysql的参数说明, 参考这里.

背景

这里我们在RDS中存放用户信息表格userinfo.
原始数据库表中内容:

id province city uid
1 jiangsu nanjing 01234
2 henan zhengzhou 01235
3 heilongjiang haerbin 01236
4 jiangsu yantai 01237

场景1:定期刷新拉取所有

富化数据如果定期会全量刷新时, 希望数据加工任务能够自动定期去拉取, 可以如下配置:

res_rds_mysql(..., refresh_interval=300)

上述语法会返回一个表格结构, 并且会自动跟踪表格, 每隔5分钟重新拉取一遍mysql 表的内容并刷新这个表格内容。

场景2:拉取部分数据

如果仅仅使用RDS-MySQL中个别字段做富化, 推荐使用参数table, sqlfields来进行或者列过滤. 这样可以降低维表大小, 增加富化效率.

如下进行列过滤, 值选择cityuid列, 两者效果没有任何区别.

res_rds_mysql(..., sql="select city, uid from userinfo")      # 列过滤
res_rds_mysql(..., table="userinfo", fields=["city", "uid"])    # 列过滤

如下使用sql进行列与的行过滤, 选择所有uid > 1234的数据.

res_rds_mysql(..., sql="select * from userinfo where uid > 1234")   # 行过滤
res_rds_mysql(..., sql="select city, uid from userinfo where uid > 1234")   # 行列过滤

场景3:拉取后再过滤数据

在使用参数table, sqlfields来进行或者列过滤不能满足需求时, 可以进一步使用参数fetch_exclude_data和/或fetch_include_data来进行过滤.

例如:

res_rds_mysql(..., fetch_include_data="uid==0123*")   # 保留所有uid以0123开头的数据
res_rds_mysql(..., fetch_exclude_data="uid < 1234")    # 去除所有uid小于1234的数据
res_rds_mysql(..., fetch_include_data="city:n", fetch_exclude_data="uid < 1234") 

参考以上注释了解两者区别, 注意到这里的这两个参数的格式都是查询字符串.
同时配置fetch_exclude_datafetch_include_data, 会优先执行fetch_exclude_data语法,将不符合的数据剔除,然后在执行fetch_include_data语法,将符合的数据添加进来,fetch_exclude_data和fetch_exclude_data参数语法都是根据e_search语法,支持正则匹配,模糊匹配等多种方式,上述第三行语法含义为,拉取表中uid大于等于1234, 且以city包含字母n的所有数据做维表.

注意: 这种过滤是在拉取数据到本地后再进行过滤, 因此效率没有参数table, sqlfields过滤高.

场景4:调整返回表格结构

默认返回的表格列名与RDS-MySQL中的表格结构一致, 如果需要调整, 例如将province字段编程prov等, 可以使用如下方法:

res_rds_mysql(..., sql="select id, uid, province as prov, city from userinfo")
res_rds_mysql(..., table="userinfo", fields=["id", "uid", ("province", "prov"), "city" ])

两个方法是一样效果. 关于fields参数, 可以进一步参考数据列列表

进一步参考

欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持:
image

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
消息中间件 关系型数据库 Kafka
一种小资源情况下RDS数据实时同步StarRocks方案
使用一台4C8 G服务器轻松实现2个MySQL实例中通过负责分库分表规则之后的5000多张表的数据实时同步到StarRocks
142 67
|
28天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
132 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
28天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
130 5
|
2月前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
41 2
|
3月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
231 3
|
4月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
92 0
|
4月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
60 0
|
分布式计算 关系型数据库 MySQL
E-Mapreduce如何处理RDS的数据
目前网站的一些业务数据存在了数据库中,这些数据往往需要做进一步的分析,如:需要跟一些日志数据关联分析,或者需要进行一些如机器学习的分析。在阿里云上,目前E-Mapreduce可以满足这类进一步分析的需求。
4975 0
|
3天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
45 15

相关产品

  • 日志服务