全部產品
Search
文件中心

ApsaraDB for SelectDB:遷移MaxCompute資料

更新時間:Sep 27, 2025

本文為您介紹如何使用Catalog將MaxCompute(MC)的離線資料移轉到ApsaraDB for SelectDB

前提條件

MaxCompute已開啟開放儲存(Storage API)功能。具體操作及支援的地區,請參見租戶屬性

樣本環境

本樣本為將MaxCompute的bank_data中的資料移轉到SelectDB 的資料庫mc_db中表test_mc2SelectDB中。

  • 源表:bank_data

  • 目標庫:mc_db

  • 目標表:test_mc2SelectDB

操作步驟

  1. 串連SelectDB執行個體。具體操作,請參見串連執行個體

  2. 建立Catalog。

    1. 建立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

      說明

      ApsaraDB for SelectDB4.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;