すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for SelectDB:StarRocks データの移行

最終更新日:Sep 12, 2026

StarRocks から ApsaraDB for SelectDB へは、ApsaraDB for SelectDB のデータ移行機能またはカタログを使用してデータを移行できます。データ量とビジネスシナリオに基づいて、適切な方法を選択できます。このトピックでは、カタログを使用して StarRocks から ApsaraDB for SelectDB へオフラインデータを移行する方法について説明します。

移行方法の選択

次の表を使用して、ユースケースに最適な移行方法を選択してください。

移行方法

ユースケース

メリット

手順

ApsaraDB for SelectDB のデータ移行機能を使用する (推奨)

すべてのシナリオに適用できます。

  • パブリックネットワーク経由のデータ転送コストを回避できます。

  • 設定を容易に行えるビジュアル UI を提供します。

  • 移行タスクのリストページと詳細ページで、タスクの進捗を監視し、詳細を確認できます。

データ移行

カタログ

すでに Alibaba Cloud 上にあるデータに適用できます。

説明

Alibaba Cloud E-MapReduce クラスターを使用するシナリオも含まれます。

  • データ転送コストを回避できます。

    説明

    StarRocks インスタンスと SelectDB インスタンスが同じリージョンにある場合、移行では内部ネットワークトラフィックが使用されます。

  • 外部コンポーネントは不要です。

カタログを使用したデータ移行

このトピックでは、カタログを例に、StarRocks から SelectDB へオフラインデータを移行する方法について説明します。

カタログを使用したデータ移行

前提条件

  • StarRocks インスタンスと ApsaraDB for SelectDB インスタンス間のSelectDBを確保してください。

    • StarRocks クラスターのすべてのノードと ApsaraDB for SelectDB インスタンスが同じ VPC にあること。異なる VPC にある場合は、まずネットワーク接続を確立する必要があります。詳細については、「ApsaraDB for SelectDB インスタンスとデータソース間のネットワーク接続を確立する方法」をご参照ください。

    • StarRocks インスタンスの IP アドレスを ApsaraDB for SelectDB インスタンスのホワイトリストに追加してください。詳細については、「ホワイトリストの設定」をご参照ください。

    • StarRocks インスタンスでホワイトリストを使用している場合は、SelectDB インスタンスが存在する VPC の CIDR ブロックを StarRocks のホワイトリストに追加してください。

  • カタログとその基本操作に精通していること。詳細については、「レイクハウスデータ処理」をご参照ください。

サンプル環境

この例では、StarRocks の starRocks_db データベースの SR_t テーブルから SelectDB の test_db データベースの test_SR2SelectDB テーブルにデータを移行する方法を示します。移行を実行する際には、必要に応じてパラメーターを変更してください。サンプル環境は次のとおりです。

  • ターゲットデータベース: test_db

  • ターゲットテーブル: test_SR2SelectDB

  • ソースデータベース: starRocks_db

  • ソーステーブル: SR_t

サンプルソースデータの準備

ソースの StarRocks インスタンスにログインし、次の手順を実行してください。

  1. データベースを作成します。

    CREATE DATABASE starRocks_db;
  2. テーブルを作成します。

    CREATE TABLE SR_t
    (
        id int,
        name string,
        age int
    )
    DISTRIBUTED BY HASH(id) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  3. データを挿入します。

    INSERT INTO SR_t VALUES
    (1, 'Alice', 25),
    (2, 'Bob', 30),
    (3, 'Charlie', 35),
    (4, 'David', 40),
    (5, 'Eve', 45);

操作手順

  1. SelectDB インスタンスに接続します。詳細については、「インスタンスへの接続」をご参照ください。

    説明

    Data Management Service (DMS) を使用してログインした場合、SWITCH コマンドは機能しません。MySQL クライアントを使用して接続してください。

  2. StarRocks JDBC カタログを作成します。詳細については、「JDBC データソース」をご参照ください。

    CREATE CATALOG SR_catalog PROPERTIES (
        "type"="jdbc",
        "user"="root",
        "password"="123456",
        "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo",
        "driver_url" = "mysql-connector-java-8.0.25.jar",
        "driver_class" = "com.mysql.cj.jdbc.Driver",
        "checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a"
    )

    パラメーター

    パラメーター

    必須

    デフォルト値

    説明

    user

    はい

    なし

    StarRocks データベースのアカウント。

    password

    はい

    なし

    StarRocks データベースのパスワード。

    jdbc_url

    はい

    なし

    JDBC 接続文字列。StarRocks データベースの接続アドレスを含める必要があります。

    driver_url

    はい

    なし

    JDBC ドライバーの JAR パッケージ名。

    説明
    • mysql-connector-java-8.0.25.jar を使用します。

    • 別の JAR パッケージを使用するには、チケットを送信してサポートを依頼してください。

    driver_class

    はい

    なし

    JDBC ドライバーのクラス名。

    このパラメーターを com.mysql.cj.jdbc.Driver に設定します。

    lower_case_table_names

    (バージョン 4.0 で lower_case_meta_names に変更)

    いいえ

    "false"

    外部 JDBC データソースからデータベース名とテーブル名を小文字で同期するかどうかを指定します。

    true: リモートシステム内の実際の名前へのマッピングを小文字の名前から維持することで、小文字ではない名前のデータベースやテーブルを照会できます。この場合、データベース、テーブル、および列の名前はすべて小文字に変換されます。

    false: 小文字ではない名前のデータベースやテーブルを照会することはできません。

    重要
    • SelectDB 3.0 の場合:

      • FE の lower_case_table_names パラメーターが 1 または 2 に設定されている場合は、カタログの lower_case_table_names パラメーターを true に設定する必要があります。

      • FE の lower_case_table_names パラメーターが 0 に設定されている場合、カタログパラメーターは true または false に設定できます。

    • SelectDB 4.0 の場合:

      • FE の lower_case_table_names パラメーターが 0 または 2 に設定されている場合、データベース、テーブル、および列の名前は変換されません。

      • FE の lower_case_table_names パラメーターが 1 に設定されている場合、テーブル名は小文字に変換されますが、データベース名と列名は変換されません。

    only_specified_database

    いいえ

    "false"

    指定されたデータベースのみを同期するかどうかを指定します。

    true: JDBC URL で指定されたデータベースのみを同期します。

    false:ユーザーが権限を持つすべてのデータベースを同期します。

    include_database_list

    いいえ

    ""

    only_specified_database=true の場合、同期するデータベースを指定します。複数のデータベースはコンマ (,) で区切ります。データベース名は、大文字と小文字が区別されます。

    exclude_database_list

    いいえ

    ""

    only_specified_database=true の場合、同期から除外するデータベースを指定します。複数のデータベースはコンマ (,) で区切ります。データベース名は、大文字と小文字が区別されます。

    meta_names_mapping

    いいえ

    ""

    外部データソースに DORIS と doris のように大文字と小文字だけが異なる名前がある場合、カタログをクエリするとあいまいさによるエラーが発生する可能性があります。この場合、meta_names_mapping パラメーターを設定して競合を解決します。

    詳細については、「大文字と小文字の区別の設定」をご参照ください。

    重要

    このパラメーターは SelectDB 4.0 にのみ適用されます。

  3. カタログを表示します。

    SHOW CATALOGS; -- カタログが正常に作成されたことを確認します。

    次の結果が返されます。

    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
    | CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
    | 436009309195 | SR_catalog | jdbc      |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
    |            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
  4. (任意) 外部カタログ SR_catalog に切り替えます。

    外部カタログ SR_catalog のデータは、内部カタログと同じように表示およびアクセスできます。

    説明

    現在、ApsaraDB for SelectDB は、外部カタログ内のデータに対する読み取り操作のみをサポートしています。

    SWITCH SR_catalog;
  5. (任意) 内部カタログに切り替えます。

    手順 4 を実行しなかった場合は、この手順をスキップしてください。

    SWITCH internal;
  6. (任意) データベースを作成します。

    ターゲットデータベースをすでに作成している場合は、この手順をスキップしてください。

    CREATE database test_db;
  7. ターゲットデータベースに切り替えます。

    USE test_db;
  8. テーブルを作成します。

    すでにターゲットテーブルがある場合は、ターゲットテーブルの列の型が StarRocks のソースデータの列の型に対応していることを確認してください。

    ターゲットテーブルがない場合は、テーブルを作成する際に、その列の型が StarRocks のソースデータの列の型に対応していることを確認してください。

    列マッピングの詳細については、「型マッピング」をご参照ください。

    CREATE TABLE test_SR2SelectDB
    (
        id int,
        name string,
        age int
    )
    DISTRIBUTED BY HASH(id) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  9. データを移行します。

    INSERT INTO test_SR2SelectDB SELECT *  FROM SR_catalog.starRocks_db.SR_t;
  10. データインポートの結果を確認します。

    SELECT *  FROM test_SR2SelectDB;

増分データの移行

本番環境の StarRocks データには、オフラインデータと増分データの両方が含まれます。StarRocks から SelectDB へデータを移行する一般的なユースケースは、クエリの高速化のためにデータウェアハウス へデータをコピーすることです。増分データを移行するには、次のいずれかの方法を検討してください。

  • SelectDB 向けのデータを生成すると同時に、そのコピーを SelectDB に書き込みます。

  • StarRocks からパーティション化されたデータを定期的に読み取り、 SelectDB に書き込みます。