forward-rbase 0.2.3 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rbase.rb CHANGED
@@ -1,6 +1,10 @@
1
+ # encoding: utf-8
2
+
1
3
  require File.join(File.dirname(__FILE__), 'rbase', 'thrift', 'hbase')
2
4
  require File.join(File.dirname(__FILE__), 'rbase', 'thrift', 'hbase_constants')
3
5
  require File.join(File.dirname(__FILE__), 'rbase', 'thrift', 'hbase_types')
4
6
 
7
+ require File.join(File.dirname(__FILE__), 'rbase', 'thrift', 'hbase_extension')
8
+
5
9
  require File.join(File.dirname(__FILE__), 'rbase', 'client')
6
10
  require File.join(File.dirname(__FILE__), 'rbase', 'table')
data/lib/rbase/client.rb CHANGED
@@ -44,7 +44,9 @@ module Rbase
44
44
  end
45
45
 
46
46
  def [](table_name)
47
- @tables[table_name] ||= Rbase::Table.new(@client, table_name) if table_exists?(table_name)
47
+ @tables[table_name] ||= begin
48
+ Rbase::Table.new(@client, table_name) if table_exists?(table_name)
49
+ end
48
50
  @tables[table_name]
49
51
  end
50
52
  end
data/lib/rbase/table.rb CHANGED
@@ -4,16 +4,16 @@ module Rbase
4
4
  @client = client
5
5
  @table_name = table_name.to_s
6
6
  end
7
-
7
+
8
8
  def find(row)
9
9
  @client.getRow(@table_name,row).map { |row| row_to_hash(row) }
10
10
  end
11
-
11
+
12
12
  def first(row)
13
13
  find(row).first
14
14
  end
15
15
  alias_method :[], :first
16
-
16
+
17
17
  def insert(row, hash)
18
18
  hash.each do |family,value|
19
19
  mutations = value.map do |column,val|
@@ -23,7 +23,7 @@ module Rbase
23
23
  end
24
24
  end
25
25
  alias_method :[]=, :insert
26
-
26
+
27
27
  def multi_insert(rows)
28
28
  row_mutations = rows.map do |row, hash|
29
29
  hash.map do |family,value|
@@ -35,7 +35,7 @@ module Rbase
35
35
  end
36
36
  @client.mutateRows(@table_name, row_mutations.flatten)
37
37
  end
38
-
38
+
39
39
  def each_batch(batch_size=100, columns=[])
40
40
  columns = [columns] unless columns.is_a?(Array)
41
41
  scanner_id = @client.scannerOpen(@table_name, '', columns)
@@ -46,7 +46,7 @@ module Rbase
46
46
  end
47
47
  @client.scannerClose(scanner_id)
48
48
  end
49
-
49
+
50
50
  def each(batch_size=100, columns=[])
51
51
  each_batch(batch_size, columns) do |results|
52
52
  results.each do |result|
@@ -54,13 +54,21 @@ module Rbase
54
54
  end
55
55
  end
56
56
  end
57
+
58
+ def set_auto_flush(enabled)
59
+ @client.setAutoFlush(@table_name, enabled)
60
+ end
57
61
 
62
+ def increment(row, family, column, value)
63
+ @client.atomicIncrement(@table_name, row, "#{family}:#{column}", value)
64
+ end
65
+
58
66
  private
59
-
67
+
60
68
  def row_to_hash(row)
61
69
  ret_val = {}
62
70
  row.columns.each do |column,val|
63
- family, key = *column.split(":")
71
+ family, key = *column.split(":", 2)
64
72
  ret_val[family] ||= {}
65
73
  ret_val[family][key] = val.value
66
74
  end
@@ -0,0 +1,69 @@
1
+ module Apache
2
+ module Hadoop
3
+ module Hbase
4
+ module Thrift
5
+ module Hbase
6
+ class Client
7
+ def setAutoFlush(tableName, enabled)
8
+ send_setAutoFlush(tableName, enabled)
9
+ return recv_setAutoFlush()
10
+ end
11
+
12
+ def send_setAutoFlush(tableName, enabled)
13
+ send_message('setAutoFlush', SetAutoFlush_args, :tableName => tableName, :enabled => enabled)
14
+ end
15
+
16
+ def recv_setAutoFlush()
17
+ receive_message(SetAutoFlush_result)
18
+ end
19
+ end
20
+
21
+ class SetAutoFlush_args
22
+ include ::Thrift::Struct, ::Thrift::Struct_Union
23
+ TABLENAME = 1
24
+ ENABLED = 2
25
+
26
+ FIELDS = {
27
+ TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName', :binary => true},
28
+ ENABLED => {:type => ::Thrift::Types::BOOL, :name => 'enabled'}
29
+ }
30
+
31
+ def struct_fields; FIELDS; end
32
+
33
+ def validate
34
+ end
35
+
36
+ ::Thrift::Struct.generate_accessors self
37
+ end
38
+
39
+ class SetAutoFlush_result
40
+ include ::Thrift::Struct, ::Thrift::Struct_Union
41
+
42
+ FIELDS = {}
43
+
44
+ def struct_fields; FIELDS; end
45
+
46
+ def validate
47
+ end
48
+
49
+ ::Thrift::Struct.generate_accessors self
50
+ end
51
+
52
+ class Processor
53
+ def process_setAutoFlush(seqid, iprot, oprot)
54
+ args = read_args(iprot, SetAutoFlush_args)
55
+ result = SetAutoFlush_result.new()
56
+ begin
57
+ result.success = @handler.setAutoFlush()
58
+ rescue Apache::Hadoop::Hbase::Thrift::IOError => io
59
+ result.io = io
60
+ end
61
+ write_result(result, oprot, 'setAutoFlush', seqid)
62
+ end
63
+
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,83 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: forward-rbase
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 3
9
- version: 0.2.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.7
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Forward Internet Group
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-02-17 00:00:00 +00:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-02-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: thrift
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70106085781280 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 4
31
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
32
21
  version: 0.4.0
33
22
  type: :runtime
34
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: *70106085781280
35
25
  description: Simple lib for executing hbase lookups
36
26
  email: andy@forward.co.uk
37
27
  executables: []
38
-
39
28
  extensions: []
40
-
41
29
  extra_rdoc_files: []
42
-
43
- files:
30
+ files:
44
31
  - lib/rbase.rb
45
32
  - lib/rbase/client.rb
46
33
  - lib/rbase/table.rb
47
34
  - lib/rbase/thrift/hbase.rb
48
35
  - lib/rbase/thrift/hbase_constants.rb
49
36
  - lib/rbase/thrift/hbase_types.rb
50
- has_rdoc: true
37
+ - lib/rbase/thrift/hbase_extension.rb
51
38
  homepage: http://github.com/forward/rbase
52
39
  licenses: []
53
-
54
40
  post_install_message:
55
41
  rdoc_options: []
56
-
57
- require_paths:
42
+ require_paths:
58
43
  - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
44
+ required_ruby_version: !ruby/object:Gem::Requirement
60
45
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
- version: "0"
67
- required_rubygems_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
51
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
75
56
  requirements: []
76
-
77
57
  rubyforge_project:
78
- rubygems_version: 1.3.7
58
+ rubygems_version: 1.8.11
79
59
  signing_key:
80
60
  specification_version: 3
81
61
  summary: Simple lib for executing hbase lookups
82
62
  test_files: []
83
-