データをインポートするための CSV 構成

このドキュメントでは、 TiDB Cloudのデータインポート サービスの CSV 構成について説明します。

以下は、 TiDB Cloudのデータインポート サービスを使用して CSV ファイルをインポートする場合の CSVコンフィグレーションウィンドウです。詳細については、 Amazon S3 または GCS から CSV ファイルをTiDB Cloudにインポートする参照してください。

CSV Configurations

セパレータ

  • 定義: フィールド区切り文字を定義します。1 文字または複数文字を指定できますが、空にすることはできません。

  • 共通の値:

    • CSV (カンマ区切り値) の場合は,上記のスクリーンショットに示すように、「1」、「Michael」、「male」は 3 つのフィールドを表します。
    • TSV (タブ区切り値)の場合は"\t"
  • デフォルト: ,

デリミタ

  • 定義: 引用符に使用する区切り文字を定義します。区切り文字が空の場合、すべてのフィールドは引用符で囲まれません。

  • 共通の値:

    • '"'フィールドを二重引用符で囲みます。上のスクリーンショットに示すように、 "Michael","male" 2 つのフィールドを表します。2 つのフィールドの間には,なければならないことに注意してください。データが"Michael""male" ( ,なし) の場合、インポート タスクは解析に失敗します。データが"Michael,male" (二重引用符が 1 つだけ) の場合、1 つのフィールドとして解析されます。
    • ''引用を無効にします。
  • デフォルト: "

バックスラッシュエスケープ

  • 定義: フィールド内のバックスラッシュをエスケープ文字として解析するかどうか。バックスラッシュ エスケープTrueの場合、次のシーケンスが認識され、変換されます。

    シーケンス変換された
    \0ヌル文字 ( U+0000 )
    \bバックスペース ( U+0008 )
    \n改行 ( U+000A )
    \rキャリッジリターン ( U+000D )
    \tタブ ( U+0009 )
    \ZウィンドウズEOF ( U+001A )

    その他の場合(たとえば、 \" )は、バックスラッシュが削除され、フィールドに次の文字( " )が残ります。残った文字には特別な役割(たとえば、区切り文字)はなく、通常の文字です。引用符で囲んでも、バックスラッシュがエスケープ文字として解析されるかどうかは影響しません。

    次のフィールドを例に挙げます。

    • 値がTrueの場合、 "nick name is \"Mike\"" nick name is "Mike"として解析され、ターゲット テーブルに書き込まれます。
    • 値がFalseの場合、 "nick name is \"Mike\"" 3 つのフィールドとして解析されます。ただし、フィールドが互いに分離されていないため、正しく解析できません。

    標準の CSV ファイルの場合、記録するフィールドに二重引用符で囲まれた文字が含まれている場合は、エスケープのために二重引用符を 2 つ使用する必要があります。この場合、 Backslash escape = True使用すると解析エラーが発生しますが、 Backslash escape = False使用すると正しく解析されます。一般的なシナリオは、インポートされたフィールドに JSON コンテンツが含まれている場合です。標準の CSV JSON フィールドは通常、次のように保存されます。

    "{""key1"":""val1"", ""key2"": ""val2""}"

    この場合、 Backslash escape = False設定すると、フィールドは次のようにデータベースに正しくエスケープされます。

    {"key1": "val1", "key2": "val2"}

    CSV ソース ファイルの内容が次のように JSON として保存されている場合は、次のようにBackslash escape = True設定することを検討してください。ただし、これは CSV の標準形式ではありません。

    "{\"key1\": \"val1\", \"key2\":\"val2\" }"

  • デフォルト: True

このページは役に立ちましたか?