迁移MaxCompute数据

本文为您介绍如何使用CatalogMaxCompute(MC)的离线数据迁移到云数据库 SelectDB 版

前提条件

MaxCompute已开启开放存储(Storage API)功能。具体操作及支持的地域,请参见租户属性

示例环境

本示例为将MaxComputebank_data中的数据迁移到SelectDB 的数据库mc_db中表test_mc2SelectDB中。

  • 源表:bank_data

  • 目标库:mc_db

  • 目标表:test_mc2SelectDB

操作步骤

  1. 连接SelectDB实例。具体操作,请参见连接实例

  2. 创建Catalog。

    1. 创建MaxComputeCatalog。

      CREATE CATALOG mc PROPERTIES (
       "type" = "max_compute",
       "mc.region" = "cn-beijing",
       "mc.default.project" = "yourProject",
       "mc.access_key" = "yourAccessKeyID",
       "mc.secret_key" = "yourAccessKeySecret",
       "mc.endpoint" = "https://service.cn-beijing-vpc.maxcompute.aliyun-inc.com/api"
      );

      参数

      描述

      type

      固定为“max_compute”。

      mc.region

      MaxCompute项目所在地域。

      mc.default.project

      MaxCompute项目名。

      mc.access_key

      AccessKey ID。具体操作,请参见创建AccessKey

      mc.secret_key

      AccessKey Secret。

      mc.public_access

      mc.endpoint配置为公网Endpoint时,需要配置"mc.public_access"="true"

      mc.endpoint

      MaxCompute项目所在地域的Endpoint

      说明

      云数据库 SelectDB 版4.0及以上版本需要配置该参数。

    2. 查看Catalog。

      SHOW CATALOGS; --查看CATALOG是否创建成功

      查询结果如下。

      CatalogId	CatalogName	Type	        IsCurrent	CreateTime	LastUpdateTime	  Comment
      0	        internal	internal	Yes			                          Doris internal catalog
      175854218****	mc	        max_compute	No	        2025-09-24 11:26:27.552259510		
    3. 可选)切换至External Catalog mc目录下。

      说明

      目前,云数据库 SelectDB 版External Catalog中的数据只支持读操作。您可以像使用Internal Catalog一样,对External Catalog mc的数据进行查看和访问,具体请参见查询用法

      SWITCH mc;
    4. 可选)切换内部的Catalog internal目录下。如果您没有执行上述切换步骤,可跳过此步骤。

      SWITCH internal;
  3. 创建目标数据库与表。

    1. 创建目标数据库。

      CREATE database mc_db;
    2. 切换至目标数据库。

      USE mc_db;
    3. 创建表。目标列类型需与MaxCompute源数据列类型对应。列映射详情,请参见列类型映射

      CREATE TABLE test_mc2SelectDB
      (
          age             BIGINT COMMENT '年龄',
          job             VARCHAR(255) COMMENT '工作类型',
          marital         VARCHAR(255) COMMENT '婚否',
          education       VARCHAR(255) COMMENT '教育程度',
          credit          VARCHAR(255) COMMENT '是否有信用卡',
          housing         VARCHAR(255) COMMENT '是否有房贷',
          loan            VARCHAR(255) COMMENT '是否有贷款',
          contact         VARCHAR(255) COMMENT '联系方式',
          month           VARCHAR(255) COMMENT '月份',
          day_of_week     VARCHAR(255) COMMENT '星期几',
          duration        VARCHAR(255) COMMENT '持续时间',
          campaign        BIGINT COMMENT '本次活动联系的次数',
          pdays           DOUBLE COMMENT '与上一次联系的时间间隔',
          previous        DOUBLE COMMENT '之前与客户联系的次数',
          poutcome        VARCHAR(255) COMMENT '之前市场活动的结果',
          emp_var_rate    DOUBLE COMMENT '就业变化速率',
          cons_price_idx  DOUBLE COMMENT '消费者物价指数',
          cons_conf_idx   DOUBLE COMMENT '消费者信心指数',
          euribor3m       DOUBLE COMMENT '欧元存款利率',
          nr_employed     DOUBLE COMMENT '职工人数',
          fixed_deposit   BIGINT COMMENT '是否有定期存款'
      )
      DISTRIBUTED BY HASH(age) BUCKETS 10
      PROPERTIES (
          "replication_num" = "1"
      );
  4. 迁移数据。请将以下SQL中的<yourProject>替换为MaxCompute的项目名。

    INSERT INTO test_mc2SelectDB SELECT *  FROM mc.<yourProject>.bank_data;
  5. 您可以通过查询表的统计信息(如COUNTSUM等),校验源表和目标表的数据一致性。示例如下。

    SELECT COUNT(*) FROM test_mc2SelectDB;