本文为您介绍在多数据中心跨地域场景下,如何利用大数据平台在无需拷贝业务数据的情况下,实现跨域数据协同分析,提升业务分析效率。

背景信息

本实践适用于MaxCompute、DataWorks基于企业版V3.12及以上版本。

本实践的使用场景:不同的数据中心部署两个MaxCompute集群进行跨域计算。用户业务数据分布在不同数据中心,在使用跨域计算方案之前,用户需要将其他数据中心集群的数据手动拷贝到本地数据中心,然后才能做统一计算,效率较低。大数据平台提供跨域计算功能,可以在不拷贝数据的情况下,实现对不同数据中心的数据进行协同分析。

本实践涉及的主要组件介绍:

  • 大数据计算MaxCompute:是面向大数据处理的分布式系统,主要提供结构化数据的存储和计算,服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。MaxCompute为用户提供一种便捷的分析处理海量数据的手段。用户可以不必关心分布式计算细节,从而达到分析大数据的目的。
  • 一站式开发平台DataWorks:为您提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务。一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。DataWorks支持离线同步、Shell、ODPS SQL、ODPS MR等多种节点类型,通过节点之间的相互依赖,对复杂的数据进行分析处理。DataWorks提供可视化的代码开发、工作流设计器页面,无需搭配任何开发工具, 通过简单拖拽和开发,即可完成复杂的数据分析任务。

操作步骤

  1. 大数据平台准备工作。
    1. 创建大数据MaxCompute计算项目,配置计算资源、CPU、内存、存储空间等。
      1. 登录Apsara Uni-manager运营控制台。
      2. 在顶部菜单栏,选择产品 > 大数据 > 大数据计算 MaxCompute
      3. 在左侧导航栏,单击配额组管理,在页面左侧,单击创建,创建计算资源配额组作为计算资源使用,单位为cu,1cu=1核4G内存。创建配额组
      4. 在左侧导航栏,单击任务云账号,在页面左侧,单击新建云账号,创建任务云账号,一个云账号可以关联多个项目资源。创建云账号
      5. 在左侧导航栏,单击Project管理,在页面左侧,单击创建project

        创建两个MaxCompute项目,创建时选择上述步骤中创建的配额组和任务云账号,默认集群分属于不同Region的物理集群,project01项目归属Region1集群1,project02项目归属Region2集群2。MaxCompute项目之间默认是互相隔离的。

    2. 创建DataWorks工作空间,并与MaxCompute项目相关联。
      1. 在Apsara Uni-manager运营控制台的顶部菜单栏,选择产品 > 大数据 > Dataworks
      2. 在左侧导航栏,选择全部产品 > 组织管理
      3. 在左侧导航栏,单击项目列表,在页面右上方单击创建工作空间
      4. 在弹出的对话框中输入对应参数,并关联对应的大数据MaxCompute项目,如下图所示。完成后单击确定工作空间1工作空间2
  2. 大数据跨域计算。
    1. 分别在两个工作空间创建数据表,生成测试数据。
      1. 执行如下命令,在Region1的project01工作空间创建数据表name。
        CREATE TABLE IF NOT EXISTS name
        (
            `id` BIGINT COMMENT ''
            ,`name` STRING COMMENT ''
        )
        ;
        
        INSERT INTO name VALUES (1,'zhangsan'), (2,'lisi'),(3,'wangwu') ;
        
        SELECT  * FROM    name
        ;
        创建数据表1
      2. 执行如下命令,在Region2的project02工作空间创建数据表address。
        CREATE TABLE IF NOT EXISTS address
        (
            `id` BIGINT COMMENT ''
            ,`address` STRING COMMENT ''
        )
        ;
        
        INSERT INTO address VALUES (1,'beijing'), (2,'shanghai'),(3,'shenzhen') ;
        
        SELECT  * FROM    address
        ;
        创建表2
    2. 进行跨域计算。
      执行如下命令,在project01工作空间进行跨域数据查询,数据分别保存在集群1的数据表name和集群2的数据表address中,对两个数据表进行联合查询并输出计算结果。
      SELECT  name.id
              ,name.name
              ,address.address
      FROM    project01.name
      JOIN    project02.address
      WHERE   name.id = address.id
      ;
      跨域计算