You need to enable JavaScript to run this app.
文档中心
云数据库 TiDB 版

云数据库 TiDB 版

复制全文
下载 pdf
导入数据
导入本地 CSV 文件
复制全文
下载 pdf
导入本地 CSV 文件
本文介绍如何将本地 CSV 文件导入数据至云数据库 TiDB 版。​
背景信息​
如果您有 SQL、CSV 或 Parquet 格式的数据文件,您可以选择适合的方法将这些文件导入到云数据库 TiDB 版。具体的导入场景和方法如下:​
  • 您可以将本地 CSV 文件导入到云数据库 TiDB 版。​
  • 支持将 CSV 、Parquet、SQL 文件从火山引擎 TOS 导入到云数据库 TiDB 版。​
前提条件​
已创建集群,且集群状态为 Active。​
注意事项​
  • 单次导入任务仅允许上传一个大小不超过 250 MiB 的本地 CSV 文件。​
  • 不支持同时运行多个导入任务。​
操作步骤​
  1. 在顶部菜单栏,选择集群所属的项目和地域。​
  1. 单击目标集群名称,进入概览页。​
  1. 单击导入您自己的数据。​
  1. 上传本地文件,支持以下两种方式:​
  • 单击上传本地文件并上传目标本地文件。​
  • 直接将本地文件拖拽到上传本地文件区域。​
说明​
单次导入任务仅允许上传一个大小不超过 250 MiB 的本地 CSV 文件。如果您的本地文件大于 250 MiB,请参见如何导入大于 250 MiB 的本地文件?。​
  1. 成功上传本地文件后,在导入本地数据页面,选择目标数据库和目标表,或直接输入名称以创建新数据库或新表。​
说明​
新数据库和新表名称需符合以下命名规则:​
  • 只能包含 Unicode BMP(基本多文种平面)中的字符。​
  • 不能包含空字符 \u0000 和空白字符。​
  • 长度最多为 64 个字符。​
  1. 单击定义表,在表定义区域检查数据表字段列表。如需修改配置,可按照下方导入到已有表、导入到新建表的对应步骤操作。​
说明​
  • 若将数据导入至已有表时,系统会读取表结构获取字段列表,预览数据将按列名映射到对应的列。​
  • 若将数据导入至新建表时,系统会从 CSV 文件表头提取字段列表,列类型由云数据库 TiDB 版自动推断。例如,如果预览数据全为整数,则推断的列类型为整数。​
  • 导入到已有表:​
  1. 配置列名。如果 CSV 文件的第一行记录了列名,请保持开启忽略第一行开关(默认开启);如果 CSV 文件没有列名行,所有行都为业务数据,请关闭忽略第一行开关。​
  • CSV 文件中的列会按顺序导入到目标表。多余的列会被截断,缺失的列会用默认值填充。​
说明​
CSV 文件列数少于目标表列数时,处理规则如下:​
  • 缺失列不是主键或唯一键,不会报错,会被填充为其默认值。​
  • 缺失列是主键或唯一键,且没有 auto_increment 或 auto_random 属性,则会报错。此时建议选择以下策略之一:​
  • 提供包含这些主键或唯一键列的源文件。​
  • 修改目标表的主键和唯一键列,使其与源文件中的现有列匹配。​
  • 将主键或唯一键列的属性设置为 auto_increment 或 auto_random。​
  1. 配置数据类型。单击数据类型下拉列表,根据您的需要更改数据类型。​
  1. 导入到已有表不支持设置主键。​
  1. (可选)编辑 CSV 配置。您可以单击编辑 CSV 配置,对反斜杠转义、分隔符和定界符等进行更细致的配置。关于 CSV 配置的更多信息,请参见导入数据的 CSV 配置。​
  • 导入到新建表:​
  1. 配置列名。如果 CSV 文件的第一行记录了列名,请保持开启使用第一行作为列名开关(默认开启);如果 CSV 文件没有列名行,请关闭使用第一行作为列名开关,并依次为每一列设置名称。列名需满足以下要求:​
  • 名称只能由 Unicode BMP 字符组成。​
  • 不能包含空字符 \u0000 和空白字符。​
  • 名称长度必须小于 65 个字符。​
  1. 配置数据类型。单击数据类型下拉列表,根据您的需要更改数据类型。​
  1. 若导入到新建表,可以设置主键。您可以选择某一列作为主键,或选择多列创建复合主键。复合主键会按照您选择列名的顺序组成。​
  1. (可选)编辑 CSV 配置。您可以单击编辑 CSV 配置,对反斜杠转义、分隔符和定界符等进行更细致的配置。关于 CSV 配置的更多信息,请参见导入数据的 CSV 配置。​
  1. 单击开始导入,即可开始导入数据。在弹出的导入任务详情页面可查看导入进度;也可单击操作列的 ... > 查看,进行查看导入进度。​
说明​
当任务状态由准备中变为已完成时,表示导入任务完成。​
常见问题​
如何导入大于 250 MiB 的本地文件?​
您可以使用 split [-l ${line_count}] 工具将其拆分为多个小文件(仅适用于 Linux 或 macOS)。例如,运行 split -l 100000 tidb-01.csv small_files,即可按行数 100000 拆分名为 tidb-01.csv 的文件,拆分后的文件名为 small_files${suffix}。然后,您可以将这些小文件逐个导入云数据库 TiDB 版。​
参考如下脚本:​
​
#!/bin/bash​
​
n=$1​
file_path=$2​
​
# 提取文件扩展名和不含扩展名的文件名​
file_extension="${file_path##*.}"​
file_name="${file_path%.*}"​
​
# 获取文件总行数​
total_lines=$(wc -l < "$file_path")​
​
# 计算每个分割文件应包含的行数(向上取整)​
lines_per_file=$(( (total_lines + n - 1) / n ))​
​
# 分割文件​
# 注意:macOS 自带的 split 不支持 -d 参数,如果在 Mac 上运行需安装 coreutils 并使用 gsplit​
split -d -a 1 -l "$lines_per_file" "$file_path" "${file_name}."​
​
# 循环重命名,加上原始扩展名​
for (( i=0; i<n; i++ )); do​
mv "${file_name}.${i}" "${file_name}.${i}.${file_extension}"​
done​
​
您可以输入 n 和文件名,然后运行该脚本。脚本会将文件平均分为 n 份,并保留原有文件扩展名。例如:​
​
> sh ./split.sh 3 mytest.customer.csv​
> ls -h | grep mytest​
mytest.customer.0.csv​
mytest.customer.1.csv​
mytest.customer.2.csv​
mytest.customer.csv​
​
​
最近更新时间:2026.08.20 16:11:46
这个页面对您有帮助吗?
有用
有用
无用
无用