rabbit-slide-hiroyuki-sato-groonga-meatup-2015 2015.11.29.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.md +10 -0
- data/Rakefile +17 -0
- data/config.yaml +21 -0
- data/groonga-meatup-2015.md +193 -0
- data/images/architecture.pdf +0 -0
- data/images/csv.pdf +0 -0
- data/images/embulk.png +0 -0
- data/images/github.png +0 -0
- data/images/groonga-output.pdf +0 -0
- data/images/highlight_slow.pdf +0 -0
- data/images/highlight_slow2.pdf +0 -0
- data/images/mail.pdf +0 -0
- data/pdf/groonga-meatup-2015-groonga-meatup-2015.pdf +0 -0
- data/theme.rb +4 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e7cd30555544b3da3020914010fd4109504684e7
|
4
|
+
data.tar.gz: 8baadd19b234d5548b45157f3481145fa0947e2b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f9a1de5cc8393a5f3c1540c775cf11bd2fd991ec63f0201fb86bef704730e2b20c627ec67387b644690c5081562937db3c2474b9d75927b1646f283e3196dec7
|
7
|
+
data.tar.gz: cc03a9332dfe17da2d59e0363fd87eeb4bd3b0a2fefc0481a7caf487375da21fdfaa66f468e3c4b0070899e3a202637b16d98251066ca192eb8c706615d55e51
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
groonga-meatup-2015.md
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
spec = nil
|
6
|
+
Rabbit::Task::Slide.new do |task|
|
7
|
+
spec = task.spec
|
8
|
+
# spec.files += Dir.glob("doc/**/*.*")
|
9
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
10
|
+
task.spec.add_runtime_dependency("rabbit-theme-groonga")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Tag #{spec.version}"
|
14
|
+
task :tag do
|
15
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
16
|
+
sh("git", "push", "--tags")
|
17
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
id: groonga-meatup-2015
|
3
|
+
base_name: groonga-meatup-2015
|
4
|
+
tags:
|
5
|
+
- groonga
|
6
|
+
presentation_date: 2015-11-29
|
7
|
+
version: 2015.11.29.1
|
8
|
+
licenses:
|
9
|
+
- CC BY-SA 4.0
|
10
|
+
#slideshare_id: groonga-night-5
|
11
|
+
#speaker_deck_id: groongazu-2014
|
12
|
+
ustream_id:
|
13
|
+
vimeo_id:
|
14
|
+
youtube_id:
|
15
|
+
author:
|
16
|
+
markup_language: :md
|
17
|
+
name: hiroyuki-sato
|
18
|
+
email: hiroysato@gmail.com
|
19
|
+
rubygems_user: hiroyuki-sato
|
20
|
+
# slideshare_user: hiroyuki-sato
|
21
|
+
# speaker_deck_user: hiroyuki-sato
|
@@ -0,0 +1,193 @@
|
|
1
|
+
# Groonga\\n導入事例
|
2
|
+
|
3
|
+
author
|
4
|
+
: 佐藤 博之
|
5
|
+
|
6
|
+
content-source
|
7
|
+
: Groonga Meatup 2015
|
8
|
+
|
9
|
+
date
|
10
|
+
: 2015-11-29
|
11
|
+
|
12
|
+
theme
|
13
|
+
: .
|
14
|
+
|
15
|
+
# 自己紹介
|
16
|
+
|
17
|
+
* 佐藤博之
|
18
|
+
* Twitter: @hiroysato
|
19
|
+
* GitHub: hiroyuki-sato
|
20
|
+
* 営業・インフラ担当
|
21
|
+
|
22
|
+
# 最近の営業活動
|
23
|
+
|
24
|
+
* OS
|
25
|
+
* Linux, Windows, OSX
|
26
|
+
* Infiniband/RoCE
|
27
|
+
* RDMA, iSER, SRP
|
28
|
+
* その他
|
29
|
+
* VyOS、Asterisk、Sisimai、PostgreSQL
|
30
|
+
|
31
|
+
# 目次
|
32
|
+
|
33
|
+
* 構築したサービスの要件
|
34
|
+
* Groongaを選んだ理由
|
35
|
+
* システム構成
|
36
|
+
* Groongaへデータ登録方法
|
37
|
+
* 使ってみて
|
38
|
+
|
39
|
+
# 構築したサービスの要件
|
40
|
+
|
41
|
+
* 入力ソース
|
42
|
+
* 電子メール
|
43
|
+
* 出力
|
44
|
+
* 指定したキーワードの含まれる記事をピックアップ
|
45
|
+
* PDF・Excelなどに整形
|
46
|
+
|
47
|
+
# 構築したサービスの要件
|
48
|
+
|
49
|
+
![](images/mail.pdf){: relative_height="100"}
|
50
|
+
|
51
|
+
# 全文検索ソフトウェア
|
52
|
+
|
53
|
+
**日本語全文検索**
|
54
|
+
-> Groonga
|
55
|
+
|
56
|
+
# なぜGroonga
|
57
|
+
|
58
|
+
* 単体で日本語対応してくれそう
|
59
|
+
* 実際単体で全角英字や半角英字を正規化してくれた。
|
60
|
+
* Groonga Grooonga など
|
61
|
+
* 須藤さんがメンテナ
|
62
|
+
* ActiveLDAP, rcairoなどの実績
|
63
|
+
|
64
|
+
# サーバ構成
|
65
|
+
|
66
|
+
* 全文検索システム: Groonga
|
67
|
+
* メールの定期取得
|
68
|
+
* fetchmail/procmail
|
69
|
+
* データ登録: embulk
|
70
|
+
* プラグインを自作
|
71
|
+
* データ出力: groonga-client
|
72
|
+
|
73
|
+
# 構成
|
74
|
+
|
75
|
+
![](images/architecture.pdf){: relative_height="100"}
|
76
|
+
|
77
|
+
# embulk(エンバルク)
|
78
|
+
|
79
|
+
* オープンソースバルクローダ
|
80
|
+
* マルチプラットフォーム
|
81
|
+
* OSX, Linux, Windows..
|
82
|
+
* プラグインアーキテクチャ
|
83
|
+
* 約100個のプラグインが利用可能
|
84
|
+
* 言語: Java(Scala)とJRuby
|
85
|
+
|
86
|
+
# embulkの構成
|
87
|
+
|
88
|
+
![](images/embulk.png){: relative_height="80"}
|
89
|
+
|
90
|
+
{::note}出典:http://www.slideshare.net/frsyuki/embuk-making-data-integration-works-relaxed{:/note}
|
91
|
+
|
92
|
+
# groongaプラグイン
|
93
|
+
|
94
|
+
* embulk-output-groonga
|
95
|
+
* groongaデータロード用
|
96
|
+
* ライセンス
|
97
|
+
* オープンソース
|
98
|
+
* https://github.com/hiroyuki-sato/embulk-output-groonga
|
99
|
+
|
100
|
+
# プラグイン利用例
|
101
|
+
|
102
|
+
![](images/groonga-output.pdf){: relative_height="100"}
|
103
|
+
|
104
|
+
# サンプルデータ
|
105
|
+
|
106
|
+
![](images/csv.pdf){: relative_height="80"}
|
107
|
+
|
108
|
+
# 設定例(入力部)
|
109
|
+
|
110
|
+
```
|
111
|
+
in:
|
112
|
+
type: file
|
113
|
+
path_prefix: hoge/csv/sample_
|
114
|
+
decoders:
|
115
|
+
- {type: gzip}
|
116
|
+
parser:
|
117
|
+
charset: UTF-8
|
118
|
+
newline: CRLF
|
119
|
+
type: csv
|
120
|
+
columns:
|
121
|
+
- {name: id, type: long}
|
122
|
+
- {name: title, type: string}
|
123
|
+
- {name: date, type: timestamp, format: '%Y/%m/%d'}
|
124
|
+
- {name: comment, type: string}
|
125
|
+
```
|
126
|
+
{: lang="yaml"}
|
127
|
+
|
128
|
+
# 設定例(出力部)
|
129
|
+
|
130
|
+
```
|
131
|
+
out:
|
132
|
+
type: groonga
|
133
|
+
table: Data # 投入先のテーブル名
|
134
|
+
host: localhost
|
135
|
+
protocol: http
|
136
|
+
key_column: title # キーにするカラム
|
137
|
+
```
|
138
|
+
{: lang="yaml"}
|
139
|
+
|
140
|
+
# Embulkの情報サイト
|
141
|
+
|
142
|
+
* Embulk
|
143
|
+
* http://www.embulk.org
|
144
|
+
* Qiita: Fluentdのバッチ版Embulk(エンバルク)のまとめ
|
145
|
+
* http://qiita.com/hiroysato/items/397f36c4838a0a93e352
|
146
|
+
|
147
|
+
# 導入結果
|
148
|
+
|
149
|
+
なんか遅い
|
150
|
+
|
151
|
+
# 疑似コード
|
152
|
+
|
153
|
+
```
|
154
|
+
select \
|
155
|
+
--table Data \
|
156
|
+
--match_columns article \
|
157
|
+
--output_columns "_key,highlight_html(article),line_no" \
|
158
|
+
--query "( Groonga OR ぐるんが ) OR (line_no:>1 + line_no:<500)" \
|
159
|
+
--command_version 2 \
|
160
|
+
--limit -1
|
161
|
+
```
|
162
|
+
|
163
|
+
Groongaなどのキーワードは40個ぐらい
|
164
|
+
|
165
|
+
# 遅い原因
|
166
|
+
|
167
|
+
![](images/highlight_slow.pdf){: relative_height="100"}
|
168
|
+
|
169
|
+
# 遅い原因
|
170
|
+
|
171
|
+
**highlight_html**がとても遅い
|
172
|
+
|
173
|
+
# highlight_html
|
174
|
+
|
175
|
+
* **ぐるんが**は全文検索エンジンです。
|
176
|
+
* ぐるなびさんでも活用されれている**Groonga**
|
177
|
+
* 毎年11月29日に開催される**Groonga**の会
|
178
|
+
|
179
|
+
# 不具合報告
|
180
|
+
|
181
|
+
**須藤さん**助けて
|
182
|
+
|
183
|
+
# 不具合報告
|
184
|
+
|
185
|
+
![](images/github.png){: relative_height="100"}
|
186
|
+
|
187
|
+
# 改修結果(5.0.8~)
|
188
|
+
|
189
|
+
![](images/highlight_slow2.pdf){: relative_height="100"}
|
190
|
+
|
191
|
+
# Thanks
|
192
|
+
|
193
|
+
**ありがとうございました。**
|
Binary file
|
data/images/csv.pdf
ADDED
Binary file
|
data/images/embulk.png
ADDED
Binary file
|
data/images/github.png
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/images/mail.pdf
ADDED
Binary file
|
Binary file
|
data/theme.rb
ADDED
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-hiroyuki-sato-groonga-meatup-2015
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2015.11.29.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- hiroyuki-sato
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rabbit-theme-groonga
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: |
|
42
|
+
: author
|
43
|
+
佐藤博之
|
44
|
+
: content-source
|
45
|
+
Groonga Meatup 2015
|
46
|
+
: date
|
47
|
+
2015-11-29
|
48
|
+
: allotted-time
|
49
|
+
15m
|
50
|
+
email:
|
51
|
+
- hiroysato@gmail.com
|
52
|
+
executables: []
|
53
|
+
extensions: []
|
54
|
+
extra_rdoc_files: []
|
55
|
+
files:
|
56
|
+
- ".rabbit"
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- config.yaml
|
60
|
+
- groonga-meatup-2015.md
|
61
|
+
- images/architecture.pdf
|
62
|
+
- images/csv.pdf
|
63
|
+
- images/embulk.png
|
64
|
+
- images/github.png
|
65
|
+
- images/groonga-output.pdf
|
66
|
+
- images/highlight_slow.pdf
|
67
|
+
- images/highlight_slow2.pdf
|
68
|
+
- images/mail.pdf
|
69
|
+
- pdf/groonga-meatup-2015-groonga-meatup-2015.pdf
|
70
|
+
- theme.rb
|
71
|
+
homepage: http://slide.rabbit-shocker.org/authors/hiroyuki-sato/groonga-meatup-2015/
|
72
|
+
licenses:
|
73
|
+
- CC BY-SA 4.0
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.4.5.1
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: "= Title"
|
95
|
+
test_files: []
|