CSV(Comma-Separated Values)是一种最为常见的数据库间通用数据交换格式标准之一,以逗号作为字段分隔符,空行作为记录分隔符,并以纯文本形式存储的表格数据文件。CSV 格式定义在 RFC 4180 文档中进行了详细描述。
用户可以使用 SequoiaDB 巨杉数据库提供的 sdbimprt 工具将以下数据导入 SequoiaDB 的集合中:
Note:
在导入数据前,用户需要确保 CSV 文件编码格式为 UTF-8。
以下是首行为字段定义的 CSV 数据文件 data1.csv
中的三条用户信息数据:
id,name,age,identity,phone_number,email,country 1,"Jack",18,"student","18921222226","jack@example.com","China" 2,"Mike",20,"student","18923244255","mike@example.com","USA" 3,"Woody",25,"worker","18945253245","woody@example.com","China"
以下是 CSV 数据文件 data2.csv
中的三条用户信息数据:
1,"Jack",18,"student","18921222226","jack@example.com","China" 2,"Mike",20,"student","18923244255","mike@example.com","USA" 3,"Woody",25,"worker","18945253245","woody@example.com","China"
以下是以“|”作为字段分隔符的 CSV 数据文件 data3.csv
中的三条用户信息数据:
1|"Jack"|18|"student"|"18921222226"|"jack@example.com"|"China" 2|"Mike"|20|"student"|"18923244255"|"mike@example.com"|"USA" 3|"Woody"|25|"worker"|"18945253245"|"woody@example.com"|"China"
将上述示例 CSV 数据文件 data1.csv
中的用户信息数据导入集合 info.user_info 中
sdbimprt --hosts "localhost:11810" --type csv --csname info --clname user_info --headerline true --file data1.csv
Note:
- 数据文件的数据量较大时,可使用
-n
指定每次导入的记录数以及-j
指定导入连接数来提供导入效率- --file 参数支持指定多个文件或者目录,使用逗号“,”分隔,重复出现的文件会被忽略
- 更多参数说明详见 sdbimprt 工具介绍
将上述示例 CSV 数据文件 data2.csv
中的用户信息数据导入集合 info.user_info 中
sdbimprt --hosts "localhost:11810" --type csv --csname info --clname user_info --fields 'id long, name string default "Anonymous", age int, identity, phone_number, email, country' --file data2.csv
Note:
- fields语法:
fieldName [type [default <value>], ...]
- 更多 CSV 格式说明详见 CSV 数据类型
将上述示例 CSV 数据文件 data3.csv
中的用户信息数据导入集合 info.user_info 中
sdbimprt --hosts "localhost:11810" --type csv --csname info --clname user_info --fields 'id long, name string default "Anonymous", age int, identity, phone_number, email, country' --delfield '|' --file data3.csv
Note:
sdbimprt 工具支持使用 --delchar 参数自定义字符串分隔符和 --delrecord 参数自定义记录分隔符。
将上述示例 CSV 数据文件 data4.csv
中的用户信息数据导入集合 info.user_info 中
sdbimprt --hosts "localhost:11810" --type csv --csname info --clname user_info --fields 'id long, name string default "Anonymous", age int, identity, phone_number, email, country, address' --linepriority false --file data4.csv
Note:
--linepriority 参数的作用是设置分隔符的优先级,默认值为 true
- 值为 true 时,分隔符的优先级为:记录分隔符,字符串分隔符,字段分隔符
- 值为 false 时,分隔符的优先级为:字符串分隔符,记录分隔符,字段分隔符
SequoiaDB 的 sdbimprt 工具支持并发导入单一的 CSV 数据文件或批量导入 CSV 数据文件目录。用户使用该工具能简单快速地将 CSV 数据导入 SequoiaDB。