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

DataWorks:StarRocks データソース

最終更新日:Nov 09, 2025

StarRocks データソースは、StarRocks からのデータの読み取りと StarRocks へのデータの書き込みを行うための双方向チャネルを提供します。このトピックでは、DataWorks を使用した StarRocks のデータ同期について説明します。

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

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

  • EMR on ECS: StarRocks 2.1

  • StarRocks のコミュニティ版がサポートされています。

    説明
    • DataWorks は内部ネットワーク経由での StarRocks への接続のみをサポートしているため、EMR on ECS に StarRocks のコミュニティ版をデプロイする必要があります。

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

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

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

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

EMR Serverless StarRocks

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

  • ホワイトリストに追加する必要がある DataWorks リソースグループの IP アドレスについては、「一般的な構成: ホワイトリストの追加」をご参照ください。

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

    image.png

    自己管理の StarRocks

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

データソースの追加

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

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

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

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

  • シナリオ: StarRocks インスタンスとサーバーレスリソースグループが同じ VPC 内にあります。

  • サポートされている接続モード:

    • [Alibaba Cloud インスタンスモード] を選択します。同じ VPC 内の StarRocks インスタンスを選択すると、システムは自動的に接続情報を取得します。

    • [接続文字列モード] を選択して、インスタンスの内部アドレスまたは IP アドレス、ポート、および Load URL を手動で入力します。

シナリオ 2: インターネット接続

インターネット経由でデータを転送すると、セキュリティリスクが生じます。ホワイトリストや IP アドレス認証などのセキュリティポリシーを使用して、これらのリスクを軽減します。

  • シナリオ: リージョン間またはオンプレミスアクセスなどの目的で、インターネット経由で StarRocks インスタンスにアクセスする必要があります。

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

    • [接続文字列モード] を選択し、インスタンスのパブリックアドレスまたは IP アドレス、ポート、および Load URL を手動で入力します。

説明

デフォルトでは、サーバーレスリソースグループはインターネットにアクセスできません。パブリック IP アドレスを使用して StarRocks インスタンスに接続するには、アタッチされた VPC に インターネット NAT ゲートウェイ とエラスティック IP アドレス (EIP) を構成する必要があります。これにより、リソースグループはインターネット経由でデータソースにアクセスできるようになります。また、サーバーレスリソースグループが StarRocks のクエリポートFE ポート、および BE ポートにアクセスできることを確認してください。デフォルトのポートはそれぞれ 9030、8030、および 8040 です。

Alibaba Cloud EMR StarRocks Serverless を使用する場合は、[ホストアドレス/IP][内部アドレス] または [パブリックアドレス] に設定し、ポートを [クエリポート] に設定します。

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

    image.png

  • データベース: [EMR StarRocks Manager] を使用してインスタンスに接続した後、[SQL エディタ] または [Data Management] からデータベースにアクセスできます。

    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

ソーステーブルから読み取る列。

はい

なし

where

フィルター条件。多くのシナリオでは、現在日のデータのみを同期することがあります。これを行うには、where 条件を gmt_create>$bizdate に設定します。

  • where 条件により、効果的な増分同期が可能になります。

  • where 文を指定しない場合、または where のキーや値を指定しない場合は、完全なデータ同期が実行されます。

いいえ

なし

table

ソーステーブルの名前。

はい

なし

splitPk

StarRocks Reader がデータを抽出する際に 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

StarRocks StreamLoad のリクエストパラメーター。StreamLoad CSV を使用してデータをインポートする場合、ここでインポートパラメーターを構成できます。特別な構成がない場合は、{} を使用します。構成可能なパラメーターは次のとおりです:

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

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

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

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

StreamLoad は JSON 形式でのデータのインポートもサポートしています。次のように構成できます:

{
  "format": "json"
}

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

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

    実際のシナリオでは、インポートする JSON データが角括弧 [] のペアで囲まれている場合があります。この場合、このパラメーターを true に設定します。StarRocks は外側の角括弧 [] を削除し、各内部オブジェクトを個別の行としてインポートします。このパラメーターを false に設定すると、StarRocks は JSON ファイル全体を単一の配列として解析し、1 つの行としてインポートします。

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

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

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

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

    説明

    デフォルトでは、HTTP リクエストの JSON 本文のサイズは 100 MB を超えることはできません。サイズが 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 を追加して、サイズチェックをスキップします。

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

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

    有効な値:

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

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

    デフォルト値: false

はい

なし

column

宛先テーブルに書き込む列。

はい

なし

loadUrl

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

はい

なし

table

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

はい

なし

preSql

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

いいえ

なし

postSql

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

いいえ

なし

maxBatchRows

バッチごとに書き込む最大行数。

いいえ

500000

maxBatchSize

バッチごとに書き込む最大バイト数。

いいえ

5242880

strategyOnError

StarRocks へのバッチ書き込み中の例外を処理するためのポリシー。

有効な値:

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

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

デフォルト値: exit

いいえ

exit