小程序云开发数据导入总结

起因:之前用即时应用做了一个小程序,产生了上千条的应用数据(以csv文件导出),现在即时应用即将要收费,于是把小程序用云开发重写了后台数据库,所以就有了这次的数据迁移,即将上千条的csv文件数据导入到小程序的云开发数据库(以下简称云数据库)。

一、云数据导入导读

云开发支持从文件导入已有的数据。目前仅支持导入 CSV、JSON 格式的文件数据。有云开发控制台和HTTP API两种导入方式。在此只介绍下使用云开发控制台导入数据。

使用云开发控制台导入

要导入数据,需打开云开发控制台,切换到 “数据库” 标签页,并选择要导入数据的集合,点击 “导入” 按钮。

数据库

选择要导入的 CSV 或者 JSON 文件,以及冲突处理模式,点击 “导入” 按钮即可开始导入。

文件格式

JSON、CSV 文件必须是 UTF-8 的编码格式,且其内容类似 MongoDB 的导出格式,例如:

JSON:

{
    "_id": "xxxxxx",
    "age": 45
}

{
    "_id": "yyyyyy",
    "age": 21
}

CSV:

_id,age
xxxxxx,45
yyyyyy,21

需要注意以下几点:

1、JSON 数据不是数组,而是类似 JSON Lines,即各个记录对象之间使用 \n 分隔,而非逗号;

2、JSON 数据每个键值对的键名首尾不能是 .,例如 ".a""abc.",且不能包含多个连续的 .,例如 "a..b"

3、键名不能重复,且不能有歧义,例如 {"a": 1, "a": 2}{"a": {"b": 1}, "a.b": 2}

4、时间格式须为 ISODate 格式,例如 "date": { "$date" : "2018-08-31T17:30:00.882Z" }

5、当使用 Insert 冲突处理模式时,同一文件不能存在重复的 _id 字段,或与数据库已有记录相同的 _id 字段;

6、CSV 格式的数据默认以第一行作为导入后的所有键名,余下的每一行则是与首行键名一一对应的键值记录。

目前提供了 Insert、Upsert 两种冲突处理模式。Insert 模式会在导入时总是插入新记录,Upsert 则会判断有无该条记录,如果有则更新记录,否则就插入一条新记录。

导入完成后,可以在提示信息中看到本次导入记录的情况。

数据库

二、准备工作

  1. 直接将csv数据导入到云数据库,文件导入报错,导入内容乱码。因此需要将csv文件转成json格式。
  2. 在线csv转json工具json-csv.com 或者col2json

3.对转换结果进行校验 Json在线校验工具

三、对校验结果进行修正,

参考 JSON Lines的示例,检查各个json数组是否正确

{
  "name": "Gilbert", 
  "wins": [
    [
      "straight", 
      "7♣"
    ], 
    [
      "one pair", 
      "10♥"
    ]
  ]
}
{
  "name": "Alexa", 
  "wins": [
    [
      "two pair", 
      "4♠"
    ], 
    [
      "two pair", 
      "9♠"
    ]
  ]
}

四、导入时遇到的问题列表

导入数据库失败, Error: Poll error, 
导入数据任务(id:339958)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character '-' after object key:value pair


导入数据库失败, Error: Poll error, 
导入数据任务(id:340089)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character '\r' in string literal


导入数据库失败, Error: Poll error, 
导入数据任务(id:340090)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character '\t' in string literal

导入数据库失败, Error: Poll error, 
导入数据任务(id:340108)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character 'è' looking for beginning of value

导入数据库失败, Error: Poll error, 
导入数据任务(id:340118)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character 'ç' looking for beginning of value

导入数据库失败, Error: Poll error, 
导入数据任务(id:340125)异常,
错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character '6' after object key:value pair


导入数据库失败, Error: Poll error, 
导入数据任务(id:340133)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character ',' looking for beginning of value

导入数据库失败, Error: Poll error, 
导入数据任务(id:340140)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character 'å' after object key:value pair

导入数据库失败, Error: Poll error, 
导入数据任务(id:340169)异常,错误信息:解析json文档错误,请检查导入文件格式,
错误详情如下:invalid character 'c' in literal ObjectId (expecting 'b')

五、导入错误查看步骤

image.png

看到这个错误时,刷新下数据库记录,查看下最后一条导入数据的id。


数据库记录

然后导入文件中查找id对应记录之后的那条记录即可。如下结构中就存在telphone存在‘-’非法字符。

"age": 22,
"telphone": 185-3000-9790,

六、总结

小程序云开发提供了免费的数据库使用,但数据库操作上存在很多不好用的地方,比如没有批量删除即可与其记录的功能,比如导入的容错性太低,比如导入报错时,错误提示不明确,如作者遇到的导入数据任务(id:340125)异常,这个id是什么鬼?
因此需要大家仔细校验数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,758评论 0 15
  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,267评论 0 34
  • d3二班的战友们大家好,真不好意思化妆的时间有点太长了,这么关键的一个开班仪式,我居然掉链子了。这说明什么呢,说明...
    Hanna阅读 349评论 1 1
  • 神奇的经历——初遇 14岁那年盛夏,无聊的翻看QQ空间,不知道是第几次看见‘王俊凯’这个名字了,不得不说,这是一个...
    薇来坷苡阅读 291评论 0 0