DLA支持分析MongoDB/RDS只读实例

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
简介: 在对Mysql,MongoDB等数据库系统进行分析时,经常面临的一个问题是在进行分析查询时如何避免对实时业务产生影响,也就是OLAP负载和OLTP负载隔离的问题。针对这个问题,阿里云数据湖团队一直在努力优化,提供满足不同场景的解决方案。

5-6-3.gif

作者:陆豪
在对Mysql,MongoDB等数据库系统进行分析时,经常面临的一个问题是在进行分析查询时如何避免对实时业务产生影响,也就是OLAP负载和OLTP负载隔离的问题。针对这个问题,阿里云数据湖团队一直在努力优化,提供满足不同场景的解决方案。

最近,我们支持了对MongoDB和RDS只读实例的分析,做到了完全不影响源库、数据完全实时,为对负载隔离有更高要求的用户提供了更好的选择。

场景分析

OLAP负载和OLTP负载隔离的问题,常常会和数据的实时性、成本等因素做权衡,综合考虑。过去,数据湖针对不同的隔离性要求和成本,提供过一些方案:

  • 针对直接查询RDS的用户,可以通过jdbc-scan-splits这个hint来调整SQL的并发度。用户可以根据业务的特点设置合理的并发度,控制OLAP查询产生的影响。jdbc-scan-splits关键字的用法参见帮助文档
  • 通过一键建仓功能在业务低峰期把数据拖到DLA,避免直接分析源库。具体介绍参见文章

但是,仍然有一些场景是这些方案覆盖不到的,例如:

  1. 一键建仓目前暂时不支持MongoDB。同样,MongoDB也不能使用jdbc-scan-splits这个hint。
  2. 以上提到的两种方法对源库仍然会产生一定的影响,如果业务没有明显的低峰,这种影响仍然不能忽略。
  3. 一键建仓不能满足对数据实时进行分析的需求。

考虑到这些因素,我们针对对分析的实时性有较高要求又可以接受一定的成本的用户,通过支持分析只读实例来实现OLAP负载隔离。这样我们就比较完整的支持了大部分场景:

分析方案 对源库影响 数据实时性 是否支持MongoDB 成本
直接查询源库 较大 实时 支持
一键建仓 较小 非实时 不支持 较低
查询只读实例 几乎无影响 实时 支持 较高

以下描述使用DLA分析MongoDB和RDS只读实例的具体步骤。

使用DLA分析MongoDB只读节点

添加MongoDB只读节点

MongoDB副本集实例在创建时可以指定只读节点的个数:
image.png
如果创建时没有选择只读节点,在创建之后也可以在实例基本信息页面添加只读节点:
image.png
添加了只读节点之后,可以在页面上看到只读节点的连接地址:
image.png
关于只读节点参见MongoDB帮助文档

创建数据库

CREATE DATABASE mongo_ro WITH DBPROPERTIES (
     catalog = 'mongodb',
     location = '只读节点连接地址,见上图',
     database = 'mongo_test',
     INSTANCE_ID = 'mongodb_instance_id',
     vpc_id = 'vpc-*******'
 );

只要这里的location写上MongoDB只读节点的连接地址,后续通过DLA进行的查询都只会连接MongoDB的只读节点。

使用DLA分析RDS只读实例

添加RDS只读实例

参见 RDS帮助文档,可以在实例详情页面右侧“添加只读实例”创建一个只读实例。
image.png
只读实例拥有独立的实例ID和连接地址:
image.png

创建数据库

 CREATE SCHEMA hello_mysql_vpc_rds WITH DBPROPERTIES (
   CATALOG = 'mysql', 
   LOCATION = 'jdbc:mysql://rm-******fofake.mysql.rds.aliyuncs.com:3306/rds_mysql_dbname',
   USER = 'rds_mysqldb_username',
   PASSWORD = 'rds_mysqldb_password',
   INSTANCE_ID = '只读实例ID',
   VPC_ID = 'rds_mysqldb_vpcid'
 );

这样,后续通过DLA进行的查询都会落在只读实例上面,不会对源库产生任何影响。

关于我们

数据湖分析Data Lake Analytics简介
欢迎大家使用数据湖分析(DLA),DLA不仅仅便宜,且快,且方便,专为阿里云数据湖分析方案而生

  • 支持自建、托管RDS、NoSQL、OSS(JSON、CSV、Parquet等格式)多种数据源分析
  • 支持按量 按照扫描量 的计费方式,准入门槛0元,提供的Serverless的弹性服务为按需收费,不需要购买固定的资源,完全契合业务潮汐带来的资源波动,满足弹性的分析需求,同时极大地降低了运维成本和使用成本
  • 平台底层托管大集群且自动弹性,在一定数据量情况下,分析性能比自建小集群高出400%
  • 支持一键 把 MySQL、PG、SqlServer、PolarDb数据库 拖到DLA,再分析,解决原MySQL不敢分析的问题。 DLA 分析性能TPC-H 10G情况 比原MySQL 8c16g 等高出10倍,数据量越大,MySQL性能越差,在1TB数据量下,原MySQL基本跑不出来
  • 产品文档:https://www.aliyun.com/product/datalakeanalytics
  • 帮助文档:https://help.aliyun.com/document_detail/70378.html
  • MySQL&PG&SqlServer一键同步数据到DLA:https://help.aliyun.com/document_detail/126559.html
  • 新客户1元试用:https://common-buy.aliyun.com/?commodityCode=openanalytics_post

图片.gif

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
739 6
|
6月前
|
存储 消息中间件 监控
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
蒋星熠Jaxonic,数据领域技术深耕者。擅长MySQL到ClickHouse链路改造,精通实时同步、数据校验与延迟治理,致力于构建高性能、高一致性的数据架构体系。
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
493 158
|
7月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
516 156
|
7月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
618 161
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
7月前
|
存储 弹性计算 关系型数据库
如何通过控制台创建RDS MySQL实例
本文介绍了通过控制台创建RDS MySQL实例的详细步骤,包括准备工作、选择计费方式、地域、实例规格、存储空间等关键配置,并指导用户完成下单与实例查看。
|
8月前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL数据库的多实例环境
MySQL多实例是指在一台服务器上运行多个MySQL服务,通过不同端口提供独立的数据服务。各实例共享安装程序,但使用各自的配置文件和数据文件,实现资源高效利用。本文详细介绍了如何通过“mysqld_multi”工具配置和启动多个MySQL实例,并演示了目录创建、初始化、配置文件修改及实例启动等操作步骤。
360 1
|
8月前
|
存储 关系型数据库 MySQL
深入理解MySQL索引类型及其应用场景分析。
通过以上介绍可以看出各类MySQL指标各自拥有明显利弊与最佳实践情墁,在实际业务处理过程中选择正确型号极其重要以确保系统运作流畅而稳健。
252 12
|
9月前
|
存储 SQL 关系型数据库
MySQL的Redo Log与Binlog机制对照分析
通过合理的配置和细致的管理,这两种日志机制相互配合,能够有效地提升MySQL数据库的可靠性和稳定性。
302 10

相关产品

  • 云数据库 RDS MySQL 版
  • 推荐镜像

    更多
    下一篇
    开通oss服务