Quali sono alcuni modi per inserire dati in Amazon Redshift usando node.js?Carica i dati in Redshift usando Node.js
Questo dovrebbe essere piuttosto semplice, ma non sono riuscito a trovare alcun esempio concreto per un caricamento efficiente.
Quali sono alcuni modi per inserire dati in Amazon Redshift usando node.js?Carica i dati in Redshift usando Node.js
Questo dovrebbe essere piuttosto semplice, ma non sono riuscito a trovare alcun esempio concreto per un caricamento efficiente.
Un modo di fare che potrebbe essere quella di caricare i dati nel S3 utilizzando AWS node.js SDK (c'è un example nella documentazione), quindi utilizzare node-pg ai COPY i dati in Redshift:
var pg = require('pg');
var conString = "postgres://user:[email protected]:port/schema";
var client = new pg.Client(conString);
client.connect(function(err) {
if(err) {
return console.error('could not connect to postgres', err);
}
//assuming credentials are exported as enviornment variables,
//both CLI- and S3cmd-style are supported here.
//Also, you may want to specify the file's format (e.g. CSV),
//max errors, etc.
var copyCmd = 'copy my_redshift_table from \'s3://your_bucket/your_file\' credentials \'aws_access_key_id='
+ (process.env.AWS_ACCESS_KEY || process.env.AWS_ACCESS_KEY_ID)
+ ';aws_secret_access_key='
+ (process.env.AWS_SECRET_KEY || process.env.AWS_SECRET_ACCESS_KEY)
+ '\'';
client.query(copyCmd, function(err, result) {
if(err) {
return console.error('error running query', err);
}
logger.info("redhshift load: no errors, seem to be successful!");
client.end();
});
});
Nota che don' ho bisogno di driver speciali per farlo funzionare.
Risposta accettata perché la domanda è stata risolta e è trascorso abbastanza tempo. Tuttavia, cambierò felicemente a qualsiasi risposta migliore se ne viene visualizzata una. – etov
Hai qualche esperienza con il modulo 'pool' di pg per emettere i comandi di COPY? – jdelman
@ js87 - no, non ho provato a utilizzare il modulo pool. Se lo fai e risulta essere meglio del semplice pg per favore posta una risposta aggiuntiva! – etov