数据导出

SequoiaDB 巨杉数据库支持将集合中的数据导出到 UTF-8 编码的 CSV 格式或者 JSON 格式的数据存储文件。

数据导出 CSV

CSV(Comma-Separated Value)是一种最为常见的数据库间通用数据交换格式标准之一,以逗号作为字段分隔符,空行作为记录分隔符,并以纯文本形式存储的表格数据文件。CSV 格式定义在 RFC 4180 文档中进行了详细描述。

用户可以使用 SequoiaDB 巨杉数据库提供的 sdbexprt 工具集合中的数据导出到 CSV 数据存储文件中。

本文档将通过实例介绍如何使用 sdbexprt 工具将 SequoiaDB 巨杉数据库集合中的数据快速导出到 CSV 格式的数据存储文件中。

数据准备

  • 以下是集合空间 info 中集合 user_info的三条用户信息数据:
  1. $ sdb 'db.info.user_info.find()'
  2. {
  3. "_id": {
  4. "$oid": "5cd2dc7b294ffa8385000000"
  5. },
  6. "id": 1,
  7. "name": "Jack",
  8. "age": 18,
  9. "identity": "student",
  10. "phone_number": "18921222226",
  11. "email": "jack@example.com",
  12. "country": "China"
  13. }
  14. {
  15. "_id": {
  16. "$oid": "5cd2dc7b294ffa8385000001"
  17. },
  18. "id": 2,
  19. "name": "Mike",
  20. "age": 20,
  21. "identity": "student",
  22. "phone_number": "18923244255",
  23. "email": "mike@example.com",
  24. "country": "USA"
  25. }
  26. {
  27. "_id": {
  28. "$oid": "5cd2dc7b294ffa8385000002"
  29. },
  30. "id": 3,
  31. "name": "Woody",
  32. "age": 25,
  33. "identity": "worker",
  34. "phone_number": "18945253245",
  35. "email": "woody@example.com",
  36. "country": "China"
  37. }
  38. Return 3 row(s).

数据导出

情景一:指定 sdbexprt 参数数据导出

假设本地 SequoiaDB 已存在集合空间 info 的集合 user_info,该集合用于记录用户的信息,并且该集合中存在数据。现以指定 sdbexprt 参数的方式将集合空间 info 中集合 user_info 用户信息数据导出到 user_info.csv 文件中:

  1. $ sdbexprt -s localhost -p 11810 --type csv --file user_info.csv -c info -l user_info --fields id,name,age,identity,phone_number,email,country

查看 user_info.csv 文件中的用户信息数据:

  1. $ cat user_info.csv
  2. id,name,age,identity,phone_number,email,country
  3. 1,"Jack",18,"student","18921222226","jack@example.com","China"
  4. 2,"Mike",20,"student","18923244255","mike@example.com","USA"
  5. 3,"Woody",25,"worker","18945253245","woody@example.com","China"

Note:

  • 在导出数据时,如需增加记录中不存在的字段时,可在参数 fields 中增加需添加字段名称,导出工具会自动默认为空值
  • --filter 参数支持对需导出字段的值进行过滤
  • 更多参数说明详见 sdbexprt 工具介绍

情景二:使用参数配置文件数据导出

假设本地 SequoiaDB 已存在集合空间 info 的集合 user_info,该集合用于记录用户的信息,并且该集合中存在数据。现以使用参数配置文件的方式将集合空间 info 中集合 user_info 用户信息数据导出到 user_info.csv 文件中:

  • 编辑配置文件 export.conf sdbexprt 工具导出参数配置
  1. hostname = localhost
  2. svcname = 11810
  3. user = sdbadmin
  4. password = admin
  5. type = csv
  6. file = user_info.csv
  7. csname = info
  8. clname = user_info
  9. fields = id,name,age,identity,phone_number,email,country
  • 执行导出
  1. $ sdbexprt --conf export.conf
  • 查看 user_info.csv 文件中的用户信息数据:
  1. $ cat user_info.csv
  2. id,name,age,identity,phone_number,email,country
  3. 1,"Jack",18,"student","18921222226","jack@example.com","China"
  4. 2,"Mike",20,"student","18923244255","mike@example.com","USA"
  5. 3,"Woody",25,"worker","18945253245","woody@example.com","China"

Note:

数据导出 JSON

用户可以使用 SequoiaDB 巨杉数据库提供的 sdbexprt 工具集合中的数据导出到 JSON 数据存储文件中。

本文档将通过实例介绍如何使用 sdbexprt 工具将 SequoiaDB 巨杉数据库集合中的数据快速导出到 JSON 格式的数据存储文件中。

数据准备

  • 以下是集合空间 info 中集合 user_info的三条用户信息数据:
  1. $ sdb 'db.info.user_info.find()'
  2. {
  3. "_id": {
  4. "$oid": "5cd2dc7b294ffa8385000000"
  5. },
  6. "id": 1,
  7. "name": "Jack",
  8. "age": 18,
  9. "identity": "student",
  10. "phone_number": "18921222226",
  11. "email": "jack@example.com",
  12. "country": "China"
  13. }
  14. {
  15. "_id": {
  16. "$oid": "5cd2dc7b294ffa8385000001"
  17. },
  18. "id": 2,
  19. "name": "Mike",
  20. "age": 20,
  21. "identity": "student",
  22. "phone_number": "18923244255",
  23. "email": "mike@example.com",
  24. "country": "USA"
  25. }
  26. {
  27. "_id": {
  28. "$oid": "5cd2dc7b294ffa8385000002"
  29. },
  30. "id": 3,
  31. "name": "Woody",
  32. "age": 25,
  33. "identity": "worker",
  34. "phone_number": "18945253245",
  35. "email": "woody@example.com",
  36. "country": "China"
  37. }
  38. Return 3 row(s).

数据导出

情景一:指定 sdbexprt 参数数据导出

  • 假设本地 SequoiaDB 已存在集合空间 info 的集合 user_info,该集合用于记录用户的信息,并且该集合中存在数据。现以指定 sdbexprt 参数的方式将集合空间 info 中集合 user_info 用户信息数据导出到 user_info.json 文件中:
  1. $ sdbexprt -s localhost -p 11810 --type json --file user_info.json -c info -l user_info --fields id,name,age,identity,phone_number,email,country
  • 查看 user_info.json 文件中的用户信息数据:
  1. $ cat user_info.json
  2. { "id": 1, "name": "Jack", "age": 18, "identity": "student", "phone_number": "18921222226", "email": "jack@example.com", "country": "China" }
  3. { "id": 2, "name": "Mike", "age": 20, "identity": "student", "phone_number": "18923244255", "email": "mike@example.com", "country": "USA" }
  4. { "id": 3, "name": "Woody", "age": 25, "identity": "worker", "phone_number": "18945253245", "email": "woody@example.com", "country": "China" }

Note:

  • --filter 参数支持对需导出字段的值进行过滤
  • 更多参数说明详见 sdbexprt 工具介绍

情景二:使用参数配置文件数据导出

假设本地 SequoiaDB 已存在集合空间 info 的集合 user_info,该集合用于记录用户的信息,并且该集合中存在数据。现以使用参数配置文件的方式将集合空间 info 中集合 user_info 用户信息数据导出到 user_info.json 文件中:

  • 编辑配置文件 export.conf sdbexprt 工具导出参数配置:
  1. hostname = localhost
  2. svcname = 11810
  3. user = sdbadmin
  4. password = admin
  5. type = json
  6. file = user_info.json
  7. csname = info
  8. clname = user_info
  9. fields = id,name,age,identity,phone_number,email,country
  • 执行导出
  1. $ sdbexprt --conf export.conf
  • 查看 user_info.json 文件中的用户信息数据:
  1. $ cat user_info.json
  2. { "id": 1, "name": "Jack", "age": 18, "identity": "student", "phone_number": "18921222226", "email": "jack@example.com", "country": "China" }
  3. { "id": 2, "name": "Mike", "age": 20, "identity": "student", "phone_number": "18923244255", "email": "mike@example.com", "country": "USA" }
  4. { "id": 3, "name": "Woody", "age": 25, "identity": "worker", "phone_number": "18945253245", "email": "woody@example.com", "country": "China" }

Note: