Stream Load
1. Stream Load は、CSV 形式のファイルの最初の数行に含まれる列名を識別したり、データ読み取り中に最初の数行をスキップしたりすることをサポートしていますか?
Stream Load は、CSV 形式のファイルの最初の数行に含まれる列名を識別することをサポートしていません 。Stream Load は、最初の数行を他の行と同様に通常のデータとして扱います。
バージョン 2.5 以前では、Stream Load はデータ読み取り中に CSV ファイルの最初の数行をスキップすることをサポートしていません。ロードしたい CSV ファイルの最初の数行に列名が含まれている場合は、以下のいずれかの操作を行ってください。
- データをエクスポートするために使用するツールの設定を変更します。その後、最初の数行に列名が含まれていない CSV ファイルとしてデータを再エクスポートします。
sed -i '1d' filenameなどのコマンドを使用して、CSV ファイルの最初の数行を削除します。- ロードコマンドまたはステートメントで
-H "where: <column_name> != '<column_name>'"を使用して、CSV ファイルの最初の数行をフィルタリングします。<column_name>は、最初の数行に含まれる列名のいずれかです。StarRocks は最初にソースデータを変換し、その後フィルタリングを行います。そのため、最初の数行の列名が対応するデータ型に変換されない場合、それらにはNULL値が返されます。つまり、StarRocks の宛先テーブルにはNOT NULLに設定された列を含めることはできません。 - ロードコマンドまたはステートメントで
-H "max_filter_ratio:0.01"を追加して、最大エラー許容率を 1% 以下に設定し、最初の数行のデータ変換失敗を無視できるようにします。この場合、ErrorURLがエラーロウを示すために返されても、Stream Load ジョブは成功することができます。max_filter_ratioを大き な値に設定しないでください。大きな値に設定すると、重要なデータ品質の問題が見逃される可能性があります。
バージョン 3.0 以降、Stream Load は skip_header パラメータをサポートしており、CSV ファイルの最初の数行をスキップするかどうかを指定できます。詳細については、CSV parameters を参照してください。