これはアーカイブされた TiDB のドキュメントであり、更新は行われていません。最新の LTS バージョンのドキュメントを表示する

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

このドキュメントでは、 TiDB Cloud上のデータのインポート サービスの CSV 構成を紹介します。

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

CSV Configurations

セパレーター

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

  • 一般的な値:

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

  • 定義:すべてのCSV ファイルにヘッダー行が含まれているかどうか。 HeaderTrueの場合、最初の行が列名として使用されます。 HeaderFalseの場合、最初の行は通常のデータ行として扱われます。

  • デフォルト: True

デリミタ

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

  • 一般的な値:

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

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

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

    順序に変換
    \0空文字 ( U+0000 )
    \bバックスペース ( U+0008 )
    \n改行 ( U+000A )
    \rキャリッジリターン ( U+000D )
    \tタブ ( U+0009 )
    \ZWindows 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

非 null と Null

  • 定義: Not-null設定は、すべてのフィールドが null 非許容であるかどうかを制御します。 Not-nullFalseの場合、 Nullで指定された文字列は、特定の値ではなく SQL NULL に変換されます。

  • 引用符は、フィールドが null であるかどうかには影響しません。

    たとえば、次の CSV ファイルでは次のようになります。

    column_A,column_B,column_C \N,"\N",

    デフォルト設定 ( Not-null = False; Null = '\N' ) では、列column_Acolumn_Bは両方とも、TiDB にインポートされた後に NULL に変換されます。列column_Cは空の文字列''ですが、NULL ではありません。

  • デフォルト: Not-null=False、Null=\N

トリムラストセパレーター

  • 定義: Separatorを行末記号として扱い、末尾の区切り文字をすべて削除するかどうか。

    たとえば、次の CSV ファイルでは次のようになります。

    A,,B,,
    • Trim-last-separator = Falseの場合、これは 5 つのフィールド('A', '', 'B', '', '')の行として解釈されます。
    • Trim-last-separator = Trueの場合、これは 3 つのフィールド('A', '', 'B')の行として解釈されます。
  • デフォルト: False