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

DataWorks:StarRocks データソース

最終更新日:Apr 21, 2026

StarRocks データソースは、StarRocks との間でデータを読み書きするための双方向チャネルを提供します。このトピックでは、DataWorks が StarRocks のデータ同期でサポートする機能について説明します。

サポートされるバージョン

  • すべてのバージョンの EMR Serverless StarRocks。

  • EMR on ECS: StarRocks 2.1

  • Community Edition of StarRocks

    説明
    • DataWorks は、内部ネットワーク経由での StarRocks への接続のみをサポートします。したがって、EMR on ECS インスタンスに Community Edition of StarRocks をデプロイする必要があります。

    • Community Edition of StarRocks はオープンソースプロジェクトです。このデータソースを使用する際に互換性の問題が発生した場合は、チケットを送信してフィードバックを提供できます。

制限事項

  • MySQL から StarRocks へのデータベース全体のリアルタイム同期では、送信先の StarRocks テーブルはプライマリキーモデルを使用する必要があります。

  • MySQL から StarRocks へのデータベース全体のリアルタイム同期は、`TRUNCATE` 文を除き、データ定義言語 (DDL) の同期をサポートしていません。他の DDL 文については、無視するか、システムにエラーを報告させるかを選択できます。

サポートされるフィールドタイプ

数値、文字列、日付のフィールドタイプのみがサポートされています。

データ同期の前提条件 (ネットワーク接続)

EMR Serverless StarRocks

リソースグループのネットワーク接続を確保するには、使用する予定の DataWorks リソースグループの IP アドレスを、EMR Serverless StarRocks インスタンスの内部ネットワークホワイトリストに追加する必要があります。

  • DataWorks リソースグループの IP アドレスホワイトリストについては、「DataWorks の CIDR ブロックをホワイトリストに追加」をご参照ください。

  • 次の図は、EMR Serverless StarRocks インスタンスのホワイトリストに IP アドレスを追加する場所を示しています。

    image.png

セルフマネージド StarRocks

DataWorks リソースグループが StarRocks のクエリポート、FE ポート、および BE ポートにアクセスできることを確認してください。これらのポートは通常、9030、8030、および 8040 です。

データソースの追加

DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの説明を表示して、各パラメーターの意味を理解できます

ネットワーク環境に基づいて StarRocks の接続モードを選択します:

シナリオ 1:内部ネットワーク接続 (推奨)

内部ネットワーク接続は、低レイテンシーで安全なデータ転送を提供します。追加のパブリックネットワーク権限は必要ありません。

  • シナリオ:ご利用の StarRocks インスタンスとサーバーレスリソースグループが同じ VPC 内にある場合。

  • Alibaba Cloud インスタンスモードと接続文字列モードがサポートされています

    • ApsaraDB for RDS を選択:同じ VPC 内の StarRocks インスタンスを直接選択できます。システムが接続情報を自動的に取得するため、手動で設定する必要はありません。

    • User-created Data Store with Public IP Addresses を選択します。このモードでは、インスタンスの内部エンドポイント、ポート、および Load URL を入力できます。

シナリオ 2:パブリックネットワーク接続

パブリックネットワーク接続にはセキュリティリスクがあります。ホワイトリストや IP ベースの認証などのセキュリティポリシーを使用することを推奨します。

  • シナリオ:クロスリージョンアクセスやオンプレミスアクセスなど、パブリックネットワーク経由で StarRocks インスタンスにアクセスする必要がある場合。

  • 接続文字列モードがサポートされています (StarRocks インスタンスでパブリックネットワークアクセスが有効になっていることを確認してください)

    • User-created Data Store with Public IP Addresses を選択し、インスタンスのパブリック IP アドレス、ポート、および Load URL を手動で入力します。

説明

デフォルトでは、サーバーレスリソースグループはパブリックネットワークにアクセスできません。パブリックアドレスを使用して StarRocks インスタンスに接続するには、アタッチされた VPC にインターネット NAT ゲートウェイと Elastic IP アドレス (EIP) を設定して、データソースへのパブリックネットワークアクセスを有効にする必要があります。また、サーバーレスリソースグループが StarRocks のクエリポート、FE ポート、および BE ポートにアクセスできることを確認する必要もあります。これらのポートは通常、9030、8030、および 8040 です。

Alibaba Cloud EMR StarRocks Serverless を使用する場合は、ホストアドレス/IPInternal Endpoint または Public network address に設定し、ポートを [クエリポート] に設定します。

  • FE:この情報はインスタンスの詳細ページで確認できます。

    image.png

  • データベースEMR StarRocks Manager を使用してインスタンスに接続した後、SQL Editor または メタデータ管理 でデータベースを表示できます。

    image.png

    説明

    データベースを作成するには、SQL エディタで SQL コマンドを実行します。

データ同期タスクの開発

同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。

単一テーブルのオフライン同期の設定ガイド

単一テーブルのリアルタイム同期

データベース全体のオフライン同期

データベース全体のリアルタイム同期

付録:スクリプトデモとパラメーターの説明

コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプト形式の要件に基づいて、スクリプト内で関連パラメーターを設定する必要があります。詳細については、「コードエディタの使用」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。

Reader スクリプトデモ

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "datasource": "starrocks_datasource",
        "column": [
            "id",
            "name"
        ],
        "where": "id>100",
        "table": "table1",
        "splitPk": "id"
    },
    "name": "Reader",
    "category": "reader"
}

Reader スクリプトのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

StarRocks データソースの名前。

はい

なし

selectedDatabase

StarRocks データベースの名前。

いいえ

StarRocks データソースで設定されたデータベース名。

column

データを読み取る列の名前。StarRocks からデータを読み取る際に `SET_VAR` ヒントを追加したい場合は、最初の列名の前にヒントを追加できます。たとえば、`id` 列からデータを読み取り、SET_VAR(enable_spill = true) を追加したい場合、column パラメーターを [ "/*+ SET_VAR(enable_spill = true)*/ id"] に設定します。

はい

なし

where

フィルター条件。実際のビジネスシナリオでは、多くの場合、当日のデータを同期します。where 条件を gmt_create>${bizdate} に設定します。

  • where 条件は増分同期に使用できます。

  • where 句が提供されていない場合、または where 句のキーまたは値が提供されていない場合、データ同期は完全なデータ同期として扱われます。

いいえ

なし

table

同期するテーブルの名前。

はい

なし

splitPk

StarRocks Reader がデータを抽出する際に splitPk を指定すると、システムは splitPk で表されるフィールドを使用してデータシャーディングを行います。これにより、データ同期のタスクを並行して実行でき、効率が向上します。プライマリキーは通常、均等に分散されているため、splitPk にはテーブルのプライマリキーを使用することを推奨します。これにより、シャードでのデータホットスポットを防ぐことができます。

いいえ

なし

Writer スクリプトデモ

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "loadProps": {
            "row_delimiter": "\\x02",
            "column_separator": "\\x01"
        },
        "datasource": "starrocks_public",
        "column": [
            "id",
            "name"
        ],
        "loadUrl": [
            "1.1.X.X:8030"
        ],
        "table": "table1",
        "preSql": [
            "truncate table table1"
        ],
        "postSql": [
        ],
        "maxBatchRows": 500000,
        "maxBatchSize": 5242880,
        "strategyOnError": "exit"
    },
    "name": "Writer",
    "category": "writer"
}

Writer スクリプトのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

StarRocks データソースの名前。

はい

なし

selectedDatabase

StarRocks データベースの名前。

いいえ

StarRocks データソースで設定されたデータベース名。

loadProps

説明

Stream Load を使用して StarRocks にデータを書き込む際、書き込みポリシー (Upsert または Append) は送信先テーブルのモデル定義によって自動的に決定され、書き込み段階で指定する必要はありません。具体的には、プライマリキーモデルは自動的に Upsert 操作を実行し、他のモデルはデフォルトで Append 操作を実行します。

StarRocks Stream Load のリクエストパラメーター。Stream Load を使用して CSV 形式でデータをインポートする場合、ここでインポートパラメーターを設定できます。特別な設定が不要な場合は、{} を使用します。設定可能なパラメーターは次のとおりです:

  • column_separator:CSV インポートの列区切り文字。デフォルト値:\t。

  • row_delimiter:CSV インポートの行区切り文字。デフォルト値:\n。

データに \t または \n が含まれている場合は、他の文字を区切り文字として使用する必要があります。次の例は、特殊文字の使用方法を示しています:

{"column_separator":"\\x01","row_delimiter":"\\x02"}

Stream Load は JSON 形式でのデータインポートもサポートしています。次のパラメーターを設定できます:

{
  "format": "json"
}

JSON 形式で設定できるパラメーターは次のとおりです:

  • strip_outer_array:最も外側の配列構造をトリミングするかどうかを指定します。有効な値:true および false。デフォルト値:false

    実際のビジネスシナリオでは、インポートする JSON データが、配列構造を表すために最も外側の層に角括弧 [] を持つことがあります。この場合、このパラメーターを true に設定することを推奨します。StarRocks は外側の角括弧 [] をトリミングし、括弧内の各内部配列を個別のデータ行としてインポートします。このパラメーターを false に設定すると、StarRocks は JSON データファイル全体を配列として解析し、単一のデータ行としてインポートします。

    たとえば、インポートする JSON データは次のとおりです:

    [{"category":1,"author":2},{"category":3,"author":4}]
    
    • このパラメーターを true に設定すると、StarRocks は {"category":1,"author":2}{"category":3,"author":4} を 2 つのデータ行として解析し、送信先の StarRocks テーブルの対応するデータ行にインポートします。

    • このパラメーターを false に設定すると、StarRocks は JSON 配列全体を単一のデータ行として解析し、送信先の StarRocks テーブルにインポートします。

  • ignore_json_size:HTTP リクエスト内の JSON 本文のサイズをチェックするかどうかを指定します。

    説明

    デフォルトでは、HTTP リクエスト内の JSON 本文のサイズは 100 MB を超えることはできません。JSON 本文のサイズが 100 MB を超えると、次のエラーが報告されます:The size of this batch exceed the max size [104857600] of json type data data [8617627793].Set ignore_json_size to skip check,although it may lead enormous memory consuming. このエラーを回避するには、HTTP リクエストヘッダーに ignore_json_size: true を追加して、JSON 本文のサイズのチェックをスキップできます。

  • compression:Stream Load のデータ転送中に使用する圧縮アルゴリズムを指定します。サポートされるアルゴリズム:GZIPBZIP2LZ4_FRAME、および ZSTD

  • strict_mode:厳格モードを有効にするかどうかを指定します。

    有効な値:

    • true:厳格モードを有効にします。StarRocks は不正なデータ行をフィルタリングし、正しいデータ行のみをインポートして、不正なデータの詳細を返します。

    • false:厳格モードを無効にします。StarRocks は変換に失敗した不正なフィールドを NULL 値に変換し、これらの NULL 値を含む不正なデータ行を正しいデータ行と一緒にインポートします。

    デフォルト値:false

はい

なし

column

設定されたテーブルで同期する列のセット。

はい

なし

loadUrl

StarRocks フロントエンドの IP アドレスと HTTP ポートを入力します。デフォルトは通常 8030 です。複数のフロントエンドノードがある場合は、カンマ (,) で区切ってすべて設定できます。

はい

なし

table

同期するテーブルの名前。

はい

なし

preSql

データ同期タスクが実行される前に実行される SQL 文。たとえば、`TRUNCATE TABLE tablename` は実行前にテーブルから古いデータをクリアします。

いいえ

なし

postSql

データ同期タスクが実行された後に実行される SQL 文。

いいえ

なし

maxBatchRows

各バッチで書き込む最大行数。

いいえ

500000

maxBatchSize

各バッチで書き込む最大バイト数。

いいえ

5242880

strategyOnError

StarRocks にデータをバッチで書き込む際の例外処理ポリシー。

有効な値:

  • exit:StarRocks への書き込み中に例外が発生した場合、同期タスクは失敗して終了します。

  • batchDirtyData:StarRocks への書き込み中に例外が発生した場合、現在のバッチデータはダーティデータとして記録されます。

デフォルト値:exit

いいえ

exit