如何读取真正大的 JSON 文件并使用 node.js 将该文件的数据插入 MYSQL 数据库?

     2023-03-11     102

关键词:

【中文标题】如何读取真正大的 JSON 文件并使用 node.js 将该文件的数据插入 MYSQL 数据库?【英文标题】:How to read really LARGE JSON file and insert that file's data into a MYSQL database using node.js? 【发布时间】:2020-06-22 06:53:53 【问题描述】:

我有很大的 JSON 文件(22GB)。我想读取该文件并使用 node.js 将该文件的数据输入到 MySql 数据库中。我该怎么做?

这是我的数据库查询:

var query = connection.query("INSERT INTO hotels (property_id, name, address,city, state_province_name, postal_code, 
        country_code, star_rate, latitude, longitude, category, rank, collect, property_collect, featured_image, breakfast_included, free_wifi_available) 
VALUES ('" + .... + "', .........;

【问题讨论】:

欢迎来到 ***。请编辑问题以显示您尝试过的内容(完整代码),并提及您遇到的错误。另外,请提及您正在使用的 mysql 客户端模块,以及您系统上安装的 mysql 版本。请阅读***.com/help/minimal-reproducible-example 至少我不知道如何做到这一点。如果有人能给我一个解决方案,我很高兴。 【参考方案1】:

我找到了解决方案。谢谢所有试图帮助我的人。

这是我的数据库连接(db.js

var mysql = require('mysql');

//connect to db
var dbCon  = mysql.createPool(
   connectionLimit : 50,
   host: 'xxxxx',
   user: 'xxx',
   password: 'xxx',
   database: 'xxxxx',
   waitForConnections: true,
   queueLimit: 0,
 );

 dbCon.on('connection', function (connection) 
    console.log('db pool connection');
    connection.query("SET time_zone='+5:30'");
  );

 dbCon.on('release', function (connection) 
    console.log('Connection %d released', connection.threadId);
 );

 module.exports = 
   dbCon
 ;

这是我的解决方案。

var express = require('express');
var app   = express();
var dbCon = require('./config/db').dbCon;
var fs = require('fs');
var readline = require('readline');
var stream = require('stream');
var data = '';

// Create a readable stream
var readerStream = fs.createReadStream('./data/myJson.jsonl');

// Set the encoding to be utf8. 
readerStream.setEncoding('UTF8');

var outstream = new stream();
//createInterface - read through the stream line by line and print out data from it
var r1 = readline.createInterface(readerStream, outstream);
var lineCount = 0;

r1.on('line', function (line) 
  // increment line count
  lineCount++;
  data = JSON.parse(line);

saveRecord(data);
)


function saveRecord(data) 

if (typeof data["city "] !== 'undefined') 
    var cityTemp = data["city"];
 else 
    cityTemp = "";


var property_id = data["property_id"];
var name = data["name"];
var city = cityTemp;

var sql = "INSERT INTO hotels (property_id, name, city) VALUES (?, ?, ?)";

dbCon.query(sql, [property_id, name, city]);

console.log('data inserted');


console.log("Program Ended");

【讨论】:

【参考方案2】:

对于这个大文件,流式传输是最好的方式。有一个名为etl 的软件包可以为您完成这项工作。像这样的

etl.file('somefile')
  .pipe(etl.mysql.upsert(pool,'testschema','testtable',concurrency:4 ))

【讨论】:

如何仅使用 JavaScript 正确读取 json 文件 [重复]

】如何仅使用JavaScript正确读取json文件[重复]【英文标题】:HowtoreadjsonfilecorrectlyusingonlyJavaScript[duplicate]【发布时间】:2019-10-2716:46:47【问题描述】:我需要创建HTML选择器并从JSON中获取它们的值,我创建了JSON并尝试通过在html文... 查看详情

如何使用 node.js 将 EXCEL 文件数据读取到 json

】如何使用node.js将EXCEL文件数据读取到json【英文标题】:HowtoreadEXCELfiledatatojsonusingnode.js【发布时间】:2017-07-1201:17:42【问题描述】:如何使用node.js将EXCEL文件数据读入json文件夹的路径在服务器之外即,计算机中的任何位置,例... 查看详情

NodeJS:读取一个大的 csv 文件

...能再使用fs.readFileSync,所以我需要使用流。我的问题是:如何使用流和正则表达式 查看详情

如何使用 node.js 在服务器端使用纯 JavaScript 读取 JSON 文件?

】如何使用node.js在服务器端使用纯JavaScript读取JSON文件?【英文标题】:HowtoreadJSONfileswithpurejavascriptonaserversideusingnode.js?【发布时间】:2019-11-0114:47:37【问题描述】:我几乎没有使用Node.js和jQuery的经验,过去几个小时一直在寻找... 查看详情

如何在 pyspark 中读取大的 zip 文件

】如何在pyspark中读取大的zip文件【英文标题】:Howtoreadlargezipfilesinpyspark【发布时间】:2019-03-2814:29:04【问题描述】:我在s3上确实有n个.zip文件,我想处理并从中提取一些数据。zip文件包含一个json文件。在Spark中,我们可以读取... 查看详情

如何从目录中读取文件并作为 JSON 发送给客户端?

】如何从目录中读取文件并作为JSON发送给客户端?【英文标题】:HowcanIreadfilesfromdirectoryandsendasJSONtoclient?【发布时间】:2016-11-0110:14:27【问题描述】:我在服务器目录中有日志文件,我想向客户端显示文件名,所以我创建了readD... 查看详情

如何使用 HTML 输入文件导入 excel 文件并在 Node.js 中读取文件内容(如何将完整路径发送到 Node.js)

】如何使用HTML输入文件导入excel文件并在Node.js中读取文件内容(如何将完整路径发送到Node.js)【英文标题】:HowtoimportexcelfileusingHTMLInputfileandreadthefilecontentsinNode.js(HowtosendthefullpathtoNode.js)【发布时间】:2020-11-0600:15:08【问题描述... 查看详情

如何通过node.js中的JSONStream模块解析一个大的、换行符分隔的JSON文件?

】如何通过node.js中的JSONStream模块解析一个大的、换行符分隔的JSON文件?【英文标题】:howtoparsealarge,Newline-delimitedJSONfilebyJSONStreammoduleinnode.js?【发布时间】:2013-02-1319:41:26【问题描述】:我有一个大的json文件,它是换行符分隔... 查看详情

如何使用filebeat读取json文件并通过logstash发送到elasticsearch

】如何使用filebeat读取json文件并通过logstash发送到elasticsearch【英文标题】:Howtoreadjsonfileusingfilebeatandsendittoelasticsearchvialogstash【发布时间】:2019-10-3117:24:48【问题描述】:这是我的json日志文件。我正在尝试通过我的logstash将文件... 查看详情

如何读取 JSON 文件、更改一些值并保存它。使用 FS/Javascript [重复]

】如何读取JSON文件、更改一些值并保存它。使用FS/Javascript[重复]【英文标题】:HowdoIreadaJSONfile,changesomevalues,andsaveit.UsingFS/Javascript[duplicate]【发布时间】:2021-07-2721:52:53【问题描述】:我当前的代码如下。bot.on(\'message\',mssg=>io.... 查看详情

如何在 Node.js 中读取文件内容并将数据转换为 JSON?

】如何在Node.js中读取文件内容并将数据转换为JSON?【英文标题】:HowtoreadfilecontentinNode.jsandconvertthedatatoJSON?【发布时间】:2019-08-2716:46:25【问题描述】:我正在尝试从.json文件发送数据作为Node.js的响应。我对它很陌生,我不知... 查看详情

如何在 Node JS 中读取文本文件并将其作为 JSON 对象返回?

】如何在NodeJS中读取文本文件并将其作为JSON对象返回?【英文标题】:HowtoreadatextfileandreturnitasaJSONobjectinNodeJS?【发布时间】:2017-01-1922:18:29【问题描述】:我有一个文本文件。我需要读取函数内的文件并将其作为JSON对象返回。... 查看详情

如何使用 Node.js 读取/写入图像?

】如何使用Node.js读取/写入图像?【英文标题】:HowcanIRead/WriteImageswithNode.js?【发布时间】:2021-03-2914:20:27【问题描述】:我对JS很陌生,我正在开发一个Discord机器人,它使用Discord.js,它使用COCO-SSDJS并要求我从我的电脑读取/写... 查看详情

如何更新json文件中的值并通过node.js保存

】如何更新json文件中的值并通过node.js保存【英文标题】:Howtoupdateavalueinajsonfileandsaveitthroughnode.js【发布时间】:2012-05-2723:56:38【问题描述】:如何更新json文件中的值并通过node.js保存?我有文件内容:varfile_content=fs.readFileSync(fil... 查看详情

如何使用 node.js 访问 json 对象的子元素

】如何使用node.js访问json对象的子元素【英文标题】:Howtoaccesschildelementofjsonobjectusingnode.js【发布时间】:2015-02-0522:37:26【问题描述】:在我的node.js应用程序中,我从mongodb服务器检索值并希望将它们转换为CSV文件。父元素很容易... 查看详情

在 Heroku 上使用 Node 读取、写入和存储 JSON

】在Heroku上使用Node读取、写入和存储JSON【英文标题】:Reading,writingandstoringJSONwithNodeonHeroku【发布时间】:2014-09-0500:17:40【问题描述】:我正在构建一个基于在Heroku上运行的Node.js的应用程序。该应用程序使用一个JSON文件,该文... 查看详情

如何读取 JSON 文件并传输到 Flask 组织的 HTML 中的 Javascript?

】如何读取JSON文件并传输到Flask组织的HTML中的Javascript?【英文标题】:HowtoreadJSONfileandtransmittoJavascriptinHTMLorganizedbyFlask?【发布时间】:2022-01-2019:56:04【问题描述】:我正在尝试通过p5js使用Flask组织的服务器以JSON格式可视化一堆... 查看详情

在es模块(node.js)中导入json文件

参考技术ANode.js文档建议使用fs模块并自己完成读取文件和解析的工作。这种方法比起我们接下来用的第二种方法更容易理解。我们还可以使用createRequire加载JSON文件。createRequire允许您构造CommonJSrequire方法,以便可以使用典型的Co... 查看详情