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 アドレスを追加する場所を示しています。

自己管理の 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: この値はインスタンスの詳細ページで確認できます。

データベース: [EMR StarRocks Manager] を使用してインスタンスに接続した後、[SQL エディタ] または [Data Management] からデータベースにアクセスできます。
説明データベースを作成するには、SQL エディタで直接 SQL コマンドを実行できます。
データ同期タスクの開発
同期タスクを構成するためのエントリポイントと手順については、次の構成ガイドをご参照ください。
単一テーブルのオフライン同期タスクの構成ガイド
手順については、「コードレス UI での設定」および「コードエディタでの設定」をご参照ください。
コードエディタでタスクを構成するためのすべてのパラメーターとスクリプトのデモについては、「付録: スクリプトのデモとパラメーターの説明」をご参照ください。
付録: スクリプトのデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合は、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。次の情報は、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して構成する必要があるパラメーターについて説明しています。
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 条件を
| いいえ | なし |
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 を使用してデータをインポートする場合、ここでインポートパラメーターを構成できます。特別な構成がない場合は、{} を使用します。構成可能なパラメーターは次のとおりです:
データに \t または \n が含まれている場合は、他の文字を区切り文字として使用する必要があります。次の例は、特殊文字の使用方法を示しています: StreamLoad は JSON 形式でのデータのインポートもサポートしています。次のように構成できます: JSON 形式で構成できるパラメーターは次のとおりです:
| はい | なし |
column | 宛先テーブルに書き込む列。 | はい | なし |
loadUrl | StarRocks フロントエンド (FE) の IP アドレスと HTTP ポートを入力します。デフォルトのポートは | はい | なし |
table | 同期するテーブルの名前。 | はい | なし |
preSql | データ同期タスクが実行される前に実行される SQL 文。たとえば、タスクが開始される前にテーブルから古いデータをクリアするには、truncate table tablename を使用します。 | いいえ | なし |
postSql | データ同期タスクが完了した後に実行される SQL 文。 | いいえ | なし |
maxBatchRows | バッチごとに書き込む最大行数。 | いいえ | 500000 |
maxBatchSize | バッチごとに書き込む最大バイト数。 | いいえ | 5242880 |
strategyOnError | StarRocks へのバッチ書き込み中の例外を処理するためのポリシー。 有効な値:
デフォルト値: | いいえ | exit |