0.1.2 • Published 8 years ago
object-hbase-mapping v0.1.2
object-hbase-mapping
An object-to-hbase mapper (like ORM is for SQL databases). Writes (and reads) an object's fields as qualifiers in a given table, using a given column family.
Persistence layer based on node-thrift2-hbase.
Usage
const nodeThriftHbase = require('node-thrift2-hbase')(thriftHBaseConfig);
const ObjectHBaseMapping = require('object-habase-mapping');
const table = 'object_hbase_mapping:example_table';
const columnFamily = 'cf';
const fieldMetaData = [
{modelName: 'm1', hbaseName: 'u1', type: 'string', isKeyProperty: true},
{modelName: 'm2', hbaseName: 'u2', type: 'integer', isKeyProperty: true},
{modelName: 'm3', hbaseName: 'u3', type: 'integer'},
];
const ModelClass = ObjectHBaseMapping(nodeThriftHbase, table, columnFamily, fieldMetadata)hbase- an instance ofnode-thrift2-hbasetable- the name of the table in which this object is storedcolumnFamily- the name of the column family in which this object is storedfieldMetadatais a list of objects with the following properties:modelName- name of the field in the object class (i.e.instanceOfMyClass[modelName]will hold this fields's value).hbaseName- the qualifier name used in HBase to store this property, (i.e. this property will be stored incolumnFamilyin the qualifierhbaseName).type- the type of the property's value, for serialization/deserialization purposes, as innode-thrift2-hbase.isKeyProperty- boolean, set to true if this property is part of the row's key.
Rowkey construction: The row key is constructed by calling the static method genKeyProperties with the object data (see static methods below).
HBaseModel
All HBase model classes created by this library extend a base class which supplies them with the following methods:
static methods
genKeyByProperties():.join('.')s the values of properties markedisKeyPropertyby their order of appearance infieldMetadatato generate an HBase row key.
instance methods
save(): saves this object to HBase using the generated repository backend.load(): load the object from HBase using this object as a prototype query.