fluent-plugin-aliyun-odps 0.0.5 → 0.0.6

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: a83605973fae13e78ea73e422533ef6d613fe5fc
4
- data.tar.gz: 8109f1fc93a0fce0869914893d073d25c911bf6d
3
+ metadata.gz: 33c05a1a6b13ea410537698e8bd6ee0ded655fae
4
+ data.tar.gz: 90f5de535dc2d9d48d65442e4f84bebc3d0870fb
5
5
  SHA512:
6
- metadata.gz: c614f06a4063a1b78bb728ec48d0530a05b1f5951bd7c49932df8fb642fe300f979ca2acba507988bb5bee4b647a91c4557e51c1d181e257600b76daef0ad205
7
- data.tar.gz: 6a0c6f9027fde9a0ebd23445d89b522b1d5f4ea5744875e94d20a2bd8d1b37c210bcf1d84f139579f7b151310022258d58f52d1b26d56ae851ef860955b0fe94
6
+ metadata.gz: cbc2cf4a5cef08a7f7235972f8bdb4e99a24ffbf4b1d78dd5912683d6eddde45c5e363186c5317085f2965a783c608dc24dba6f1f7b6ace6abf997642566f387
7
+ data.tar.gz: 606b07286d5b0ab22dbc01aa7619b9718257b1083e985b295f1ac1be6cc280727ab1edfb4dbae30bce86d5575fc9530f2a6c109a3f49ad821431c51cf1e08095
data/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
1
  0.0.4
2
2
  Fix datetime format bug, support String, DateTime, Time type when write to a datetime field.
3
3
  0.0.5
4
- Add reload shard when import fails, and remove unload shard operation when shut down.
4
+ Add reload shard when import fails, and remove unload shard operation when shut down.
5
+ 0.0.6
6
+ Add decimal support��fix string input while setting double and int.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -16,6 +16,7 @@
16
16
  #specific language governing permissions and limitations
17
17
  #under the License.
18
18
  #
19
+
19
20
  require 'rexml/document'
20
21
  require_relative 'xml_template'
21
22
  require_relative 'odps_table_schema'
@@ -56,22 +57,34 @@ module OdpsDatahub
56
57
  def setBigInt(idx, value)
57
58
  if value.is_a?Integer
58
59
  setValue(idx, value)
60
+ elsif value.is_a?String
61
+ setValue(idx, value.to_i)
59
62
  else
60
- raise "value show be Integer"
63
+ raise "value show be Integer, idx:" + idx.to_s + " value:" + value.to_s
61
64
  end
62
65
  end
63
66
 
64
67
  def setDouble(idx, value)
65
68
  if value.is_a?Float
66
69
  setValue(idx, value)
70
+ elsif value.is_a?String
71
+ setValue(idx, value.to_f)
67
72
  else
68
- raise "value show be Float"
73
+ raise "value show be Float, idx:" + idx.to_s + " value:" + value.to_s
69
74
  end
70
75
  end
71
76
 
72
77
  def setBoolean(idx, value)
73
- if value != false and value != true
74
- raise "value must be bool"
78
+ if value.is_a?String
79
+ if value == "true"
80
+ setValue(idx, true)
81
+ elsif value == "false"
82
+ setValue(idx, false)
83
+ else
84
+ raise "value must be true or false, idx:" + idx.to_s + " value:" + value.to_s
85
+ end
86
+ elsif value != false and value != true
87
+ raise "value must be bool or string[true,false], idx:" + idx.to_s + " value:" + value.to_s
75
88
  end
76
89
  setValue(idx, value)
77
90
  end
@@ -93,7 +106,19 @@ module OdpsDatahub
93
106
  raise "Parse string to datetime failed, string:" + value
94
107
  end
95
108
  else
96
- raise "DateTime cell should be in Integer or Time or DateTime format."
109
+ raise "DateTime cell should be in Integer or Time or DateTime format, idx:" + idx.to_s + " value:" + value.to_s
110
+ end
111
+ end
112
+
113
+ def setDecimal(idx, value)
114
+ if value.is_a?String
115
+ setValue(idx, value)
116
+ elsif value.is_a?Float
117
+ setValue(idx, value.to_s)
118
+ elsif value.is_a?BigDecimal
119
+ setValue(idx, value.to_s)
120
+ else
121
+ raise "value can not be convert to decimal, idx:" + idx.to_s + " value:" + value.to_s
97
122
  end
98
123
  end
99
124
 
@@ -101,14 +126,14 @@ module OdpsDatahub
101
126
  if value.is_a?String and value.length < $STRING_MAX_LENTH
102
127
  setValue(idx, value)
103
128
  else
104
- raise "value show be String and len < " + $STRING_MAX_LENTH.to_s
129
+ raise "value show be String and len < " + $STRING_MAX_LENTH.to_s + ", idx:" + idx.to_s + " value:" + value.to_s
105
130
  end
106
131
  end
107
132
 
108
133
  private
109
134
  def setValue(idx, value)
110
135
  if idx < 0 or idx >= @mSchema.getColumnCount
111
- raise "idx out of range"
136
+ raise "idx out of range, idx:" + idx.to_s + " value:" + value.to_s
112
137
  end
113
138
  @mValues[idx] = value
114
139
  end
@@ -17,11 +17,12 @@
17
17
  #under the License.
18
18
  #
19
19
  module OdpsDatahub
20
- $ODPS_BIGINT = "bigint"
21
- $ODPS_DOUBLE = "double"
22
- $ODPS_BOOLEAN = "boolean"
23
- $ODPS_DATETIME = "datetime"
24
- $ODPS_STRING = "string"
20
+ $ODPS_BIGINT = "bigint" #8�ֽ��з�������
21
+ $ODPS_DOUBLE = "double" #8�ֽ�˫���ȸ�����
22
+ $ODPS_BOOLEAN = "boolean" #������
23
+ $ODPS_DATETIME = "datetime" #�������ͣ�ȡֵ��Χ��0001-01-01 00:00:00 ~ 9999-12-31 23:59:59
24
+ $ODPS_STRING = "string" #�ַ�������
25
+ $ODPS_DECIMAL = "decimal" #�ַ�������
25
26
 
26
27
  class OdpsTableColumn
27
28
  attr_reader :mName, :mType, :mIdx
@@ -249,6 +249,7 @@ module Fluent
249
249
  rescue => e
250
250
  # reload shard
251
251
  if e.message.include? "ShardNotReady" or e.message.include? "InvalidShardId"
252
+ @log.warn "write failed, msg:" + e.message
252
253
  @client.loadShard(@shard_number)
253
254
  @client.waitForShardLoad
254
255
  end
@@ -120,6 +120,10 @@ module OdpsDatahub
120
120
  crc32cRecord.update(cellValue)
121
121
  writeTag(col.mIdx + 1, ::Protobuf::WireType::LENGTH_DELIMITED, upStream)
122
122
  upStream.write(encodeString(cellValue))
123
+ when $ODPS_DECIMAL
124
+ crc32cRecord.update(cellValue)
125
+ writeTag(col.mIdx + 1, ::Protobuf::WireType::LENGTH_DELIMITED, upStream)
126
+ upStream.write(encodeString(cellValue))
123
127
  else
124
128
  raise OdpsDatahubException.new($INVALID_ARGUMENT, "invalid mType")
125
129
  end
@@ -141,6 +141,8 @@ module OdpsDatahub
141
141
  record.setDouble(i, value[i])
142
142
  when $ODPS_STRING
143
143
  record.setString(i, value[i])
144
+ when $ODPS_DECIMAL
145
+ record.setDecimal(i, value[i])
144
146
  else
145
147
  raise OdpsDatahubException.new($INVALID_ARGUMENT, "unsupported schema type")
146
148
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-aliyun-odps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xiao Dong
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-10-22 00:00:00.000000000 Z
12
+ date: 2015-11-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd