gpt4 book ai didi

sql-server - 使用 Node.js 从 MSSQL 到 DynamoDB 的数据传输

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:51 25 4
gpt4 key购买 nike

我正在尝试使用 Node.js 将数据从 SQL Server 传输到 DynamoDb

 sql.connect(config, function (err) {

if (err) console.log(err);

// create Request object
var request = new sql.Request();

// query to the database and get the records
request.query('SELECT Client, Brand FROM Client WHERE Brand = 6',
function (err, recordset) {

if (err) console.log(err);

console.log('request exectued');
var itemProcessed = 0;
// send records as a response
recordset.forEach(function (record) {

var params = {
TableName: 'ClientBrandLookUp',
Item: {
'ClientID': record.Client,
'Brand': record.Brand
}
};

docClient.put(params, function (err, data) {
if (err) {
console.log(err);
} else {
console.log('Added');
itemProcessed++;
if (itemProcessed === recordset.length) { alldone(); }
}
});
});
});
});

我是 Node.js 新手,我认为我做错了。我的sql表中有150000千条记录。

该进程使用了​​大量内存,并且 Javascript 堆内存不足。我检查了 dynamo 表的预置吞吐量并将其设置为每秒 4000 次写入。如果我减少来自 SQL 的行数,则此代码可以正常工作。

任何帮助或建议将不胜感激。

最佳答案

问题是它试图一次将所有 150,000 条记录加载到内存中。您应该做的是调整查询以一次仅请求数据集的部分内容(页面)。关于如何在 T-SQL 中实现分页,有很多答案,但如果您使用的是新版本,this answer应该可以解决问题。也就是说,将由您的代码来计算共有多少条记录并跟踪当前页面。

关于sql-server - 使用 Node.js 从 MSSQL 到 DynamoDB 的数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com