本文為您介紹如何使用Catalog將MaxCompute(MC)的離線資料移轉到ApsaraDB for 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:請確保ApsaraDB for SelectDB執行個體與MaxCompute專案位於同一地區。
公網Endpoint:公網訪問存在一定安全風險,且頻寬資源有限,不建議在生產環境中使用。如需使用公網訪問,請參見使用公網NAT Gateway實現公網訪問。
說明ApsaraDB for SelectDB4.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;