fluent-plugin-aliyun-odps 0.0.5 → 0.0.6

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: 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