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

テキスト/CSV/JSON

このドキュメントでは、Dorisにおけるテキストファイルフォーマットの読み取りと書き込みのサポートについて紹介します。

Text/CSV

  • Catalog

    org.apache.hadoop.mapred.TextInputFormat 形式のHiveテーブルの読み取りをサポートします。

    以下のSerDeをサポートします:

    • org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
    • org.apache.hadoop.hive.serde2.OpenCSVSerde (2.1.7以降)
    • org.apache.hadoop.hive.serde2.MultiDelimitSerDe (3.1.0以降)
  • Table Valued Function

  • Import

    インポート機能はText/CSVフォーマットをサポートします。詳細については、インポートドキュメントを参照してください。

  • Export

    エクスポート機能はText/CSVフォーマットをサポートします。詳細については、エクスポートドキュメントを参照してください。

サポートされている圧縮フォーマット

  • uncompressed
  • gzip
  • deflate
  • bzip2
  • zstd
  • lz4
  • snappy
  • lzo

JSON

Catalog

  • org.apache.hadoop.hive.serde2.JsonSerDe (3.0.4以降)

  • org.apache.hive.hcatalog.data.JsonSerDe (3.0.4以降)

    1. プリミティブ型と複合型の両方をサポートします。
    2. timestamp.formats SERDEPROPERTIESはサポートしていません。
  • org.openx.data.jsonserde.JsonSerDe のHiveテーブル (3.0.6以降)

    1. プリミティブ型と複合型の両方をサポートします。
    2. SERDEPROPERTIES: ignore.malformed.json のみサポートされており、このJsonSerDeと同様に動作します。その他のSERDEPROPERTIESは有効になりません。
    3. Using Arrays をサポートしていません(Text/CSVフォーマットと同様に、すべての列データが単一の配列に配置される)。
    4. Promoting a Scalar to an Array をサポートしていません(スカラーを単一要素の配列に昇格させる)。
    5. デフォルトでは、Dorisはテーブルスキーマを正しく認識できます。ただし、特定のパラメータのサポートが不足しているため、自動スキーマ認識が失敗する場合があります。この場合、read_hive_json_in_one_column = true を設定してJSON行全体を最初の列に配置し、元のデータを完全に読み取ることができます。その後、ユーザーが手動で処理できます。この機能では、最初の列のデータ型が String である必要があります。

Import

インポート機能はJSONフォーマットをサポートします。詳細については、インポートドキュメントを参照してください。

Character Set

現在、DorisはUTF-8文字セットエンコーディングのみをサポートしています。しかし、HiveのTextフォーマットテーブルのデータなど、一部のデータにはUTF-8以外のエンコーディングでエンコードされたコンテンツが含まれている場合があり、これにより読み取りが失敗し、以下のエラーが発生します:

Only support csv data in utf8 codec

この場合、session変数を以下のように設定できます:

SET enable_text_validate_utf8 = false

これはUTF-8エンコーディングチェックを無視し、このコンテンツを読み取ることを可能にします。このパラメータはチェックをスキップするためにのみ使用され、UTF-8以外でエンコードされたコンテンツは依然として文字化けとして表示されることに注意してください。

このパラメータはバージョン3.0.4以降でサポートされています。