Text/CSV/JSON
このドキュメントでは、Doris におけるテキストファイル形式の読み取りと書き込みのサポートについて説明します。
Text/CSV
-
カタログ
org.apache.hadoop.mapred.TextInputFormat形式の Hive テーブルの読み取りをサポートします。以下の SerDe をサポートします。
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeorg.apache.hadoop.hive.serde2.OpenCSVSerde(2.1.7 以降)org.apache.hadoop.hive.serde2.MultiDelimitSerDe(3.1.0 以降)
-
テーブル値関数
-
インポート
インポート機能は Text/CSV 形式をサポートします。詳細はインポートのドキュメントを参照してください。
-
エクスポート
エクスポート機能は Text/CSV 形式をサポートします。詳細はエクスポートのドキュメントを参照してください。
サポートされる圧縮形式
- uncompressed
- gzip
- deflate
- bzip2
- zstd
- lz4
- snappy
- lzo
JSON
カタログ
-
org.apache.hadoop.hive.serde2.JsonSerDe(3.0.4 以降) -
org.apache.hive.hcatalog.data.JsonSerDe(3.0.4 以降)- プリミティブ型と複合型の両方をサポートします。
- SERDEPROPERTIES の
timestamp.formatsはサポートしません。
-
org.openx.data.jsonserde.JsonSerDeを使用する Hive テーブル(3.0.6 以降)- プリミティブ型と複合型の両方をサポートします。
- SERDEPROPERTIES は
ignore.malformed.jsonのみをサポートし、この JsonSerDe と同じように動作します。その他の SERDEPROPERTIES は有効になりません。 Using Arraysはサポートしません(Text/CSV 形式のように、すべての列データを単一の配列に格納する方法)。Promoting a Scalar to an Arrayはサポートしません(スカラーを単一要素の配列に変換する方法)。- デフォルトでは、Doris はテーブルのスキーマを正しく認識できます。ただし、一部のパラメータをサポートしていないため、スキーマの自動認識に失敗する場合があります。その場合は、
read_hive_json_in_one_column = trueを設定すると、JSON 行全体を最初の列に格納して、元のデータをすべて読み取れます。その後、ユーザーが手動で処理できます。この機能を使用するには、最初の列のデータ型がStringである必要があります。
インポート
インポート機能は JSON 形式をサポートします。詳細はインポートのドキュメントを参照してください。
文字セット
現在、Doris がサポートする文字エンコーディングは UTF-8 のみです。ただし、Hive の Text 形式のテーブルのデータなどには、UTF-8 以外でエンコードされた内容が含まれる場合があります。その場合、読み取りに失敗し、次のエラーが発生します。
Only support csv data in utf8 codec
この場合、次のようにセッション変数を設定できます。
SET enable_text_validate_utf8 = false
これにより UTF-8 エンコーディングの検証が省略され、その内容を読み取れるようになります。このパラメータは検証を省略するためだけのもので、UTF-8 以外でエンコードされた内容は引き続き文字化けして表示されます。
このパラメータはバージョン 3.0.4 以降でサポートされています。