Рубрики
Без рубрики

Как создать/ обновить большие количества записей в базе данных Azure Cosmos

У меня есть 1500 записей, которые будут созданы в базе данных Azure Cosmos, я просто пробегаю с помощью кода JavaScript … Tagged с JavaScript, базой данных, Azure, Node.

У меня есть 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”