Я пытаюсь передать данные с сервера SQL в DynamoDb с помощью Node.jsПередача данных из MSSQL в DynamoDB с помощью Node.js
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 и я думаю, что я это делаю неправильно. У меня 150000 тысяч записей в моей таблице sql.
Процесс использует много памяти, и я получаю кучу Javascript из памяти. Я проверил Провиденную пропускную способность моей таблицы динамо и установил ее до 4000 записей в секунду. Если я уменьшу количество строк, исходящих из SQL, этот код отлично работает.
Любая помощь или совет будут очень признательны.
Я полностью признаю, что это был не ваш вопрос, но, возможно, узел не лучший инструмент для работы. Вы можете посмотреть специализированное программное обеспечение ETL (ETL = Извлечь Transform Load. Просто придирчивый разговор для перемещения большого количества данных). – Xedni