Skip to content

Instantly share code, notes, and snippets.

@goodpic
Last active September 15, 2018 21:47
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 goodpic/f914d9f2f1d1d6af773dca27c3d1b309 to your computer and use it in GitHub Desktop.
Save goodpic/f914d9f2f1d1d6af773dca27c3d1b309 to your computer and use it in GitHub Desktop.
BigQuery Create a new table
const BigQuery = require('@google-cloud/bigquery');
const bigquery = new BigQuery({ YOUR_PROJECT_ID });
const handleError = (err) => {
if (err && err.name === 'PartialFailureError') {
if (err.errors && err.errors.length > 0) {
console.log('Insert errors:');
err.errors.forEach(error => console.error(error));
}
} else {
console.error('ERROR:', err);
}
};
module.exports = {
createTable: ({ datasetId, tableId, schema, partitionBy, isTest }) => {
const options = { schema };
if (partitionBy) {
options.timePartitioning = {
field: partitionBy
};
}
return new Promise((resolve, reject) => {
resolve();
bigquery
.dataset(dataset)
.createTable(tableId, options)
.then(results => resolve(results[0]))
.catch(err => {
handleError(err);
reject(err);
});
});
},
deleteTable: ({ datasetId, tableId, isTest }) => {
return new Promise((resolve, reject) => {
bigquery.dataset(dataset).table(tableId).exists()
.then(
exists => {
if (exists[0]) {
bigquery.dataset(dataset).table(tableId).delete()
.then(result => resolve(result));
} else {
resolve('The table does not exists');
}
}
)
.catch(err => {
handleError(err);
reject(err);
});
});
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment