Class: Rbase::Client
- Inherits:
-
Object
- Object
- Rbase::Client
- Defined in:
- lib/rbase/client.rb
Class Method Summary collapse
Instance Method Summary collapse
- #[](table_name) ⇒ Object
- #create_table(table_name, *column_family_names) ⇒ Object
- #create_table!(table_name, *column_family_names) ⇒ Object
- #delete_table(table_name) ⇒ Object
-
#initialize(server, port = 9090, timeout = 60) ⇒ Client
constructor
A new instance of Client.
- #table_exists?(table_name) ⇒ Boolean
- #table_names ⇒ Object
Constructor Details
#initialize(server, port = 9090, timeout = 60) ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 13 14 15 16 |
# File 'lib/rbase/client.rb', line 8 def initialize(server, port=9090, timeout=60) socket = Thrift::Socket.new(server, port.to_s, timeout) transport = Thrift::BufferedTransport.new(socket) transport.open protocol = Thrift::BinaryProtocol.new(transport) @tables = {} @client = Apache::Hadoop::Hbase::Thrift::Hbase::Client.new(protocol) end |
Class Method Details
Instance Method Details
#[](table_name) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/rbase/client.rb', line 46 def [](table_name) @tables[table_name] ||= begin Rbase::Table.new(@client, table_name) if table_exists?(table_name) end @tables[table_name] end |
#create_table(table_name, *column_family_names) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/rbase/client.rb', line 26 def create_table(table_name, *column_family_names) column_families = column_family_names.map do |family_name| Apache::Hadoop::Hbase::Thrift::ColumnDescriptor.new(:name => family_name) end @client.createTable(table_name, column_families) end |
#create_table!(table_name, *column_family_names) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/rbase/client.rb', line 33 def create_table!(table_name, *column_family_names) if table_exists?(table_name) delete_table(table_name) end create_table(table_name, *column_family_names) end |
#delete_table(table_name) ⇒ Object
40 41 42 43 44 |
# File 'lib/rbase/client.rb', line 40 def delete_table(table_name) @client.disableTable(table_name) @client.deleteTable(table_name) @tables.delete(table_name) end |
#table_exists?(table_name) ⇒ Boolean
22 23 24 |
# File 'lib/rbase/client.rb', line 22 def table_exists?(table_name) table_names.include?(table_name) end |
#table_names ⇒ Object
18 19 20 |
# File 'lib/rbase/client.rb', line 18 def table_names @client.getTableNames end |