fluent-plugin-pghstore 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -9,11 +9,13 @@ Output to PostgreSQL hstore database.
9
9
  Output table should have tag, time and record column.:
10
10
 
11
11
  CREATE TABLE #{tablename} (
12
- tag TEXT,
12
+ tag TEXT[],
13
13
  time TIMESTAMP WITH TIME ZONE,
14
14
  record HSTORE
15
15
  );
16
16
 
17
+ A tag is splited by "." and stored in the TEXT[]. (Yes, postgres can handle an array!)
18
+
17
19
  == Requirement
18
20
 
19
21
  - PostgreSQL 9.0 or higher
@@ -51,7 +53,9 @@ Example:
51
53
  - database name
52
54
  - Optional
53
55
  - table
54
- - tablename. If not set, use +fluentd_store+. If not exists, creates automatically.
56
+ - tablename.
57
+ - If not set, use +fluentd_store+.
58
+ - If not exists, creates automatically.
55
59
  - host
56
60
  - port
57
61
  - user
@@ -62,12 +66,12 @@ Example:
62
66
  == Limitation
63
67
 
64
68
  - Nested output is not allowd.
65
- - Since using only one connection, performance may become bad. When you meet this, use connection pooling and write patch!
66
-
69
+ - Since using only one connection, the performance may become bad. When you meet this, use connection pooling and write patch!
67
70
 
68
71
  == Thanks
69
72
 
70
73
  This source code is mainly borrowed from
74
+
71
75
  {fluent-plugin-datacounter}{https://rubygems.org/gems/fluent-plugin-datacounter}. Thank you for tagomoris.
72
76
 
73
77
  == Copyright
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "fluent-plugin-pghstore"
6
- s.version = "0.0.1"
6
+ s.version = "0.0.2"
7
7
  s.authors = ["WAKAYAMA Shirou"]
8
8
  s.email = ["shirou.faw@gmail.com"]
9
9
  s.homepage = "https://github.com/r_rudi/fluent-plugin-pghstore"
@@ -55,10 +55,14 @@ class Fluent::PgHStoreOutput < Fluent::BufferedOutput
55
55
  end
56
56
  }
57
57
 
58
+ tag_list = tag.split(".")
59
+ tag_list.map! {|t| "'" + t + "'"}
60
+
58
61
  sql =<<"SQL"
59
62
  INSERT INTO #{@table} (tag, time, record) VALUES
60
- ('#{tag}', '#{Time.at(time)}'::TIMESTAMP WITH TIME ZONE, '#{kv_list.join(",")}');
63
+ (ARRAY[#{tag_list.join(",")}], '#{Time.at(time)}'::TIMESTAMP WITH TIME ZONE, '#{kv_list.join(",")}');
61
64
  SQL
65
+
62
66
  return sql
63
67
  end
64
68
 
@@ -86,7 +90,7 @@ SQL
86
90
  def create_table(tablename)
87
91
  sql =<<"SQL"
88
92
  CREATE TABLE #{tablename} (
89
- tag TEXT,
93
+ tag TEXT[],
90
94
  time TIMESTAMP WITH TIME ZONE,
91
95
  record HSTORE
92
96
  );
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-pghstore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-30 00:00:00.000000000 Z
12
+ date: 2012-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec