0

I was working with GridDB Node Js Connector and trying to load all the data from a csv file into the GridDB Container using TQL, but I received the following error:

[Error code]: 1001

[Description] (Error in securing memory)

[Format] Error description below

Memory of TQL parser cannot be secured

I am unable to figure out this error. Did I perform the wrong TQL query to load the data in GridDB, or is it something else?

P.S. I am attaching the code below for reference:


var griddb = require('griddb-node-api');

const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const csvWriter = createCsvWriter({
  path: 'out.csv',
  header: [
    {id: "Country", title:"Country"}, 
    {id: "1999", title:"1999"},
    {id: "2000", title:"2000"},
    {id: "2001", title:"2001"},
    {id: "2002", title:"2002"},
    {id: "2003", title:"2003"},
    {id: "2004", title:"2004"},
    {id: "2005", title:"2005"},
    {id: "2006", title:"2006"},
    {id: "2007", title:"2007"},
    {id: "2008", title:"2008"},
    {id: "2009", title:"2009"},
    {id: "2010", title:"2010"},
    {id: "2011", title:"2011"},
    {id: "2012", title:"2012"},
    {id: "2013", title:"2013"},
    {id: "2014", title:"2014"},
    {id: "2015", title:"2015"},
    {id: "2016", title:"2016"},
    {id: "2017", title:"2017"}, 
    {id: "2018", title:"2018"}, 
    {id: "2019", title:"2019"}, 
    {id: "2020", title:"2020"},  
    {id: "2021", title:"2021"},  
    {id: "2022", title:"2022"}, 
    
  ]
});

const factory = griddb.StoreFactory.getInstance();
const store = factory.getStore({
    "host": '239.0.0.1',
    "port": 31999,
    "clusterName": "defaultCluster",
    "username": "admin",
    "password": "admin"
});

// For connecting to the GridDB Server we have to make containers and specify the schema.
const conInfo = new griddb.ContainerInfo({
    'name': "gdpanalysis",
    'columnInfoList': [
      ["name", griddb.Type.STRING],
      ["Country", griddb.Type.STRING],
        ["1999", griddb.Type.DOUBLE],
        ["2000", griddb.Type.DOUBLE],
        ["2001", griddb.Type.DOUBLE],
        ["2002", griddb.Type.DOUBLE],
        ["2003", griddb.Type.DOUBLE],
        ["2004", griddb.Type.DOUBLE],
        ["2005", griddb.Type.DOUBLE],
        ["2006", griddb.Type.DOUBLE],
        ["2007", griddb.Type.DOUBLE],
        ["2008", griddb.Type.DOUBLE],
        ["2009", griddb.Type.DOUBLE],
        ["2010", griddb.Type.DOUBLE],
        ["2011", griddb.Type.DOUBLE],
        ["2012", griddb.Type.DOUBLE],
        ["2013", griddb.Type.DOUBLE],
        ["2014", griddb.Type.DOUBLE],
        ["2015", griddb.Type.DOUBLE],
        ["2016", griddb.Type.DOUBLE],
        ["2017", griddb.Type.DOUBLE],
        ["2018", griddb.Type.DOUBLE],
        ["2019", griddb.Type.DOUBLE],
        ["2020", griddb.Type.DOUBLE],
        ["2021", griddb.Type.DOUBLE],
        ["2022", griddb.Type.DOUBLE]
    ],
    'type': griddb.ContainerType.COLLECTION, 'rowKey': true
});


// ////////////////////////////////////////////


const csv = require('csv-parser');

const fs = require('fs');
var lst = []
var lst2 = []
var i =0;
fs.createReadStream('./Dataset/GDP by Country 1999-2022.csv')
  .pipe(csv())
  .on('data', (row) => {
    lst.push(row);
    console.log(lst);

  })
  .on('end', () => {
    var container;
    var idx = 0;
    
    for(let i=0;i<lst.length;i++){

    store.putContainer(conInfo, false)
        .then(cont => {
            container = cont;
            return container.createIndex({ 'columnName': 'name', 'indexType': griddb.IndexType.DEFAULT });
        })
        .then(() => {
            idx++;
            container.setAutoCommit(false);
            return container.put([String(idx), lst[i]['Country'],lst[i]["1999"],lst[i]["2000"],lst[i]["2001"],lst[i]["2002"],lst[i]["2003"],lst[i]["2004"],lst[i]["2005"],lst[i]["2006"],lst[i]["2007"],lst[i]["2008"],lst[i]["2009"],lst[i]["2010"],lst[i]["2011"],lst[i]["2012"],lst[i]["2013"],lst[i]["2014"],lst[i]["2015"],lst[i]["2016"],lst[i]["2017"],lst[i]["2018"],lst[i]["2019"],lst[i]["2020"],lst[i]["2021"],lst[i]["2022"]]);
        })
        .then(() => {
            return container.commit();
        })      
        .catch(err => {
            if (err.constructor.name == "GSException") {
                for (var i = 0; i < err.getErrorStackSize(); i++) {
                    console.log("[", i, "]");
                    console.log(err.getErrorCode(i));
                    console.log(err.getMessage(i));
                }
            } else {
                console.log(err);
            }
        });
    
    }
    store.getContainer("gdpanalysis")
    .then(ts => {
        container = ts;
      query = container.query("select *")
      return query.fetch();
  })
  .then(rs => {
      while (rs.hasNext()) {

          let rsNext = rs.next()

          lst2.push(
                
            {
                'Country': rsNext[1],
                "1999": rsNext[2],
                "2000": rsNext[3],
                "2001": rsNext[4],
                "2002": rsNext[5],
                "2003": rsNext[6],
                "2004": rsNext[7],
                "2005": rsNext[8],
                "2006": rsNext[9],
                "2007": rsNext[10],
                "2008": rsNext[11],
                "2009": rsNext[12],
                "2010": rsNext[13],
                "2011": rsNext[14],
                "2012": rsNext[15],
                "2013": rsNext[16],
                "2014": rsNext[17],
                "2015": rsNext[18],
                "2016": rsNext[19],
                "2017": rsNext[20],
                "2018": rsNext[21],
                "2019": rsNext[22],
                "2020": rsNext[23],
                "2021": rsNext[24],
                "2022": rsNext[25],
                
            }      
          );   
      }
        csvWriter
        .writeRecords(lst2)
        .then(()=> console.log('The CSV file was written successfully'));

      return 
  }).catch(err => {
      if (err.constructor.name == "GSException") {
          for (var i = 0; i < err.getErrorStackSize(); i++) {
              console.log("[", i, "]");
              console.log(err.getErrorCode(i));
              console.log(err.getMessage(i));
          }
      } else {
          console.log(err);
      }
  });   
  
  });

0 Answers0