new Bigtable(optionsopt)
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
ClientConfig |
<optional> |
Configuration options. |
Examples
Create a client that uses <a href="https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application">Application Default Credentials (ADC)</a>:
```
const {Bigtable} = require('@google-cloud/bigtable');
const bigtable = new Bigtable();
```
Create a client with <a href="https://cloud.google.com/docs/authentication/production#obtaining_and_providing_service_account_credentials_manually">explicit credentials</a>:
```
const {Bigtable} = require('@google-cloud/bigtable');
const bigtable = new Bigtable({
projectId: 'your-project-id',
keyFilename: '/path/to/keyfile.json'
});
```
The Bigtable Emulator
```
// Make sure you have the gcloud SDK installed, then run:
$ gcloud beta emulators bigtable start
// Before running your Node.js app, set the environment variables that this
// library will look for to connect to the emulator:
$ $(gcloud beta emulators bigtable env-init)
```
Creating a Bigtable Instance and Cluster
```
// Before you create your table, you first need to create a Bigtable Instance
// and cluster for the table to be served from.
const {Bigtable} = require('@google-cloud/bigtable');
const bigtable = new Bigtable();
const callback = (err, instance, operation) => {
operation
.on('error', console.log)
.on('complete', () => {
// `instance` is your newly created Instance object.
});
};
const instance = bigtable.instance('my-instance');
instance.create({
clusters: [
{
id: 'my-cluster',
location: 'us-central1-b',
nodes: 3
}
]
}, callback);
// This can also be done from either the Google Cloud Platform Console or the
// `gcloud` cli tool. Please refer to the
// official Bigtable documentation
// for more information.
```
Creating Tables
```
// After creating your instance and enabling the Bigtable APIs, you are now
// ready to create your table with Instance#createTable.
instance.createTable('prezzy', function(err, table) {
// `table` is your newly created Table object.
});
```
Creating Column Families
```
// Column families are used to group together various pieces of data within
// your table. You can think of column families as a mechanism to categorize
// all of your data.
//
// We can create a column family with Table#createFamily.
const table = instance.table('prezzy');
table.createFamily('follows', function(err, family) {
// `family` is your newly created Family object.
});
// It is also possible to create your column families when creating a new
// table.
const options = {
families: ['follows']
};
instance.createTable('prezzy', options, function(err, table) {});
```
Creating Rows
```
// New rows can be created within your table using
// Table#insert. You must provide a unique key for each row
// to be inserted, this key can then be used to retrieve your row at a later
// time.
//
// With Bigtable, all columns have a unique id composed of a column family
// and a column qualifier. In the example below `follows` is the column
// family and `tjefferson` is the column qualifier. Together they could be
// referred to as `follows:tjefferson`.
const rows = [
{
key: 'wmckinley',
data: {
follows: {
tjefferson: 1
}
}
}
];
table.insert(rows, err => {
if (!err) {
// Your rows were successfully inserted.
}
});
```
Retrieving Rows
```
// If you're anticipating a large number of rows to be returned, we suggest
// using the Table#getRows streaming API.
table.createReadStream()
.on('error', console.error)
.on('data', row => {
// `row` is a Row object.
});
// If you're not anticpating a large number of results, a callback mode
// is also available.
const callback = (err, rows) => {
// `rows` is an array of Row objects.
};
table.getRows(callback);
// A range of rows can be retrieved by providing `start` and `end` row keys.
const options = {
start: 'gwashington',
end: 'wmckinley'
};
table.getRows(options, callback);
// Retrieve an individual row with Row#get.
const row = table.row('alincoln');
row.get(err => {
// `row.data` is now populated.
});
```
Accessing Row Data
```
// When retrieving rows, upon success the `row.data` property will be
// populated by an object. That object will contain additional objects
// for each family in your table that the row has data for.
//
// By default, when retrieving rows, each column qualifier will provide you
// with all previous versions of the data. So your `row.data` object could
// resemble the following.
{
follows: {
wmckinley: [
{
value: 1,
timestamp: 1466017315951
}, {
value: 2,
timestamp: 1458619200000
}
]
}
}
// The `timestamp` field can be used to order cells from newest to oldest.
// If you only wish to retrieve the most recent version of the data, you
// can specify the number of cells with a Filter object.
const filter = [
{
column: {
cellLimit: 1
}
}
];
table.getRows({
filter: filter
}, callback);
```
Deleting Row Data
```
// We can delete all of an individual row's cells using Row#delete.
const callback = err => {
if (!err) {
// All cells for this row were deleted successfully.
}
};
row.delete(callback);
// To delete a specific set of cells, we can provide an array of
// column families and qualifiers.
const cells = [
'follows:gwashington',
'traits'
];
row.delete(cells, callback);
```
Deleting Rows
```
// If you wish to delete multiple rows entirely, we can do so with
// Table#deleteRows. You can provide this method with a
// row key prefix.
const options = {
prefix: 'gwash'
};
table.deleteRows(options, err => {
if (!err) {
// Rows were deleted successfully.
}
});
// If you omit the prefix, you can delete all rows in your table.
table.deleteRows(err => {
if (!err) {
// All rows were deleted successfully.
}
});
```
Members
AppProfile
AppProfile class.
- See:
Cluster
Cluster class.
- See:
Instance
Instance class.
- See:
Methods
close()
Close all bigtable clients. New requests will be rejected but it will not kill connections with pending requests.
createInstance(id, options, callback)
Create a Cloud Bigtable instance.
Parameters:
Name | Type | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
string |
The unique id of the instance. |
||||||||||||||||||||||||
options |
object |
Instance creation options. Properties
|
||||||||||||||||||||||||
callback |
function |
The callback function. Properties
|
Example
```
const {Bigtable} = require('@google-cloud/bigtable');
const bigtable = new Bigtable();
const callback = function(err, instance, operation, apiResponse) {
if (err) {
// Error handling omitted.
}
operation
.on('error', console.log)
.on('complete', () => {
// The instance was created successfully.
});
};
const options = {
displayName: 'my-sweet-instance',
labels: {env: 'prod'},
clusters: [
{
id: 'my-sweet-cluster',
nodes: 3,
location: 'us-central1-b',
storage: 'ssd'
}
]
};
bigtable.createInstance('my-instance', options, callback);
//-
// If the callback is omitted, we'll return a Promise.
//-
bigtable.createInstance('my-instance', options).then(function(data) {
const instance = data[0];
const operation = data[1];
const apiResponse = data[2];
});
```
getInstances(gaxOptionsopt, callbackopt) → {Promise.<GetInstancesResponse>}
Get Instance objects for all of your Cloud Bigtable instances.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
gaxOptions |
object |
<optional> |
Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/classes/CallSettings.html. |
callback |
GetInstancesCallback |
<optional> |
The callback function. |
Returns:
Type | Description |
---|---|
Promise.<GetInstancesResponse> |
Examples
```
const {Bigtable} = require('@google-cloud/bigtable');
const bigtable = new Bigtable();
bigtable.getInstances(function(err, instances, response) {
if (!err) {
// `instances` is an array of Instance objects.
if (response.failedLocations.length > 0) {
// These locations contain instances which could not be retrieved.
}
}
});
```
If the callback is omitted, we'll return a Promise.
```
bigtable.getInstances().then(function(data) {
const instances = data[0];
const fullResponse = data[2];
if (fullResponse.failedLocations.length > 0) {
// These locations contain instances which could not be retrieved.
const failedLocations = fullResponse.failedLocations;
}
});
```
instance(id) → {Instance}
Get a reference to a Cloud Bigtable instance.
Parameters:
Name | Type | Description |
---|---|---|
id |
string |
The id of the instance. |
Returns:
Type | Description |
---|---|
Instance |
request(config, callbackopt)
Funnel all API requests through this method, to be sure we have a project ID.
Parameters:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
object |
Configuration object. Properties
|
|||||||||||||
callback |
function |
<optional> |
Callback function. |