我需要将〜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])
答案 0 :(得分:0)
我只需要执行所需的SQL查询,然后将所有数据导出到文件中(例如csv)。这样,如果它们破裂,您将无需担心任何事情。
然后分批读取文件并将批处理插入Firebase。
https://firebase.google.com/docs/firestore/manage-data/transactions
如果您在SQL中有文件,请将其存储到Blob存储中,并获得您的Firebase文档中的链接。
250万条记录实在不算什么大数目,因此应该很快就能完成:)。祝你好运!