Class: Stax::Aws::DynamoDB
Class Method Summary collapse
- .client ⇒ Object
- .count(opt) ⇒ Object
- .create_backup(table_name, backup_name) ⇒ Object
- .do_scan(opt) ⇒ Object
- .global_table(name) ⇒ Object
- .gsi(name) ⇒ Object
- .key_schema(name) ⇒ Object
-
.keys(name) ⇒ Object
key schema as a hash.
- .list_backups(opt = {}) ⇒ Object
- .lsi(name) ⇒ Object
- .put(opt) ⇒ Object
- .query(opt) ⇒ Object
- .restore_backup(table_name, backup_arn) ⇒ Object
- .scan(opt) ⇒ Object
- .table(name) ⇒ Object
Methods inherited from Sdk
Class Method Details
.client ⇒ Object
9 10 11 |
# File 'lib/stax/aws/dynamodb.rb', line 9 def client @_client ||= ::Aws::DynamoDB::Client.new end |
.count(opt) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/stax/aws/dynamodb.rb', line 60 def count(opt) total = 0 do_scan(opt.merge(select: 'COUNT')) do |r| total += r.count end return total end |
.create_backup(table_name, backup_name) ⇒ Object
96 97 98 99 100 101 |
# File 'lib/stax/aws/dynamodb.rb', line 96 def create_backup(table_name, backup_name) client.create_backup( table_name: table_name, backup_name: backup_name, ).backup_details end |
.do_scan(opt) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/stax/aws/dynamodb.rb', line 42 def do_scan(opt) exclusive_start_key = nil loop do r = client.scan(opt.merge(exclusive_start_key: exclusive_start_key)) yield r exclusive_start_key = r.last_evaluated_key break unless exclusive_start_key end end |
.global_table(name) ⇒ Object
17 18 19 20 21 |
# File 'lib/stax/aws/dynamodb.rb', line 17 def global_table(name) client.describe_global_table(global_table_name: name)&.global_table_description rescue ::Aws::DynamoDB::Errors::GlobalTableNotFoundException nil end |
.gsi(name) ⇒ Object
23 24 25 |
# File 'lib/stax/aws/dynamodb.rb', line 23 def gsi(name) client.describe_table(table_name: name).table.global_secondary_indexes || [] end |
.key_schema(name) ⇒ Object
31 32 33 |
# File 'lib/stax/aws/dynamodb.rb', line 31 def key_schema(name) client.describe_table(table_name: name).table.key_schema end |
.keys(name) ⇒ Object
key schema as a hash
36 37 38 39 40 |
# File 'lib/stax/aws/dynamodb.rb', line 36 def keys(name) key_schema(name).each_with_object({}) do |s, h| h[s.key_type.downcase.to_sym] = s.attribute_name end end |
.list_backups(opt = {}) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/stax/aws/dynamodb.rb', line 84 def list_backups(opt = {}) last_arn = nil backups = [] loop do r = client.list_backups(opt.merge(exclusive_start_backup_arn: last_arn)) backups += r.backup_summaries last_arn = r.last_evaluated_backup_arn break unless last_arn end backups end |
.lsi(name) ⇒ Object
27 28 29 |
# File 'lib/stax/aws/dynamodb.rb', line 27 def lsi(name) client.describe_table(table_name: name).table.local_secondary_indexes || [] end |
.put(opt) ⇒ Object
80 81 82 |
# File 'lib/stax/aws/dynamodb.rb', line 80 def put(opt) client.put_item(opt) end |
.query(opt) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/stax/aws/dynamodb.rb', line 68 def query(opt) exclusive_start_key = nil loop do r = client.query(opt.merge(exclusive_start_key: exclusive_start_key)) r.items.each do |item| puts JSON.generate(item) end exclusive_start_key = r.last_evaluated_key break unless exclusive_start_key end end |
.restore_backup(table_name, backup_arn) ⇒ Object
103 104 105 106 107 108 |
# File 'lib/stax/aws/dynamodb.rb', line 103 def restore_backup(table_name, backup_arn) client.restore_table_from_backup( target_table_name: table_name, backup_arn: backup_arn, ).table_description end |
.scan(opt) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/stax/aws/dynamodb.rb', line 52 def scan(opt) do_scan(opt) do |r| r.items.each do |item| puts JSON.generate(item) end end end |
.table(name) ⇒ Object
13 14 15 |
# File 'lib/stax/aws/dynamodb.rb', line 13 def table(name) client.describe_table(table_name: name).table end |