Skip to content

Instantly share code, notes, and snippets.

@cemo
Forked from tomodian/firehose-to-athena.js
Created February 16, 2018 16:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cemo/1ca2b6a4b2bf1ab31c2e6f630907dbb1 to your computer and use it in GitHub Desktop.
Save cemo/1ca2b6a4b2bf1ab31c2e6f630907dbb1 to your computer and use it in GitHub Desktop.
Firehose to Athena
'use strict';
const aws = require('aws-sdk');
const s3 = new aws.S3({ apiVersion: '2006-03-01' });
exports.handler = (event, context, callback) => {
const key = decodeURIComponent(event.Records[0].s3.object.key);
const meta = key.split('/');
console.log(meta);
const part = {
year: meta[1],
month: meta[2],
day: meta[3],
hour: meta[4],
name: meta[5],
};
const params = {
Bucket: 'demo-kinesis-justademo',
CopySource: `firehose/${key}`,
Key: `athena/dt=${part.year}-${part.month}-${part.day}-${part.hour}/${part.name}`
}
s3.copyObject(params, function(err, data) {
if(err) {
console.log(err);
callback(err.message);
return;
}
console.log('copied');
callback(null, 'copied')
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment