es_dump_restore 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26b95784a5cbe09598686a716498b43feb08e905
4
- data.tar.gz: fc3451f6a37dda8116891bb9daa09291faaaf485
3
+ metadata.gz: a45b3f41110e68aa160d81d3094501b4db2d914a
4
+ data.tar.gz: 127abfad968e31cfd7fb1ea1d933dd55d9497839
5
5
  SHA512:
6
- metadata.gz: dd7c79f8d006bd3ab5ac8818ab5a86b8a9d81bd9e2819b17d7d42a45cd8347d96d15b6e2bcb3d5ff880db9431c87d25e9223d9e654b1dadee55029bfd7f18db4
7
- data.tar.gz: db90aeae9f731d02009f9cd857708cd6eac25ac135db5558adcf47cdea4bb3e73d37b89a39b44a463f7fa3fc113519854470719c3f36606e1385615284595361
6
+ metadata.gz: 7a888f720b201ec78d4a6b1c2ca75033f2fd98e07838282a3180fe3a3488d8d39faa4971073f4e5b027049e0f01ec038ef0a274cf710a89f07856241e4c564e4
7
+ data.tar.gz: ca426d7becd4d7f59d2708d926a38aae42a56a23a4bd9b2b7657f65c5f860897e4da5578175cbe971b04fd48d3898b5de19ff7d2a1fe3c40ff5e8fcc5f2d88cb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # Version 1.2.0 - June 24, 2015
2
+
3
+ * Allow overriding the batch size on the command line (thanks to Richard Boulton once again!)
4
+
1
5
  # Version 1.1.0 - May 12, 2015
2
6
 
3
7
  * Allow specifying additional index settings to the `restore` and `restore_alias` commands (thanks again Richard Boulton!)
data/README.md CHANGED
@@ -23,11 +23,11 @@ To dump an ElasticSearch index by type to a file:
23
23
 
24
24
  To restore an index to an ElasticSearch server:
25
25
 
26
- es_dump_restore restore ELASTIC_SEARCH_SERVER_URL DESTINATION_INDEX FILENAME_ZIP [SETTING_OVERRIDES]
26
+ es_dump_restore restore ELASTIC_SEARCH_SERVER_URL DESTINATION_INDEX FILENAME_ZIP [SETTING_OVERRIDES] [BATCH_SIZE]
27
27
 
28
28
  To restore an index and set an alias to point to it:
29
29
 
30
- es_dump_restore restore_alias ELASTIC_SEARCH_SERVER_URL DESTINATION_ALIAS DESTINATION_INDEX FILENAME_ZIP [SETTING_OVERRIDES]
30
+ es_dump_restore restore_alias ELASTIC_SEARCH_SERVER_URL DESTINATION_ALIAS DESTINATION_INDEX FILENAME_ZIP [SETTING_OVERRIDES] [BATCH_SIZE]
31
31
 
32
32
  This loads the dump into an index named `DESTINATION_INDEX`, and once the load
33
33
  is complete sets the alias `DESTINATION_ALIAS` to point to it. If
@@ -48,6 +48,11 @@ would read the dump file `test_dump.zip`, load it into an index called
48
48
  would be set to have no replicas, and only 1 shard, but have all other settings
49
49
  from the dump file.
50
50
 
51
+ If `BATCH_SIZE` is set for a restore command, it controls the number of
52
+ documents which will be sent to elasticsearch at once. This defaults to 1000,
53
+ which is normally fine, but if you have particularly complex documents or
54
+ mappings this might need reducing to avoid timeouts.
55
+
51
56
  ## Contributing
52
57
 
53
58
  1. Fork it
@@ -61,14 +61,14 @@ module EsDumpRestore
61
61
  end
62
62
 
63
63
  desc "restore URL INDEX_NAME FILENAME", "Restores a dumpfile into the given ElasticSearch index"
64
- def restore(url, index_name, filename, overrides=nil)
64
+ def restore(url, index_name, filename, overrides = nil, batch_size = 1000)
65
65
  client = EsClient.new(url, index_name, nil)
66
66
 
67
67
  Dumpfile.read(filename) do |dumpfile|
68
68
  client.create_index(dumpfile.index, overrides)
69
69
 
70
70
  bar = ProgressBar.new(dumpfile.num_objects) unless options[:noprogressbar]
71
- dumpfile.scan_objects(1000) do |batch, size|
71
+ dumpfile.scan_objects(batch_size.to_i) do |batch, size|
72
72
  client.bulk_index batch
73
73
  bar.increment!(size) unless options[:noprogressbar]
74
74
  end
@@ -76,7 +76,8 @@ module EsDumpRestore
76
76
  end
77
77
 
78
78
  desc "restore_alias URL ALIAS_NAME INDEX_NAME FILENAME", "Restores a dumpfile into the given ElasticSearch index, and then sets the alias to point at that index, removing any existing indexes pointed at by the alias"
79
- def restore_alias(url, alias_name, index_name, filename, overrides=nil)
79
+ def restore_alias(url, alias_name, index_name, filename, overrides = nil,
80
+ batch_size = 1000)
80
81
  client = EsClient.new(url, index_name, nil)
81
82
  client.check_alias alias_name
82
83
 
@@ -84,7 +85,7 @@ module EsDumpRestore
84
85
  client.create_index(dumpfile.index, overrides)
85
86
 
86
87
  bar = ProgressBar.new(dumpfile.num_objects) unless options[:noprogressbar]
87
- dumpfile.scan_objects(1000) do |batch, size|
88
+ dumpfile.scan_objects(batch_size.to_i) do |batch, size|
88
89
  client.bulk_index batch
89
90
  bar.increment!(size) unless options[:noprogressbar]
90
91
  end
@@ -1,3 +1,3 @@
1
1
  module EsDumpRestore
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: es_dump_restore
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nat Budin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-12 00:00:00.000000000 Z
11
+ date: 2015-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json