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

ApsaraDB for SelectDB:StarRocks データの移行

最終更新日:Nov 09, 2025

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

前提条件

  • StarRocks インスタンスと SelectDB インスタンスが相互に通信できることを確認してください。

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

サンプル環境

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

  • ターゲットデータベース: 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 インスタンスに接続します。詳細については、「インスタンスへの接続」をご参照ください。

    説明

    SWITCH 命令は DMS を使用してログインした場合には機能しません。MySQL クライアントを使用して接続する必要があります。

  2. StarRocks Java Database Connectivity (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. (オプション) 外部カタログフォルダ SR_catalog に切り替えます。

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

    説明

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

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

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

    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 doris_catalog.SR_db.SR_t;
  10. インポートされたデータを確認します。

    SELECT * FROM test_SR2SelectDB;

増分データの移行

本番環境では、StarRocks データにはオフラインデータと増分データの両方が含まれます。StarRocks から SelectDB にデータを移行する一般的なシナリオは、クエリを高速化するためにデータをデータウェアハウスにコピーすることです。増分データ移行には、次の 2 つの方法のいずれかを使用できます:

  • SelectDB のデータを生成するときに、同時にコピーを SelectDB に書き込むことができます。

  • 定期的なジョブを使用して StarRocks からパーティション化されたデータを読み取り、そのデータを SelectDB に書き込みます。