У меня есть 1500 записей, которые будут созданы в базе данных Azure Cosmos, я просто пробегаю с помощью кода JavaScript. У меня есть подключение API REST с базой данных. Я подаю данные, чтобы быть обновленными как массив JSON.
Проблема заключается в том, когда я передаю целые данные, тайм -аут базы данных Azure или отправлять ERR_CONNECTION_RESET. Многие из вас создаст огромное количество записей в базе данных, и может быть какой -то эффективный способ преодолеть эту проблему. Я хочу твое предложение.
Поскольку большинство записей не найдено, много раз создает новую запись И я никогда не продвигал такое огромное количество данных раньше. Любое предложение или новая идея действительно помогут мне.
Примечание. Я запускаю этот код JavaScript, используя модульный тест MOCHA
Ниже приведен фрагмент кода
Record.js
const fetch = require('node-fetch'); let connectionAzureDataBase = "abc..."; let SubscriptionKey = "xyz"; let promises = []; let j = -1; module.exports = { checkRecord } function checkRecord (req) { for (let i = 0; i < req.body.length; i++) { promises[j] = new Promise(async function(resolve, reject) { //check if record exist in azure var apiUrl = APICheckRecord( req.body[i].recordName); fetch(apiUrl , { headers:connectionAzureDataBase}) .then(res => res.json()) .then(record => { if(record) { console.log("Record Found"); } else { console.log("Record not Found, calling API to create Record"); var apiUrl = APICreateNewRecord( req.body[i].recordName); fetch(apiUrl , { headers:connectionAzureDataBase}) .then(res => res.json()) .then(recordCreated => { if(recordCreated) { console.log("record created successfully"); resolve("record created successfully"); } else { console.log("Encountered some unexpected condition"); resolve("Encountered some unexpected condition"); } }).catch(err => { console.log("record could not be created"); resolve("record could not be created"); }) } }).catch(err => { console.log("record not found"); resolve("record not found"); }) })// close promise }// close for let replies = await Promise.all(promises); let promise1 = new Promise (function(resolve,reject) { resolve(replies); }) }
Record.spec.js
const Records = require("Record.js); it("should find/create records", async function() { this.timeout(6000000); try { let req =[ { "recordName": "Xyz", "recordDate": "12-06-2020" }, { "recordName": "Abc", "recordDate": "13-06-2020" } ] let reply = await Records.checkRecord(req); console.log(JSON.stringify(reply)); } catch(err) { console.log(err); } })
Ошибка
message: 'request to https://apim-dev.azure-api.net/api/portal/records/?recordName="Xyz" failed, reason: read ECONNRESET', type: 'system', errno: 'ECONNRESET', code: 'ECONNRESET' } message: 'request to https://apim-dev.azure-api.net/api/portal/createRecords/ failed, reason: read ECONNRESET', type: 'system', errno: 'ECONNRESET', code: 'ECONNRESET' }
Это образец передачи данных, у меня есть 1500 таких записей Образец данных
[ { "recordName": "Xyz", "recordDate": "12-06-2020" }, { "recordName": "Abc", "recordDate": "13-06-2020" } ]
Оригинал: “https://dev.to/karthik22061993/how-to-create-update-large-quantity-records-in-azure-cosmos-database-4mcm”