td 0.15.2 → 0.15.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d67f821df06a365e2fc2b35febb963900e683f0a
4
- data.tar.gz: 5af9e2025dbb5a756e0e2f8b4d53b105613165cf
3
+ metadata.gz: 0664e06a537f0c5e0a8c191df507b03462a803dd
4
+ data.tar.gz: e03b262494754689483a2e132401efdc1f436b6d
5
5
  SHA512:
6
- metadata.gz: 98afa7ab296af4840874998df5dc55a940083341d6bb83768b3353b33774ea8948e95fd21b4794a8c171a8e4f7fc92939a0328f44dd0eb546f8747f1ab00ab83
7
- data.tar.gz: b6a0b37882e836f90f90cd62da7d7adfb438af1569e2eca7702df483a5ca843bf079338d020c0447372b4657eaa8fd922c2f8d94e2c5eb1253218712877a4816
6
+ metadata.gz: 65c89dc8dd648fb8ad188be1da9dd2a26e1b07b93ad1dfbc7119870e7d648f13290bb1828e0f087932afcd8103fe425ac5f2eff2fcbe7832a2ec083d56b4f3ba
7
+ data.tar.gz: 819bf1005d21dbb40e671f4e93dabfbff79ce0c948982e5734dfb75d640466197300a4857564455f802de3f6fe5f5df34d56d069b8c4704dcf7f47a06c79fea9
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ == 2017-06-08 version 0.15.3
2
+
3
+ * add jsonl.gz format #153
4
+ * add workflow:update command #178
5
+
1
6
  == 2016-11-29 version 0.15.2
2
7
 
3
8
  * Deprecate Pig query engine #172
@@ -16,7 +16,7 @@ subcommands=(
16
16
 
17
17
  "bulk_import\:list":"List bulk import sessions"
18
18
  "bulk_import\:show":"Show list of uploaded parts"
19
- "bulk_import\:create":"Create a new bulk import session to the the table"
19
+ "bulk_import\:create":"Create a new bulk import session to the table"
20
20
  "bulk_import\:prepare_parts":"Convert files into part file format"
21
21
  #"bulk_import\:prepare_parts2":"Convert files into part file format"
22
22
  "bulk_import\:upload_part":"Upload or re-upload a file into a bulk import session"
@@ -84,6 +84,7 @@ subcommands=(
84
84
  "wf":"Run a workflow command"
85
85
  "workflow":"Run a workflow command"
86
86
  "workflow:reset":"Reset the workflow module"
87
+ "workflow:update":"Update the workflow module"
87
88
 
88
89
  # TODO: Add ACL related commands
89
90
  )
@@ -1,3 +1,4 @@
1
+ require 'td/command/job'
1
2
 
2
3
  module TreasureData
3
4
  module Command
@@ -1,7 +1,8 @@
1
+ require 'td/command/job'
1
2
 
2
3
  module TreasureData
3
4
  module Command
4
- SUPPORTED_FORMATS = %W[json.gz line-json.gz tsv.gz]
5
+ SUPPORTED_FORMATS = %W[json.gz line-json.gz tsv.gz jsonl.gz]
5
6
  SUPPORTED_ENCRYPT_METHOD = %W[s3]
6
7
 
7
8
  def export_result(op)
@@ -22,7 +23,7 @@ module Command
22
23
  $stderr.puts "result export job #{job.job_id} is queued."
23
24
  $stderr.puts "Use '#{$prog} " + Config.cl_options_string + "job:show #{job.job_id}' to show the status."
24
25
 
25
- if wait && !job.finished?
26
+ if wait
26
27
  wait_job(job)
27
28
  $stdout.puts "status : #{job.status}"
28
29
  end
@@ -66,7 +67,11 @@ module Command
66
67
  op.on('-s', '--aws-secret-key SECRET_KEY', 'AWS secret access key to export data (required)') {|s|
67
68
  aws_secret_access_key = s
68
69
  }
69
- op.on('-F', '--file-format FILE_FORMAT', 'file format for exported data, either json.gz (default) or line-json.gz, or tsv.gz') { |s|
70
+ op.on('-F', '--file-format FILE_FORMAT',
71
+ 'file format for exported data.',
72
+ 'Available formats are tsv.gz (tab-separated values per line) and jsonl.gz (JSON record per line).',
73
+ 'The json.gz and line-json.gz formats are default and still available but only for backward compatibility purpose;',
74
+ ' use is discouraged because they have far lower performance.') { |s|
70
75
  raise ArgumentError, "#{s} is not a supported file format" unless SUPPORTED_FORMATS.include?(s)
71
76
  file_format = s
72
77
  }
@@ -121,7 +126,7 @@ module Command
121
126
  $stderr.puts "Export job #{job.job_id} is queued."
122
127
  $stderr.puts "Use '#{$prog} " + Config.cl_options_string + "job:show #{job.job_id}' to show the status."
123
128
 
124
- if wait && !job.finished?
129
+ if wait
125
130
  wait_job(job)
126
131
  $stdout.puts "Status : #{job.status}"
127
132
  end
@@ -246,7 +246,7 @@ module List
246
246
 
247
247
  add_list 'bulk_import:list', %w[], 'List bulk import sessions', ['bulk_import:list']
248
248
  add_list 'bulk_import:show', %w[name], 'Show list of uploaded parts', ['bulk_import:show']
249
- add_list 'bulk_import:create', %w[name db table], 'Create a new bulk import session to the the table', ['bulk_import:create logs_201201 example_db event_logs']
249
+ add_list 'bulk_import:create', %w[name db table], 'Create a new bulk import session to the table', ['bulk_import:create logs_201201 example_db event_logs']
250
250
  add_list 'bulk_import:prepare_parts', %w[files_], 'Convert files into part file format', ['bulk_import:prepare_parts logs/*.csv --format csv --columns time,uid,price,count --time-column "time" -o parts/']
251
251
  add_list 'bulk_import:upload_part', %w[name id path.msgpack.gz], 'Upload or re-upload a file into a bulk import session', ['bulk_import:upload_part logs_201201 01h data-201201-01.msgpack.gz']
252
252
  add_list 'bulk_import:upload_parts', %w[name files_], 'Upload or re-upload files into a bulk import session', ['bulk_import:upload_parts parts/* --parallel 4']
@@ -261,7 +261,7 @@ module List
261
261
 
262
262
  add_list 'import:list', %w[], 'List bulk import sessions', ['import:list']
263
263
  add_list 'import:show', %w[name], 'Show list of uploaded parts', ['import:show']
264
- add_list 'import:create', %w[name db table], 'Create a new bulk import session to the the table', ['import:create logs_201201 example_db event_logs']
264
+ add_list 'import:create', %w[name db table], 'Create a new bulk import session to the table', ['import:create logs_201201 example_db event_logs']
265
265
  add_list 'import:jar_version', %w[], 'Show import jar version', ['import:jar_version'], false
266
266
  add_list 'import:jar_update', %w[], 'Update import jar to the latest version', ['import:jar_update']
267
267
  add_list 'import:prepare', %w[files_], 'Convert files into part file format', ['import:prepare logs/*.csv --format csv --columns time,uid,price,count --time-column "time" -o parts/'], false
@@ -362,6 +362,7 @@ module List
362
362
 
363
363
  add_list 'workflow', %w[], 'Run a workflow command'
364
364
  add_list 'workflow:reset', %w[], 'Reset the workflow module'
365
+ add_list 'workflow:update', %w[version?], 'Update the workflow module'
365
366
  add_list 'workflow:version', %w[], 'Show workflow module version'
366
367
 
367
368
  # aliases
@@ -1,3 +1,4 @@
1
+ require 'td/command/job'
1
2
  require 'td/command/options'
2
3
 
3
4
  module TreasureData
@@ -1,4 +1,5 @@
1
1
  require 'td/helpers'
2
+ require 'td/command/job'
2
3
 
3
4
  module TreasureData
4
5
  module Command
@@ -276,9 +277,7 @@ module Command
276
277
  wait = false
277
278
  pool_name = nil
278
279
 
279
- op.on('-t', '--to TIME', 'end time of logs to delete in Unix time multiple of 3600 (1 hour)',
280
- ' or Ruby time string format (e.g. \'2014-07-01 14:00:00 JST\') where',
281
- ' the minutes and seconds are required to be 0.') {|s|
280
+ op.on('-t', '--to TIME', 'end time of logs to delete in Unix time >0 and multiple of 3600 (1 hour)') {|s|
282
281
  if s.to_i.to_s == s
283
282
  # UNIX time
284
283
  to = s.to_i
@@ -287,9 +286,7 @@ module Command
287
286
  to = Time.parse(s).to_i
288
287
  end
289
288
  }
290
- op.on('-f', '--from TIME', 'start time of logs to delete in Unix time multiple of 3600 (1 hour)',
291
- ' or Ruby time string format (e.g. \'2014-07-01 13:00:00 JST\') where',
292
- ' the minutes and seconds are required to be 0.') {|s|
289
+ op.on('-f', '--from TIME', 'start time of logs to delete in Unix time >0 and multiple of 3600 (1 hour)') {|s|
293
290
  if s.to_i.to_s == s
294
291
  from = s.to_i
295
292
  else
@@ -333,7 +330,7 @@ module Command
333
330
  $stderr.puts "Partial delete job #{job.job_id} is queued."
334
331
  $stderr.puts "Use '#{$prog} " + Config.cl_options_string + "job:show #{job.job_id}' to show the status."
335
332
 
336
- if wait && !job.finished?
333
+ if wait
337
334
  wait_job(job)
338
335
  $stdout.puts "Status : #{job.status}"
339
336
  end
@@ -66,8 +66,18 @@ module TreasureData
66
66
  }
67
67
  end
68
68
 
69
+ def workflow_update(op)
70
+ version = op.cmd_parse
71
+ $stdout << "Downloading workflow module #{version}..."
72
+ download_digdag(version)
73
+ $stdout.puts ' Done.'
74
+ return 0
75
+ end
76
+
69
77
  # "Factory reset"
70
78
  def workflow_reset(op)
79
+ op.cmd_parse # to show help
80
+
71
81
  $stdout << 'Removing workflow module...'
72
82
  FileUtils.rm_rf digdag_dir
73
83
  $stdout.puts ' Done.'
@@ -75,6 +85,8 @@ module TreasureData
75
85
  end
76
86
 
77
87
  def workflow_version(op)
88
+ op.cmd_parse # to show help
89
+
78
90
  unless File.exists?(digdag_cli_path)
79
91
  $stderr.puts('Workflow module not yet installed.')
80
92
  return 1
@@ -118,12 +130,17 @@ module TreasureData
118
130
  ENV.fetch('TD_WF_JAVA', '').strip
119
131
  end
120
132
 
121
- def digdag_base_url
122
- 'http://toolbelt.treasure-data.com/digdag'
133
+ def digdag_base_url(version=nil)
134
+ base = 'http://toolbelt.treasure-data.com/digdag'
135
+ if version.to_s == ''
136
+ base
137
+ else
138
+ "#{base}-#{version}"
139
+ end
123
140
  end
124
141
 
125
142
  private
126
- def digdag_url
143
+ def digdag_url(version=nil)
127
144
  url = ENV.fetch('TD_DIGDAG_URL', '').strip
128
145
  return url unless url.empty?
129
146
  user = Config.read['account.user']
@@ -131,7 +148,7 @@ module TreasureData
131
148
  return digdag_base_url
132
149
  end
133
150
  query = URI.encode_www_form('user' => user)
134
- "#{digdag_base_url}?#{query}"
151
+ "#{digdag_base_url(version)}?#{query}"
135
152
  end
136
153
 
137
154
  private
@@ -406,7 +423,7 @@ EOF
406
423
  end
407
424
  end
408
425
 
409
- def download_digdag
426
+ def download_digdag(version=nil)
410
427
  require 'net/http'
411
428
  require 'openssl'
412
429
 
@@ -422,7 +439,7 @@ EOF
422
439
  status = nil
423
440
  download_path = File.join(download_dir, 'digdag')
424
441
  File.open(download_path, 'wb') do |file|
425
- status = Updater.stream_fetch(digdag_url, file) {
442
+ status = Updater.stream_fetch(digdag_url(version), file) {
426
443
  indicator.update
427
444
  }
428
445
  end
@@ -1,3 +1,3 @@
1
1
  module TreasureData
2
- TOOLBELT_VERSION = '0.15.2'
2
+ TOOLBELT_VERSION = '0.15.3'
3
3
  end
data/td.gemspec CHANGED
@@ -21,9 +21,9 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency "yajl-ruby", "~> 1.1"
22
22
  gem.add_dependency "hirb", ">= 0.4.5"
23
23
  gem.add_dependency "parallel", "~> 1.8.0"
24
- gem.add_dependency "td-client", "~> 0.8.85"
24
+ gem.add_dependency "td-client", ">= 0.8.85", "< 2"
25
25
  gem.add_dependency "td-logger", ">= 0.3.21", "< 2"
26
- gem.add_dependency "rubyzip", "~> 1.1.7"
26
+ gem.add_dependency "rubyzip", ">= 1.2.1"
27
27
  gem.add_dependency "zip-zip", "~> 0.3"
28
28
  gem.add_dependency "ruby-progressbar", "~> 1.7"
29
29
  gem.add_development_dependency "rake"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.15.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Treasure Data, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-29 00:00:00.000000000 Z
11
+ date: 2017-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -70,16 +70,22 @@ dependencies:
70
70
  name: td-client
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.8.85
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '2'
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
- - - "~>"
83
+ - - ">="
81
84
  - !ruby/object:Gem::Version
82
85
  version: 0.8.85
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '2'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: td-logger
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +110,16 @@ dependencies:
104
110
  name: rubyzip
105
111
  requirement: !ruby/object:Gem::Requirement
106
112
  requirements:
107
- - - "~>"
113
+ - - ">="
108
114
  - !ruby/object:Gem::Version
109
- version: 1.1.7
115
+ version: 1.2.1
110
116
  type: :runtime
111
117
  prerelease: false
112
118
  version_requirements: !ruby/object:Gem::Requirement
113
119
  requirements:
114
- - - "~>"
120
+ - - ">="
115
121
  - !ruby/object:Gem::Version
116
- version: 1.1.7
122
+ version: 1.2.1
117
123
  - !ruby/object:Gem::Dependency
118
124
  name: zip-zip
119
125
  requirement: !ruby/object:Gem::Requirement
@@ -303,7 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
303
309
  version: '0'
304
310
  requirements: []
305
311
  rubyforge_project:
306
- rubygems_version: 2.5.2
312
+ rubygems_version: 2.6.11
307
313
  signing_key:
308
314
  specification_version: 4
309
315
  summary: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing