通过日志服务实现数据库MySQL入湖OSS实践

潘伟龙
  • 收获赞:62
  • 擅长领域:擅长领域:告警监控、数据库审计、任务调度

本文为您介绍如何使用日志服务来实现MySQL数据库入湖OSS。

目标读者

需要将MySQL数据导入SLS或者OSS进行分析和存储的开发运维人员。

方案背景

日志服务(SLS)是云原生观测分析平台,为Log/Metric/Trace等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能。阿里云提供了企业级的数据湖解决方案,存储层基于阿里云对象存储OSS构建。日志服务支持开箱即用的OSS投递入湖功能,实现数据的端到端的入湖。

本文主要介绍如何借助日志服务将关系型数据库MySQL数据入湖和实践,并介绍数据在入湖之前可以日志服务可以提供哪些开箱即用的功能。

image.png

入湖流程

日志服务中数据库MySQL入湖流程主要包括数据导入数据投递两部分,日志服务在其中充当了数据通道和数据处理(ETL)的角色,借助日志服务的角色功能,可以为入湖提供更多附加的价值。

方案架构

方案架构介绍

MySQL作为一种关系型数据库,往往存储了企业核心的业务数据。典型的电商属性的企业系统会有供应商表、库存表、订单表、用户表等数据;社区属性的企业系统会有用户表、文章表、评论表等。随着业务的发展数据量往往变得非常庞大,MySQL作为一种OLTP数据库,擅长事务的处理,在海量数据下,对商务运营查询分析统计能力的需求并不友好,往往需要将数据导入到OLAP中进行分析统计。

日志服务提供了一站式数据接入能力,支持各类数据源的接入,本文主要介绍MySQL数据如何进行接入。

随着企业上云的数量越来越多,很多的企业直接使用了云上数据库,比如阿里云提供的RDS数据库,也有一些企业依然使用自建数据库,日志服务的MySQL数据导入提供了对两种部署形态的数据库的支持。

image.png

自建数据库

自建数据库主要包括在ECS上自建的数据库或者客户环境部署的数据库,对于ECS自建数据库,往往是部署在VPC网络下,日志服务提供了直接通过VPC链接ECS自建数据库的能力。对于云下环境部署的数据库,出于安全考虑一般不会提供公网的访问链接,可以使用SLS的Logtail插件进行MySQL数据的导入,对于Logtail采集MySQL数据可以参考《采集MySQL查询结果》,这了不在赘述。

RDS数据库

对于RDS数据库,日志服务数据接入提供了原生的网络连通能力,支持直接在VPC网络下的连通,不走公网流量,VPC方式是比较推荐的使用方式。

方案优势

日志服务提供了一站式的数据接入、加工、分析、告警可视化、数据投递等功能,在入湖之前还可以对数据进行更多价值的挖掘,下面举些列子来看下日志服务可用做些什么。

高性能、全功能查询分析能力

日志服务除了提供海量数据的存储之外,也提供了高性能数据的查询分析能力,支持秒级处理十亿级数据。

  • 支持灵活的分析语法,支持SQL92语法,与MySQL的数据查询无缝切换。使用参考分析概述

  • 对于数据量巨大的情况,日志服务提供了独享SQL,支持千亿级数据的高性能分析。适合分析性能要求高的场景、大规模业务数据分析场景、长周期数据分析场景。可以有效的弥补MySQL分析数据能力不足。

  • 提供了丰富的内置机器学习函数,可以通过机器学习函数调用机器学习算法,分析某一字段或若干字段在一段时间内的特征。

  • 支持Scheduled SQL,支持对海量数据的Roll Up。使用可以参考Scheduled SQL

数据加工

日志服务提供可托管、可扩展、高可用的数据加工服务。数据加工服务可用于数据的规整、富化、流转、脱敏和过滤。通过数据加工可以完成数据规整、数据分派、数据融合等场景下数据处理。

image.png

可视化

日志服务提供了丰富的可视化功能,支持创建仪表盘、统计报表、和第三方可视化工具。通过SQL查询出的结果,选择合适的统计图表类型来展示分析结果。

仪表盘作为图表的聚合容器,支持自动刷新、报表订阅、设置告警等功能。可以作为企业大盘来使用。

支持丰富的图表类型,包括表格、线图、流图以及灵活的变量配置和自定义事件等功能。

image.pngimage.png

告警

日志服务提供了一站式的告警监控、降噪、事务管理、通知分派的智能运维平台。商务运营人员(市场、客户运营、财务人员)可以通过告警功能对各种数据库或者指标(例如用户数、活跃度、广告点击率、商品转化率)等进行持续监控;识别指标的变化情况或者异常并相应,以提升运营效率、减少业务风险或财务风险。

image.png

​方案实施

前提条件

用户已开通阿里云SLS产品。

操作步骤

步骤一:将MySQL数据导入到SLS的Logstore

  1. 登录SLS控制台,在Project列表页面,选择已有的Project或者创建新的Project。

  2. 日志库标签页,选择已有Logstore或者单击+图标创建新的Logstore。

  3. 在日志库的数据接入 > 数据导入,单击+图标。选择MySQL数据导入。

image.pngimage.png
  1. 在数据源配置页面,配置相关信息。输入信息完毕后,也可以点击预览查看预览结果。注意:如果是VPC网络下,建议选择与VPC网络相同的区域以避免公网流量。image.pngimage.png

  2. 到相应的Logstore查看MySQL数据库是否正确接入,接入后可以选择开启索引。image.png

  3. 任务管理和报表展示。image.pngimage.png

步骤二:数据入湖

将数据接入到日志服务后,日志服务以Logstore作为数据接入抽象层,屏蔽了数据源的复杂性,Logstore数据以统一的方式入湖。具体使用方法可以参考:《SLS投递OSS功能升级:打造更顺畅的日志入湖体验》

日志服务的提供了全托管的数据投递功能和便捷的Wizard支持创建投递任务。仅需填写少量的字段即可完成入湖操作。image.png

并提供了统一的任务管理页面和报表展示页面。

image.pngimage.png

参考

image.png