データをインポートするための CSV 構成
このドキュメントでは、 TiDB Cloudのデータインポート サービスの CSV 構成について説明します。
以下は、 TiDB Cloudのデータインポート サービスを使用して CSV ファイルをインポートする場合の CSVコンフィグレーションウィンドウです。詳細については、 Amazon S3 または GCS から CSV ファイルをTiDB Cloudにインポートする参照してください。
セパレータ
定義: フィールド区切り文字を定義します。1 文字または複数文字を指定できますが、空にすることはできません。
共通の値:
- CSV (カンマ区切り値) の場合は
,
上記のスクリーンショットに示すように、「1」、「Michael」、「male」は 3 つのフィールドを表します。 - TSV (タブ区切り値)の場合は
"\t"
。
- CSV (カンマ区切り値) の場合は
デフォルト:
,
デリミタ
定義: 引用符に使用する区切り文字を定義します。区切り文字が空の場合、すべてのフィールドは引用符で囲まれません。
共通の値:
'"'
フィールドを二重引用符で囲みます。上のスクリーンショットに示すように、"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