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

Stream Load

1. Stream Load は、ソースデータファイルの最初の行にある列名を識別することをサポートしていますか?または、データ読み取り中に最初の行をスキップすることをサポートしていますか?

Stream Load は、ソースデータファイルの最初の行にある列名を識別することをサポートしていません。Stream Load は最初の行を他の行と同様に通常のデータとして扱います。また、Stream Load はデータ読み取り中に最初の行をスキップすることをサポートしていません。最初の行に列名がある場合は、次のいずれかのアクションを実行してください。

  • データをエクスポートするために使用するツールの設定を変更します。その後、最初の行に列名が含まれていないソースデータファイルとしてデータを再エクスポートします。
  • sed -i '1d' filename などのコマンドを使用して、ソースデータファイルの最初の行を削除します。
  • ロードコマンドまたはステートメントで、-H "where: <column_name> != '<column_name>'" を使用して、ソースデータファイルの最初の行をフィルタリングします。<column_name> は最初の行にある列名のいずれかです。StarRocks は最初にソースデータを変換し、その後フィルタリングします。そのため、最初の行の列名が対応するデータ型に変換されない場合、それらには NULL 値が返されます。つまり、StarRocks の宛先テーブルには NOT NULL に設定された列を含めることはできません。
  • ロードコマンドまたはステートメントで、-H "max_filter_ratio:0.01" を追加して、1% 以下の最大エラー許容値を設定し、1 行以上のエラー行を許容することで、最初の行のデータ変換の失敗を無視できるようにします。この場合、ErrorURL がエラー行を示すために返されても、Stream Load ジョブは成功することができます。max_filter_ratio を大きな値に設定しないでください。大きな値に設定すると、重要なデータ品質の問題が見逃される可能性があります。

2. パーティション列にロードするデータが標準の DATE または INT 型ではありません。例えば、データが 202106.00 のような形式です。Stream Load を使用してデータをロードする場合、データをどのように変換しますか?

StarRocks はロード時にデータの変換をサポートしています。詳細については、Transform data at loading を参照してください。

CSV 形式のソースデータファイル TEST をロードしたいとし、このファイルが NODATEVERSIONPRICE の 4 つの列で構成されており、その中で DATE 列のデータが 202106.00 のような非標準形式であるとします。StarRocks で DATE をパーティション列として使用したい場合、まず次の 4 つの列を含む StarRocks テーブルを作成する必要があります: NOVERSIONPRICEDATE。次に、StarRocks テーブルの DATE 列のデータ型を DATE、DATETIME、または INT として指定する必要があります。最後に、Stream Load ジョブを作成する際に、ロードコマンドまたはステートメントで次の設定を指定して、ソース DATE 列のデータ型を宛先列のデータ型に変換する必要があります。

-H "columns: NO,DATE_1, VERSION, PRICE, DATE=LEFT(DATE_1,6)"

上記の例では、DATE_1 は宛先 DATE 列にマッピングされる一時的な名前の列と見なすことができ、宛先 DATE 列にロードされる最終結果は left() 関数によって計算されます。まず、ソース列の一時的な名前をリストし、その後に関数を使用してデータを変換する必要があります。サポートされている関数は、非集計関数やウィンドウ関数を含むスカラー関数です。

3. Stream Load ジョブが "body exceed max size: 10737418240, limit: 10737418240" エラーを報告した場合はどうすればよいですか?

ソースデータファイルのサイズが 10 GB を超えており、これは Stream Load がサポートする最大ファイルサイズです。次のいずれかのアクションを実行してください。

  • seq -w 0 n を使用して、ソースデータファイルを小さなファイルに分割します。
  • curl -XPOST http://be_host:http_port/api/update_config?streaming_load_max_mb=<file_size> を使用して、BE configuration item streaming_load_max_mb の値を調整し、最大ファイルサイズを増やします。