将MySQL数据迁移到Firebase的有效方法

时间:2019-06-09 19:42:01

标签: mysql node.js performance firebase

我需要将〜250万行数据从MySQL迁移到Firebase,并寻找使用NodeJS的有效方法。

在MySQL数据库中,某些列是BLOB类型的,因此我需要将它们转换为文本。我正在使用CONVERT函数,因此示例查询将如下所示:

SELECT 
    FLOOR((id >> 8) / 1000) AS 'createdAt',
    CONVERT( log_1 USING utf8mb4) AS 'log_1',
    CONVERT( log_2) AS 'log_2',
    m.direction as 'direction'
FROM
    table;

这是我的第一个问题,是否有一种方法可以在几次迭代中分批获取数据,而不是一次交易就占用全部250万行?像MSSQL中的SKIP TAKE一样?

拥有来自MySQL的所有数据后,我需要将它们转换为某种结构,按某些属性分组,最后将它们存储在Firebase中。最有效的方法是什么?我猜只有一个for..loop并仅通过调用set函数保存一个文档即可。

await fb.collection('test').doc().set(chatCollection[i])

1 个答案:

答案 0 :(得分:0)

我只需要执行所需的SQL查询,然后将所有数据导出到文件中(例如csv)。这样,如果它们破裂,您将无需担心任何事情。

然后分批读取文件并将批处理插入Firebase。

https://firebase.google.com/docs/firestore/manage-data/transactions

如果您在SQL中有文件,请将其存储到Blob存储中,并获得您的Firebase文档中的链接。

250万条记录实在不算什么大数目,因此应该很快就能完成:)。祝你好运!