全部产品

多库合并建仓

更新时间:2020-09-10 15:09:56

背景信息

在数据库应用中,当单个关系型数据库RDS(Relational Database Service)的数据量越来越多时,相应的数据查询时间也会延长,影响用户体验。为保证业务可以继续使用RDS数据库,业务端通常会采用分库分表技术,将一个RDS数据库中的单张表数据拆分到多个数据库的多张表中,然后修改业务层代码,并配合使用类似TDDL的分库分表中间件。

上述方案可解决因数据量大而导致的用户体验问题,但在对分库分表数据进行大数据分析时,逻辑上的一个表被拆成了多张表,由于没有类似TDDL中间件来屏蔽物理表的拆分,进行数据分析时变得十分复杂。

解决方案

多库合并建仓是指通过DLA控制台上的多库合并建仓向导将RDS中的分库分表数据聚合到统一的表中,并以分区表形式存储数据。您可以全局分析所有数据,也可以选择某个分区对分区数据进行分析,不影响RDS端的业务运行。

前提条件

使用多库合并建仓前,您需要完成以下准备工作:

操作步骤

  1. 登录Data Lake Analytics管理控制台
  2. 在页面左上角,选择DLA所在地域。

  3. 单击左侧导航栏的数据湖构建 > 数据入湖,在数据入湖页面单击多库合并建仓中的进入向导

  4. DLA首次访问RDS时,需要您将RDS的只读权限授予DLA,授权完成后单击下一步

    说明

    如果您之前已经将RDS的只读权限授予DLA,可以忽略该步骤。

    11

  5. 根据页面提示,进行参数配置。

    类别参数说明
    手动选择,通过手动方式指定RDS实例,该方式适用于RDS实例个数不多且实例个数处于静态或者不会频繁动态增加的场景。类型数据源的类型为RDS。 通过单击实例前的方框,将RDS实例添加到数据源中。
    数据库筛选规则输入您要同步的数据库名字。多个数据库名字之间用英文逗号(,)分隔。数据库名支持使用通配符%,例如user_%。
    通过查询,指定通过SQL查询方式指定RDS数据源,该方式适用于RDS实例个数较多且实例个数动态增加的场景。-例如SELECT 'mysql' AS engine, 'db001' AS db_name, 'rm-111..aliyuncs.com' AS host, 3306 AS port, 'rm-123445' AS instance_id, 'vpc-3424555' AS vpc_id FROM tbl1
    认证信息用户名为使用方便,DLA要求您选择的所有数据库均使用统一的用户名和密码。
    密码上述用户名对应的密码。输入用户名和密码后,您可以单击测试连接,进行连通性测试。
    建仓配置Schema名称设置Schema的名称,即RDS数据库在DLA中的映射数据库名称。
    数据位置建仓时,RDS数据在OSS中的详细存储地址。系统将自动拉取与DLA同地域的OSS Bucket,单击选择位置,您可以根据业务需要,灵活选取Bucket和Object。使用多库合并建仓功能时,DLA需要有删除OSS数据的权限,以便进行从OSS数据到RDS数据的ETL(Extract Transform Load)操作,请参见授权DLA删除OSS文件。
    同步时间设置将RDS数据同步至OSS的时间。系统默认的数据同步时间是00:30,您可以根据业务规律,将数据同步时间设置在业务低峰期,以免同步过程中可能对业务造成的影响。
    表名生成规则设置DLA建仓时,RDS表在数仓中的映射表名。映射表名将通过以下两种规则自动生成:IdentityResolver,数仓中的表名与RDS表名相同,适用于RDS中有分库但没有分表的场景。RemoveTrailingUnderscoreAndNumberResolver,将RDS表名中最后一次出现的下划线和数字去掉,作为数仓中的表名。例如,RDS表名为tbl_001,则数仓表名为tbl。
    分区配置设置数仓的分区字段以及分区字段值的生成方式。分区字段值为一个包含变量的表达式,例如${rdsInstanceId}。DLA暂时支持以下变量:rdsEngine,RDS支持的引擎类型,包含MySQL、SQLServer、PostgreSQL、Oracle。rdsDbName,RDS数据库的名字。rdsTableName,RDS表的名字。rdsInstanceId,RDS实例ID。rdsVpcId,RDS实例所属VPC ID。建议您同时填写RDS实例ID以及数据库名,例如:分区名rds_instance_id,分区值${rdsInstanceId}。分区名rds_db_name,分区值${rdsDbName}。
    高级配置自定义设置项,例如过滤字段等,请参见高级选线功能。

    2

  6. 完成上述参数配置后,单击创建,创建数据仓库。

数据仓库创建成功后,DLA自动在您设定的同步时间将RDS数据同步到OSS中,同时在OSS中创建与RDS相同的表结构、在DLA中创建对应的OSS表。