https://github.com/emartech/google-big-query-js
Helper library to easily use BigQuery in NodeJS
https://github.com/emartech/google-big-query-js
Last synced: 11 months ago
JSON representation
Helper library to easily use BigQuery in NodeJS
- Host: GitHub
- URL: https://github.com/emartech/google-big-query-js
- Owner: emartech
- License: mit
- Created: 2017-08-31T19:48:29.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T12:19:41.000Z (over 3 years ago)
- Last Synced: 2024-04-14T07:41:00.477Z (over 2 years ago)
- Language: JavaScript
- Size: 375 KB
- Stars: 5
- Watchers: 9
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# @emartech/google-big-query
Helper library to easily use Google BigQuery in NodeJS
# Configuration
`@emartech/google-big-query` uses the `config` package for configuration. You should make the following settings available under `"GoogleCloud" namespace:
```json
{
"projectId": "",
"bucket": "",
"dataset": "",
"credentials": {},
"maximumBillingTier": 10
}
```
### projectId
The project you'll use for billing.
### dataset
The default dataset to connect to if it was not specified.
### credentials
The credentials the connection will use.
Example:
```json
{
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "example@my-service.iam.gserviceaccount.com"
}
```
### maximumBillingTier
More info about pricing: [https://cloud.google.com/bigquery/pricing](https://cloud.google.com/bigquery/pricing)
# API
```javascript
const BigQuery = require('@emartech/google-big-query');
```
## BigQuery
### Methods
#### create(datasetName):BigQuery `static`
Creates a BigQuery instance.
##### Parameters
| Name | Type | Description |
| ------------- | ------ | ------------------------------------------------------------ |
| `datasetName` | string | The name of the default dataset.
Default: `config.GoogleCloud.dataset`
`optional` |
##### Returns
| Type | Description |
| -------- | --------------------------------------- |
| BigQuery | Instance of the BigQuery wrapper class. |
#### constructor(datasetName, client):BigQuery
Constructor of BigQuery wrapper.
##### Parameters
| Name | Type | Description |
| ------------- | ---------------------- | -------------------------------- |
| `datasetName` | string | The name of the default dataset. |
| `client` | @google-cloud/bigquery | The BigQuery client. |
#### table(tableName):Table
Returns a [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) instance for the given table name.
##### Parameters
| Name | Type | Description |
| ----------- | ------ | ------------------------------------ |
| `tableName` | string | The name of the table in the dataset |
##### Returns
| Type | Description |
| ------------------------------------------------------------ | ------------------------------------------- |
| [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) | Google Cloud BigQuery Table class instance. |
#### createQueryStream(query):ReadableStream
This is a wrapper of the original [createQueryStream()](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/BigQuery#createQueryStream) method.
##### Parameters
| Name | Type | Description |
| ------- | ---------------- | ------------------------------------------------------------ |
| `query` | string or object | The query to run.
[More info](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/BigQuery#query) about the parameter. |
##### Returns
| Type | Description |
| -------------- | ----------- |
| ReadableStream | |
#### query(query):Promise
This is a wrapper of the original [query()](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/BigQuery#query) method.
##### Parameters
| Name | Type | Description |
| ------- | ---------------- | ------------------------------------------------------------ |
| `query` | string or object | The query to run.
[More info](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/BigQuery#query) about the parameter. |
##### Returns
| Type | Description |
| ------- | ----------- |
| Promise | |
#### createQueryJob(query):Promise `generator`
This is a wrapper of the original [createQueryJob()](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/BigQuery#createQueryJob) method.
##### Parameters
| Name | Type | Description |
| --------- | ---------------- | ----------- |
| `options` | object or string | |
##### Returns
| Type | Description |
| ------- | ----------- |
| Promise | |
##### Example
```javascript
let [job] = yield BigQuery.create().createQueryJob(query);
job.getQueryResultsStream({ maxResults: 100000, startIndex: 0 }).pipe(processRow);
```
#### createTableIfNotExists(table, schema):Table `generator`
Creates the table with the specified [schema](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#schema).
##### Parameters
| Name | Type | Description |
| -------- | ------------------------------------------------------------ | ------------------------------ |
| `table` | [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) | The table instance |
| `schema` | object | Schema definition of the table |
##### Returns
| Type | Description |
| ------------------------------------------------------------ | -------------- |
| [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) | The new Table. |
#### dropTableIfExists(table):void `generator`
Drops the given table if exists.
##### Parameters
| Name | Type | Description |
| ------- | ------------------------------------------------------------ | ------------------------------------------ |
| `table` | [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) | The table instance that should be dropped. |
#### createTable(tableName, options):Table `generator`
This is a wrapper of the original [createTable()](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Dataset#createTable) method.
##### Parameters
| Name | Type | Description |
| ----------- | ------ | ------------------------------------------------------------ |
| `tableName` | string | The name of the table. |
| `options` | object | More info in the [original documentation](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Dataset#createTable). `optional` |
##### Returns
| Type | Description |
| ------------------------------------------------------------ | -------------- |
| [Table](https://cloud.google.com/nodejs/docs/reference/bigquery/2.0.x/Table) | The new Table. |
## BigQuery.FileToTable
#### create(file, tableName, schema, options):FileToTable `static`
#### createWith(file, table, schema, options):FileToTable `static`
#### constructor(file, table, schema options):FileToTable
#### run():Job
## BigQuery.QueryToFile
#### create(baseName, format, file):QueryToFile `static`
#### constructor(tableName, format, file):QueryToFile
#### run(query, options):File `generator`
## BigQuery.QueryToFileToStream
#### create(baseName):QueryToFileToStream `static`
#### constructor(queryToFile):QueryToFileToStream
#### createQueryStream(query, options):JSONStream `generator`
## BigQuery.QueryToStream
#### create():QueryToStream `static`
#### constructor(client):QueryToStream
#### run(query, parameters):ReadableStream
## BigQuery.QueryToTable
#### create(tableName, dataset):QueryToTable `static`
#### constructor(client, tableName, dataset):QueryToTable
#### run(query, params):Job `generator`
## BigQuery.QueryToView
#### create(viewName):QueryToView `static`
#### constructor(client, viewName):QueryToView
#### run():Table `generator`
## BigQuery.StreamToTable
#### create(tableName, tableSchema):StreamToTable `static`
#### constructor(table, tableSchema):StreamToTable
#### saveStream():Promise
## BigQuery.TableToFile
#### create(tableName, file, format):TableToFile `static`
#### constructor(table, file, format):TableToFile
#### run():Job `generator`