本文为您介绍如何使用Catalog将MaxCompute(MC)的离线数据迁移到云数据库 SelectDB 版。
前提条件
MaxCompute已开启开放存储(Storage API)功能。具体操作及支持的地域,请参见租户属性。
示例环境
本示例为将MaxCompute的bank_data中的数据迁移到SelectDB 的数据库mc_db
中表test_mc2SelectDB
中。
源表:bank_data
目标库:mc_db
目标表:test_mc2SelectDB
操作步骤
连接SelectDB实例。具体操作,请参见连接实例。
创建Catalog。
创建MaxCompute的Catalog。
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。
(推荐)VPC Endpoint:请确保云数据库 SelectDB 版实例与MaxCompute项目位于同一地域。
公网Endpoint:公网访问存在一定安全风险,且带宽资源有限,不建议在生产环境中使用。如需使用公网访问,请参见使用公网NAT网关实现公网访问。
说明云数据库 SelectDB 版4.0及以上版本需要配置该参数。
查看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
(可选)切换至External Catalog mc目录下。
说明目前,云数据库 SelectDB 版对External Catalog中的数据只支持读操作。您可以像使用Internal Catalog一样,对External Catalog mc的数据进行查看和访问,具体请参见查询用法。
SWITCH mc;
(可选)切换内部的Catalog internal目录下。如果您没有执行上述切换步骤,可跳过此步骤。
SWITCH internal;
创建目标数据库与表。
创建目标数据库。
CREATE database mc_db;
切换至目标数据库。
USE mc_db;
创建表。目标列类型需与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" );
迁移数据。请将以下SQL中的
<yourProject>
替换为MaxCompute的项目名。INSERT INTO test_mc2SelectDB SELECT * FROM mc.<yourProject>.bank_data;
您可以通过查询表的统计信息(如
COUNT
、SUM
等),校验源表和目标表的数据一致性。示例如下。SELECT COUNT(*) FROM test_mc2SelectDB;