メインコンテンツまでスキップ
バージョン: Stable-3.3

DataX writer

Introduction

StarRocksWriter プラグインは、StarRocks の宛先テーブルにデータを書き込むことができます。具体的には、StarRocksWriter は Stream Load を介して CSV または JSON 形式で StarRocks にデータをインポートし、内部的に reader によって読み取られたデータをキャッシュして一括インポートすることで、書き込みパフォーマンスを向上させます。全体のデータフローは source -> Reader -> DataX channel -> Writer -> StarRocks です。

Download the plugin

DataX のフルパッケージをダウンロードするには https://github.com/alibaba/DataX にアクセスし、starrockswriter プラグインを datax/plugin/writer/ ディレクトリに配置してください。

以下のコマンドを使用してテストします: python datax.py --jvm="-Xms6G -Xmx6G" --loglevel=debug job.json

Function Description

Sample Configuration

ここでは、MySQL からデータを読み取り、StarRocks にロードするための設定ファイルを示します。

{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0,
"percentage": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "xxxx",
"password": "xxxx",
"column": [ "k1", "k2", "v1", "v2" ],
"connection": [
{
"table": [ "table1", "table2" ],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/datax_test1"
]
},
{
"table": [ "table3", "table4" ],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/datax_test2"
]
}
]
}
},
"writer": {
"name": "starrockswriter",
"parameter": {
"username": "xxxx",
"password": "xxxx",
"database": "xxxx",
"table": "xxxx",
"column": ["k1", "k2", "v1", "v2"],
"preSql": [],
"postSql": [],
"jdbcUrl": "jdbc:mysql://172.28.17.100:9030/",
"loadUrl": ["172.28.17.100:8030", "172.28.17.100:8030"],
"loadProps": {}
}
}
}
]
}
}

Starrockswriter Parameter Description

  • username

    • 説明: StarRocks データベースのユーザー名

    • 必須: はい

    • デフォルト値: なし

  • password

    • 説明: StarRocks データベースのパスワード

    • 必須: はい

    • デフォルト: なし

  • database

    • 説明: StarRocks テーブルのデータベース名

    • 必須: はい

    • デフォルト: なし

  • table

    • 説明: StarRocks テーブルのテーブル名

    • 必須: はい

    • デフォルト: なし

  • loadUrl

    • 説明: Stream Load 用の StarRocks FE のアドレス。複数の FE アドレスを指定でき、形式は fe_ip:fe_http_port です。

    • 必須: はい

    • デフォルト値: なし

  • column

    • 説明: 宛先テーブルに書き込む必要があるフィールド。カラムはカンマで区切ります。例: "column": ["id", "name", "age"]。

      column 設定項目は指定する必要があり、空白にすることはできません。 注意: 宛先テーブルのカラム数やタイプなどを変更した場合、ジョブが正しく実行されないか失敗する可能性があるため、空白にすることは強くお勧めしません。設定項目は reader の querySQL または column と同じ順序でなければなりません。

  • 必須: はい

  • デフォルト値: なし

  • preSql

  • 説明: 宛先テーブルにデータを書き込む前に実行される標準ステートメント。

  • 必須: いいえ

  • デフォルト: なし

  • jdbcUrl

    • 説明: preSql および postSql を実行するための宛先データベースの JDBC 接続情報。

    • 必須: いいえ

  • デフォルト: なし

  • loadProps

    • 説明: StreamLoad のリクエストパラメータ。詳細は StreamLoad の紹介ページを参照してください。

    • 必須: いいえ

    • デフォルト値: なし

Type conversion

デフォルトでは、受信データは文字列に変換され、t がカラムセパレータ、n が行セパレータとして使用され、csv ファイルを形成して StreamLoad インポートを行います。 カラムセパレータを変更するには、loadProps を適切に設定してください。

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

インポート形式を json に変更するには、loadProps を適切に設定してください。

"loadProps": {
"format": "json",
"strip_outer_array": true
}

json 形式は、writer が JSON 形式で StarRocks にデータをインポートするためのものです。

About time zone

ソース tp ライブラリが別のタイムゾーンにある場合、datax.py を実行する際に、コマンドラインの後に次のパラメータを追加します。

"-Duser.timezone=xx"

例: DataX が Postgrest データをインポートし、ソースライブラリが UTC タイムにある場合、起動時にパラメータ "-Duser.timezone=GMT+0" を追加します。