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.
@@ -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
@@ -0,0 +1,10 @@
1
+ = Title
2
+
3
+ : author
4
+ 佐藤博之
5
+ : content-source
6
+ Groonga Meatup 2015
7
+ : date
8
+ 2015-11-29
9
+ : allotted-time
10
+ 15m
@@ -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
@@ -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
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ @table_header_font_props["size"] = @x_small_font_size
2
+ @table_cell_font_props["size"] = @x_small_font_size
3
+
4
+ include_theme("groonga")
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: []