hypertable-driver

1.98.4 • Public • Published

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);
})

Package Sidebar

Install

npm i hypertable-driver

Weekly Downloads

5

Version

1.98.4

License

GPL-3.0

Last publish

Collaborators

  • zy445566