td 0.10.83 → 0.10.84

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c7c60a874b7228266a8436132aae4d0e2438b3e5
4
+ data.tar.gz: 9caacd3a0d3065d8fd4dca7bc7bae1cd29b9bbd5
5
+ SHA512:
6
+ metadata.gz: baa729bcbfb73760f2c93cc70e6fefccc69b1cae9a41c62e7c869372bf4124975649e0abffb5db15b79156bfb59e59ab52875634bf179da86fab129979c7cdab
7
+ data.tar.gz: 10328c283f1b8a9a3e4d2b9ad23187da08b0b0391ae237fdd5fbe8ad4c610784f0d8a2f2ca8d00c758f5afac757426965545e5811b406df943769a826b9a27d7
data/ChangeLog CHANGED
@@ -1,3 +1,11 @@
1
+ == 2013-07-25 version 0.10.84
2
+
3
+ * bulk_import now checks first argument is correct session name
4
+ * Convert bignum into string type. Please use cast in your query.
5
+ * Improve error message of export -F option
6
+ * td-client v0.8.53
7
+
8
+
1
9
  == 2013-07-03 version 0.10.83
2
10
 
3
11
  * Add -x option to query, exlude result from automatically being downloaded
@@ -129,6 +129,13 @@ module Command
129
129
 
130
130
  name, *files = op.cmd_parse
131
131
 
132
+ # validate the session
133
+ bi = get_client.bulk_imports.find {|bi| name == bi.name }
134
+ unless bi
135
+ $stderr.puts "Bulk import session '#{name}' does not exist. Please check the first argument of the command."
136
+ exit 1
137
+ end
138
+
132
139
  parallel = 1 if parallel <= 1
133
140
  parallel = 8 if parallel >= 8
134
141
 
@@ -320,7 +327,6 @@ module Command
320
327
  $stderr.puts "Bulk import session '#{name}' is unfrozen."
321
328
  end
322
329
 
323
-
324
330
  PART_SPLIT_SIZE = 16*1024*1024
325
331
 
326
332
  def bulk_import_prepare_parts(op)
@@ -364,6 +370,7 @@ module Command
364
370
  $stderr.puts "#{reason}"
365
371
  end
366
372
  }
373
+ has_bignum = false
367
374
 
368
375
  # TODO multi process
369
376
  files.each {|ifname|
@@ -387,7 +394,13 @@ module Command
387
394
  $stderr.puts " sample: #{Time.at(t).utc} #{Yajl.dump(record)}"
388
395
  end
389
396
 
390
- zout.write(record.to_msgpack)
397
+ entry = begin
398
+ record.to_msgpack
399
+ rescue RangeError
400
+ has_bignum = true
401
+ TreasureData::API.normalized_msgpack(record)
402
+ end
403
+ zout.write(entry)
391
404
  record_num += 1
392
405
 
393
406
  if out.size > split_size
@@ -406,6 +419,8 @@ module Command
406
419
  $stderr.puts " #{ifname}: #{record_num} entries."
407
420
  }
408
421
  }
422
+
423
+ $stderr.puts normalized_message if has_bignum
409
424
  end
410
425
 
411
426
  def bulk_import_upload_parts2(op)
@@ -46,6 +46,14 @@ module Command
46
46
  end
47
47
  end
48
48
 
49
+ def normalized_message
50
+ <<EOS
51
+ Your event has large number larger than 2^64.
52
+ These numbers are converted into string type.
53
+ So you should use cast operator, e.g. cast(v['key'] as decimal), in your query.
54
+ EOS
55
+ end
56
+
49
57
  #def cmd_render_tree(nodes, *opts)
50
58
  # require 'hirb'
51
59
  # Hirb::Helpers::Tree.render(nodes, *opts)
@@ -1,6 +1,7 @@
1
1
 
2
2
  module TreasureData
3
3
  module Command
4
+ SUPPORTED_FORMATS = %W[json.gz line-json.gz]
4
5
 
5
6
  def table_export(op)
6
7
  org = nil
@@ -9,7 +10,7 @@ module Command
9
10
  s3_bucket = nil
10
11
  aws_access_key_id = nil
11
12
  aws_secret_access_key = nil
12
- file_format = "json.gz"
13
+ file_format = nil
13
14
 
14
15
  op.on('-g', '--org ORGANIZATION', "export the data under this organization") {|s|
15
16
  org = s
@@ -30,7 +31,8 @@ module Command
30
31
  aws_secret_access_key = s
31
32
  }
32
33
  op.on('-F', '--file-format FILE_FORMAT', 'file format for exported data, either json.gz (default) or line-json.gz') { |s|
33
- file_format = s if s == 'line-json.gz'
34
+ raise ArgumentError, "#{s} is not a supported file format" unless SUPPORTED_FORMATS.include?(s)
35
+ file_format = s
34
36
  }
35
37
 
36
38
  db_name, table_name = op.cmd_parse
@@ -136,8 +136,15 @@ module Command
136
136
 
137
137
  n = 0
138
138
  x = 0
139
+ has_bignum = false
139
140
  parser.call(file, path) {|record|
140
- writer.write record.to_msgpack
141
+ entry = begin
142
+ record.to_msgpack
143
+ rescue RangeError
144
+ has_bignum = true
145
+ TreasureData::API.normalized_msgpack(record)
146
+ end
147
+ writer.write entry
141
148
 
142
149
  n += 1
143
150
  x += 1
@@ -176,7 +183,7 @@ module Command
176
183
  end
177
184
 
178
185
  puts " imported #{n} entries from #{path}."
179
-
186
+ $stderr.puts normalized_message if has_bignum
180
187
  ensure
181
188
  out.close rescue nil
182
189
  writer.close rescue nil
@@ -130,13 +130,13 @@ module Command
130
130
 
131
131
  if wait && !job.finished?
132
132
  wait_job(job)
133
- if job.success? && [:hive, :pig].include?(job.type) && !exclude
133
+ if job.success? && [:hive, :pig, :impala].include?(job.type) && !exclude
134
134
  puts "Result :"
135
135
  show_result(job, output, format, render_opts)
136
136
  end
137
137
 
138
138
  else
139
- if job.success? && [:hive, :pig].include?(job.type) && !exclude
139
+ if job.success? && [:hive, :pig, :impala].include?(job.type) && !exclude
140
140
  puts "Result :"
141
141
  show_result(job, output, format, render_opts)
142
142
  end
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.10.83'
3
+ VERSION = '0.10.84'
4
4
 
5
5
  end
data/td.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency "yajl-ruby", "~> 1.1.0"
21
21
  gem.add_dependency "hirb", ">= 0.4.5"
22
22
  gem.add_dependency "parallel", "~> 0.6.1"
23
- gem.add_dependency "td-client", "~> 0.8.52"
23
+ gem.add_dependency "td-client", "~> 0.8.53"
24
24
  gem.add_dependency "td-logger", "~> 0.3.21"
25
25
  gem.add_dependency "rubyzip", "~> 0.9.9"
26
26
  gem.add_development_dependency "rake", "~> 0.9"
metadata CHANGED
@@ -1,34 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.83
5
- prerelease:
4
+ version: 0.10.84
6
5
  platform: ruby
7
6
  authors:
8
7
  - Treasure Data, Inc.
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-03 00:00:00.000000000 Z
11
+ date: 2013-07-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: msgpack
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.4.4
22
- - - ! '!='
20
+ - - '!='
23
21
  - !ruby/object:Gem::Version
24
22
  version: 0.5.0
25
- - - ! '!='
23
+ - - '!='
26
24
  - !ruby/object:Gem::Version
27
25
  version: 0.5.1
28
- - - ! '!='
26
+ - - '!='
29
27
  - !ruby/object:Gem::Version
30
28
  version: 0.5.2
31
- - - ! '!='
29
+ - - '!='
32
30
  - !ruby/object:Gem::Version
33
31
  version: 0.5.3
34
32
  - - <
@@ -37,21 +35,20 @@ dependencies:
37
35
  type: :runtime
38
36
  prerelease: false
39
37
  version_requirements: !ruby/object:Gem::Requirement
40
- none: false
41
38
  requirements:
42
- - - ! '>='
39
+ - - '>='
43
40
  - !ruby/object:Gem::Version
44
41
  version: 0.4.4
45
- - - ! '!='
42
+ - - '!='
46
43
  - !ruby/object:Gem::Version
47
44
  version: 0.5.0
48
- - - ! '!='
45
+ - - '!='
49
46
  - !ruby/object:Gem::Version
50
47
  version: 0.5.1
51
- - - ! '!='
48
+ - - '!='
52
49
  - !ruby/object:Gem::Version
53
50
  version: 0.5.2
54
- - - ! '!='
51
+ - - '!='
55
52
  - !ruby/object:Gem::Version
56
53
  version: 0.5.3
57
54
  - - <
@@ -60,7 +57,6 @@ dependencies:
60
57
  - !ruby/object:Gem::Dependency
61
58
  name: yajl-ruby
62
59
  requirement: !ruby/object:Gem::Requirement
63
- none: false
64
60
  requirements:
65
61
  - - ~>
66
62
  - !ruby/object:Gem::Version
@@ -68,7 +64,6 @@ dependencies:
68
64
  type: :runtime
69
65
  prerelease: false
70
66
  version_requirements: !ruby/object:Gem::Requirement
71
- none: false
72
67
  requirements:
73
68
  - - ~>
74
69
  - !ruby/object:Gem::Version
@@ -76,23 +71,20 @@ dependencies:
76
71
  - !ruby/object:Gem::Dependency
77
72
  name: hirb
78
73
  requirement: !ruby/object:Gem::Requirement
79
- none: false
80
74
  requirements:
81
- - - ! '>='
75
+ - - '>='
82
76
  - !ruby/object:Gem::Version
83
77
  version: 0.4.5
84
78
  type: :runtime
85
79
  prerelease: false
86
80
  version_requirements: !ruby/object:Gem::Requirement
87
- none: false
88
81
  requirements:
89
- - - ! '>='
82
+ - - '>='
90
83
  - !ruby/object:Gem::Version
91
84
  version: 0.4.5
92
85
  - !ruby/object:Gem::Dependency
93
86
  name: parallel
94
87
  requirement: !ruby/object:Gem::Requirement
95
- none: false
96
88
  requirements:
97
89
  - - ~>
98
90
  - !ruby/object:Gem::Version
@@ -100,7 +92,6 @@ dependencies:
100
92
  type: :runtime
101
93
  prerelease: false
102
94
  version_requirements: !ruby/object:Gem::Requirement
103
- none: false
104
95
  requirements:
105
96
  - - ~>
106
97
  - !ruby/object:Gem::Version
@@ -108,23 +99,20 @@ dependencies:
108
99
  - !ruby/object:Gem::Dependency
109
100
  name: td-client
110
101
  requirement: !ruby/object:Gem::Requirement
111
- none: false
112
102
  requirements:
113
103
  - - ~>
114
104
  - !ruby/object:Gem::Version
115
- version: 0.8.52
105
+ version: 0.8.53
116
106
  type: :runtime
117
107
  prerelease: false
118
108
  version_requirements: !ruby/object:Gem::Requirement
119
- none: false
120
109
  requirements:
121
110
  - - ~>
122
111
  - !ruby/object:Gem::Version
123
- version: 0.8.52
112
+ version: 0.8.53
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: td-logger
126
115
  requirement: !ruby/object:Gem::Requirement
127
- none: false
128
116
  requirements:
129
117
  - - ~>
130
118
  - !ruby/object:Gem::Version
@@ -132,7 +120,6 @@ dependencies:
132
120
  type: :runtime
133
121
  prerelease: false
134
122
  version_requirements: !ruby/object:Gem::Requirement
135
- none: false
136
123
  requirements:
137
124
  - - ~>
138
125
  - !ruby/object:Gem::Version
@@ -140,7 +127,6 @@ dependencies:
140
127
  - !ruby/object:Gem::Dependency
141
128
  name: rubyzip
142
129
  requirement: !ruby/object:Gem::Requirement
143
- none: false
144
130
  requirements:
145
131
  - - ~>
146
132
  - !ruby/object:Gem::Version
@@ -148,7 +134,6 @@ dependencies:
148
134
  type: :runtime
149
135
  prerelease: false
150
136
  version_requirements: !ruby/object:Gem::Requirement
151
- none: false
152
137
  requirements:
153
138
  - - ~>
154
139
  - !ruby/object:Gem::Version
@@ -156,7 +141,6 @@ dependencies:
156
141
  - !ruby/object:Gem::Dependency
157
142
  name: rake
158
143
  requirement: !ruby/object:Gem::Requirement
159
- none: false
160
144
  requirements:
161
145
  - - ~>
162
146
  - !ruby/object:Gem::Version
@@ -164,7 +148,6 @@ dependencies:
164
148
  type: :development
165
149
  prerelease: false
166
150
  version_requirements: !ruby/object:Gem::Requirement
167
- none: false
168
151
  requirements:
169
152
  - - ~>
170
153
  - !ruby/object:Gem::Version
@@ -172,7 +155,6 @@ dependencies:
172
155
  - !ruby/object:Gem::Dependency
173
156
  name: rspec
174
157
  requirement: !ruby/object:Gem::Requirement
175
- none: false
176
158
  requirements:
177
159
  - - ~>
178
160
  - !ruby/object:Gem::Version
@@ -180,7 +162,6 @@ dependencies:
180
162
  type: :development
181
163
  prerelease: false
182
164
  version_requirements: !ruby/object:Gem::Requirement
183
- none: false
184
165
  requirements:
185
166
  - - ~>
186
167
  - !ruby/object:Gem::Version
@@ -188,7 +169,6 @@ dependencies:
188
169
  - !ruby/object:Gem::Dependency
189
170
  name: simplecov
190
171
  requirement: !ruby/object:Gem::Requirement
191
- none: false
192
172
  requirements:
193
173
  - - ~>
194
174
  - !ruby/object:Gem::Version
@@ -196,7 +176,6 @@ dependencies:
196
176
  type: :development
197
177
  prerelease: false
198
178
  version_requirements: !ruby/object:Gem::Requirement
199
- none: false
200
179
  requirements:
201
180
  - - ~>
202
181
  - !ruby/object:Gem::Version
@@ -280,33 +259,26 @@ files:
280
259
  - td.gemspec
281
260
  homepage: http://treasure-data.com/
282
261
  licenses: []
262
+ metadata: {}
283
263
  post_install_message:
284
264
  rdoc_options: []
285
265
  require_paths:
286
266
  - lib
287
267
  required_ruby_version: !ruby/object:Gem::Requirement
288
- none: false
289
268
  requirements:
290
- - - ! '>='
269
+ - - '>='
291
270
  - !ruby/object:Gem::Version
292
271
  version: '0'
293
- segments:
294
- - 0
295
- hash: 2192841065955335729
296
272
  required_rubygems_version: !ruby/object:Gem::Requirement
297
- none: false
298
273
  requirements:
299
- - - ! '>='
274
+ - - '>='
300
275
  - !ruby/object:Gem::Version
301
276
  version: '0'
302
- segments:
303
- - 0
304
- hash: 2192841065955335729
305
277
  requirements: []
306
278
  rubyforge_project:
307
- rubygems_version: 1.8.23
279
+ rubygems_version: 2.0.2
308
280
  signing_key:
309
- specification_version: 3
281
+ specification_version: 4
310
282
  summary: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing
311
283
  test_files:
312
284
  - spec/file_reader/filter_spec.rb