hypertable-driver
v1.98.4
Published
hypertable-driver
Downloads
9
Readme
hypertable-driver
hypertable-driver
attention
node -v >=6.9.1 Use for hytable 0.9.8
use
npm install hypertable-driver
#website www.hypertable.com
#api http://www.hypertable.com/documentation/reference_manual/thrift_api
instructions & example
##hyperTableClient
var HyperTableDriver = require('hypertable-driver');
var htConfig = {
host:'121.43.190.15',
port:15867,
timeout:3000 //option
};
var hyperTableClient = new HyperTableDriver.HyperTableClient(htConfig);
var client = hyperTableClient.getClient();
##HyperTableNameSpace
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_exists('test').then((result) => {
console.log(result);
});
hyperTableNameSpace.namespace_create('test').then((result) => {
//this is async,attention!
console.log(result);
});
var namespace = null;
hyperTableNameSpace.namespace_open('/')
.then((result) => {
namespace = result;
return hyperTableNameSpace.namespace_get_listing(namespace);
})
.then((list)=>{
console.log(list);
return hyperTableNameSpace.namespace_close(namespace);
})
.then((result)=>{
console.log(result);
});
##HyperTableTable
var namespace = null;
var hyperTableTable = null;
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
var accessGroupOptions = new HyperTableDriver.pojso.AccessGroupOptions();
var columnFamilyOptions = new HyperTableDriver.pojso.ColumnFamilyOptions();
var accessGroupSpec = new HyperTableDriver.pojso.AccessGroupSpec();
var columnFamilySpec = new HyperTableDriver.pojso.ColumnFamilySpec();
var defaultAccessGroupOptions = accessGroupOptions.setBlocksize(65536)
.getAccessGroupOptions();
var defaultColumnFamilyOptions = columnFamilyOptions.setMaxVersions(3)
.getColumnFamilyOptions();
var accessGroups ={};
var columnFamilies ={};
var ag_normal = accessGroupSpec.setName('ag_normal')
.setDefaults(defaultColumnFamilyOptions)
.getAccessGroupSpec();
accessGroups.ag_normal = ag_normal;
var fastAccessGroupOptions = accessGroupOptions
.setInMemory(true)
.getAccessGroupOptions();
var ag_fast = accessGroupSpec.setName('ag_fast')
.setOptions(fastAccessGroupOptions)
.getAccessGroupSpec();
accessGroups.ag_fast = ag_fast;
var secureAccessGroupOptions = accessGroupOptions
.deleteByName('in_memory')
.setReplication(5)
.getAccessGroupOptions();
var ag_secure = accessGroupSpec.setName('ag_secure')
.setOptions(secureAccessGroupOptions)
.getAccessGroupSpec();
accessGroups.ag_secure = ag_secure;
var name = columnFamilySpec.setName('name')
.setAccessGroup('ag_normal')
.setOptions(defaultColumnFamilyOptions)
.getColumnFamilySpec();
var age = columnFamilySpec.setName('age')
.setAccessGroup('ag_fast')
.getColumnFamilySpec();
var sex = columnFamilySpec.setName('sex')
.setAccessGroup('ag_secure')
.getColumnFamilySpec();
columnFamilies.name = name;
columnFamilies.age = age;
columnFamilies.sex = sex;
var schema = new HyperTableDriver.pojso.Schema();
var schemaObj = schema
.setAccessGroups(accessGroups)
.setColumnFamilies(columnFamilies)
.setAccessGroupDefaults(defaultAccessGroupOptions)
.setColumnFamilyDefaults(defaultColumnFamilyOptions)
.getSchema();
// console.log(schema);return;
hyperTableTable = new HyperTableDriver.HyperTableTable(client,namespace);
return hyperTableTable.table_create('testTable2',schemaObj);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableTable = new HyperTableDriver.HyperTableTable(client,namespace);
return hyperTableTable.get_schema('testTable2');
})
.then((schemaObj)=>{
//modify 'age' to 'birthday'
var cfSpec = schemaObj.column_families['age'];
delete schemaObj.column_families['age'];
cfSpec.name = 'birthday';
schemaObj.column_families['birthday'] = cfSpec;
//add 'city'
var columnFamilySpec = new HyperTableDriver.pojso.ColumnFamilySpec();
cfSpec = columnFamilySpec.setName('city')
.setAccessGroup('ag_normal')
.getColumnFamilySpec();
schemaObj.column_families['city'] = cfSpec;
return hyperTableTable.table_alter('testTable2',schemaObj);
})
.then((result)=>{
console.log(result);
})
.catch((err) => {
console.log(err);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableTable = new HyperTableDriver.HyperTableTable(client,namespace);
//or hyperTableTable.table_drop('testTable2',ifExists=true);
return hyperTableTable.table_drop('testTable2');
})
.then((result)=>{
console.log(result);
})
##HyperTableCell
var namespace = null;
var hyperTableCell = null;
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var key = new HyperTableDriver.pojso.Key();
var cell = new HyperTableDriver.pojso.Cell();
var keyObj1 = key.setRow('user3').setColumnFamily('name').setColumnQualifier('column_qualifier1').getKey();
var keyObj2 = key.setRow('user2').setColumnFamily('name').setColumnQualifier('column_qualifier2').getKey();
var cells = [];
var cellObj1 = cell.setKey(keyObj1).setValue('test1').getCell();
var cellObj2 = cell.setKey(keyObj2).setValue('test2').getCell();
cells.push(cellObj1);
cells.push(cellObj2);
return hyperTableCell.set_cells('user',cells);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var scanSpec = new HyperTableDriver.pojso.ScanSpec();
var scanSpecObj = scanSpec.setColumns(['name','age']).getScanSpec();
return hyperTableCell.get_cells('user',scanSpecObj);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var scanSpec = new HyperTableDriver.pojso.ScanSpec();
var scanSpecObj = scanSpec.setColumns(['name','age']).getScanSpec();
return hyperTableCell.get_cells('user',scanSpecObj);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
cells_as_arrays = [];
cell_as_array = ['user4', 'name', 'column_qualifier3', 'zl'];
cells_as_arrays.push(cell_as_array);
cell_as_array = ['user4', 'age', '', '16'];
cells_as_arrays.push(cell_as_array);
return hyperTableCell.set_cells_as_arrays('user',cells_as_arrays);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var scanSpec = new HyperTableDriver.pojso.ScanSpec();
var scanSpecObj = scanSpec.setColumns(['name','age']).getScanSpec();
return hyperTableCell.get_cells_as_arrays('user',scanSpecObj);
})
.then((result)=>{
console.log(result);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var writer = new HyperTableDriver.pojso.Writer(1024);
var timestamp = new HyperTableDriver.pojso.Timestamp();
writer.add('user0', 'name', 'column_qualifier4',timestamp.setTime(1483758549000).getTimestamp(), 'zl');
writer.add('user5', 'age', 'column_qualifier5', null, '24');
var buffer = writer.getBuffer();
return hyperTableCell.set_cells_serialized('user',buffer);
})
.then((result)=>{
console.log(result);
})
.catch((err) => {
console.log(err);
});
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableCell = new HyperTableDriver.HyperTableCell(client,namespace);
var scanSpec = new HyperTableDriver.pojso.ScanSpec();
var scanSpecObj = scanSpec.setColumns(['name','age']).getScanSpec();
return hyperTableCell.get_cells_serialized('user',scanSpecObj);
})
.then((result)=>{
var reader = new HyperTableDriver.pojso.Reader(result);
reader.next()
while (reader.next())
console.log(reader.getCell().toString());
});
##hyperTableMutator
var namespace = null;
var hyperTableMutator = null;
var mutator = null;
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_open('test')
.then((result)=>{
namespace = result;
hyperTableMutator = new HyperTableDriver.HyperTableMutator(client,namespace);
var flags =0;
var flush_interval = 0;
return hyperTableMutator.mutator_open('user',flags,flush_interval);
})
.then((result)=>{
mutator = result;
var key = new HyperTableDriver.pojso.Key();
var cell = new HyperTableDriver.pojso.Cell();
var keyObj1 = key.setRow('user2').setColumnFamily('name')
.setColumnQualifier('column_qualifier4')
.getKey();
var keyObj2 = key.setRow('user3').setColumnFamily('name')
.deleteByName('timestamp')
.setColumnQualifier('column_qualifier5')
.getKey();
var cells = [];
var cellObj1 = cell.setKey(keyObj1).setValue('test1').getCell();
var cellObj2 = cell.setKey(keyObj2).setValue('test2').getCell();
cells.push(cellObj1);
cells.push(cellObj2);
return hyperTableMutator.mutator_set_cells(mutator,cells);
})
.then((result)=>{
var key = new HyperTableDriver.pojso.Key();
var cell = new HyperTableDriver.pojso.Cell();
var keyObj1 = key.setRow('user2')
.setFlag(HyperTableDriver.pojso.KeyFlag.DELETE_ROW)
.getKey();
var keyObj2 = key.setRow('user3').getKey();
var cells = [];
var cellObj1 = cell.setKey(keyObj1).getCell();
var cellObj2 = cell.setKey(keyObj2).getCell();
cells.push(cellObj1);
cells.push(cellObj2);
return hyperTableMutator.mutator_set_cells(mutator,cells);
})
.then((result)=>{
console.log(result);
return hyperTableMutator.mutator_flush(mutator);
})
.then((result)=>{
console.log(result);
return hyperTableMutator.mutator_close(mutator);
})
.then((result)=>{
console.log(result);
})
.catch((err) => {
console.log(err);
});
##HyperTableScanner
var namespace = null;
var hyperTableScanner = null;
var scanner = null;
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_open('zytest')
.then((result)=>{
namespace = result;
hyperTableScanner = new HyperTableDriver.HyperTableScanner(client,namespace);
var scanSpec = new HyperTableDriver.pojso.ScanSpec();
var scanSpecObj = scanSpec.setColumns(['name','age']).getScanSpec();
return hyperTableScanner.scanner_open('user',scanSpecObj);
})
.then((result)=>{
scanner = result;
return hyperTableScanner.scanner_get_cells(scanner);
})
.then((result)=>{
console.log(result);
return hyperTableScanner.scanner_close(scanner);
})
.then((result)=>{
console.log(result);
});
##HyperTableHql
var namespace = null;
var hyperTableHql = null;
var hyperTableMutator = null;
var mutator = null;
var hyperTableScanner = null;
var scanner = null;
var hyperTableNameSpace = new HyperTableDriver.HyperTableNameSpace(client);
hyperTableNameSpace.namespace_open('zytest')
.then((result)=>{
namespace = result;
hyperTableHql = new HyperTableDriver.HyperTableHql(client,namespace);
var hql = "GET LISTING";
return hyperTableHql.hql_query(hql);
})
.then((result)=>{
console.log(result);
var hql = "SELECT * from user WHERE ROW = 'user1'";
return hyperTableHql.hql_query(hql);
})
.then((result)=>{
console.log(result);
var hql = "INSERT INTO user VALUES('user1','age','21'),('user2','age','22')";
return hyperTableHql.hql_exec(hql);
})
// hql_exec(mutator)
.then((result)=>{
console.log(result);
var hql = "INSERT INTO user VALUES('user3','age','21'),('user4','age','22')";
return hyperTableHql.hql_exec(hql,true);
})
.then((result)=>{
console.log(result);
mutator = result.mutator;
hyperTableMutator = new HyperTableDriver.HyperTableMutator(client,namespace);
var key = new HyperTableDriver.pojso.Key();
var cell = new HyperTableDriver.pojso.Cell();
var keyObj1 = key.setRow('user2').setColumnFamily('name')
.setColumnQualifier('column_qualifier4')
.getKey();
var keyObj2 = key.setRow('user3').setColumnFamily('name')
.deleteByName('timestamp')
.setColumnQualifier('column_qualifier5')
.getKey();
var cells = [];
var cellObj1 = cell.setKey(keyObj1).setValue('test1').getCell();
var cellObj2 = cell.setKey(keyObj2).setValue('test2').getCell();
cells.push(cellObj1);
cells.push(cellObj2);
return hyperTableMutator.mutator_set_cells(mutator,cells);
})
.then((result)=>{
console.log(result);
return hyperTableMutator.mutator_flush(mutator);
})
.then((result)=>{
console.log(result);
return hyperTableMutator.mutator_close(mutator);
})
// hql_exec(scanner)
.then((result)=>{
console.log(result);
var hql = "SELECT * from user WHERE ROW = 'user3'";
return hyperTableHql.hql_exec(hql,false,true);
})
.then((result)=>{
console.log(result);
scanner = result.scanner;
hyperTableScanner = new HyperTableDriver.HyperTableScanner(client,namespace);
return hyperTableScanner.scanner_get_cells(scanner);
})
.then((result)=>{
console.log(result);
return hyperTableScanner.scanner_close(scanner);
})
.then((result)=>{
console.log(result);
return hyperTableScanner.scanner_close(scanner);
})