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

ApsaraDB for SelectDB:StarRocks データの移行

最終更新日:May 21, 2026

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

移行方法の選択

次の表を使用して、ビジネスシナリオに最適な移行方法を選択してください。

方法

ユースケース

メリット

手順

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

すべてのシナリオに適用可能です。

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

  • 視覚的な UI を提供し、設定が容易です。

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

データ移行

カタログ

データがすでに Alibaba Cloud 上にある場合。

説明

これには、Alibaba Cloud E-MapReduce クラスターを含むシナリオが含まれます。

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

    説明

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

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

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

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

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

前提条件

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

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

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

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

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

サンプル環境

この例では、StarRocks の starRocks_db データベースの SR_t テーブルからSelectDBtest_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 (DMS) を使用してログインする場合、SWITCH コマンドは機能しません。MySQL クライアントを使用して接続してください。

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

    CREATE CATALOG starrocks_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:JDBC URL 内のすべてのデータベースを同期します。

    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 | starrocks_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. (オプション) 外部カタログ starrocks_catalog に切り替えます。

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

    説明

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

    SWITCH starrocks_catalog;
  5. (オプション) internal カタログに切り替えます。

    手順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 starrocks_catalog.starRocks_db.SR_t;
  10. データインポートのステータスを確認します。

    SELECT * FROM test_SR2SelectDB;

増分データの移行

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

  • SelectDB 向けのデータを生成する際に、データのコピーを SelectDB に並行して書き込むことができます。

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