rabbit-slide-komainu8-postgresql-conference-japan-2019 2019.11.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.rabbit +1 -0
  3. data/Images/1.png +0 -0
  4. data/Images/2.png +0 -0
  5. data/Images/3.png +0 -0
  6. data/Images/4.png +0 -0
  7. data/Images/5.png +0 -0
  8. data/Images/6.png +0 -0
  9. data/Images/7.png +0 -0
  10. data/Images/8.png +0 -0
  11. data/Images/9.png +0 -0
  12. data/Images/Amazon_RDS.png +0 -0
  13. data/Images/Amazon_RDS_backup.png +0 -0
  14. data/Images/Amazon_RDS_hw_change.png +0 -0
  15. data/Images/Amazon_RDS_optimization.png +0 -0
  16. data/Images/Amazon_RDS_replication.png +0 -0
  17. data/Images/Amazon_RDS_scaling1.png +0 -0
  18. data/Images/Amazon_RDS_scaling2.png +0 -0
  19. data/Images/Amazon_RDS_structure.png +0 -0
  20. data/Images/PostgreSQL_logo.3colors.120x120.png +0 -0
  21. data/Images/Self-introduction.png +0 -0
  22. data/Images/can_not_install.png +0 -0
  23. data/Images/element_pgroonga.png +0 -0
  24. data/Images/elements1.png +0 -0
  25. data/Images/elements2.png +0 -0
  26. data/Images/elements3.png +0 -0
  27. data/Images/logical_replication1.png +0 -0
  28. data/Images/logical_replication2.png +0 -0
  29. data/Images/logical_replication_EC2_destroy.png +0 -0
  30. data/Images/logical_replication_EC2_new.png +0 -0
  31. data/Images/logical_replication_cannot_search.png +0 -0
  32. data/Images/logical_replication_load_barance.png +0 -0
  33. data/Images/logical_replication_load_up.png +0 -0
  34. data/Images/logical_replication_read_only.png +0 -0
  35. data/Images/logical_replication_slow.png +0 -0
  36. data/Images/logical_replication_write_only.png +0 -0
  37. data/Images/pgroonga_sql.png +0 -0
  38. data/Images/pgroonga_vs_pg_bigm.png +0 -0
  39. data/Images/search-pgroonga-pg-bigm.pdf +0 -0
  40. data/Images/structure1.png +0 -0
  41. data/README.md +61 -0
  42. data/Rakefile +17 -0
  43. data/config.yaml +28 -0
  44. data/logical-replication-and-full-text-search.rab +513 -0
  45. data/pdf/postgresql-conference-japan-2019-logical-replication-and-full-text-search.pdf +0 -0
  46. data/theme.rb +5 -0
  47. metadata +129 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 733c5d87e69d4fe150a00a691ccae3a0717e30116fd6b47a438bc318da286be8
4
+ data.tar.gz: e1e7bb417331f1c388c433a847d97f1b31fe08af61ee846be3bce6b72f3cceec
5
+ SHA512:
6
+ metadata.gz: 604237ade89dd330889f595a78c30bf45fe3bdb445ee38818b30df34291c114ac7616f97aeeed2422683e9147b86d912a1e0f8c5105633f73079cfb52c8178df
7
+ data.tar.gz: 0d665bb1e501ba4385bf9a5ed84dae332cd1743739f13824626eb0bb463f4ebc378191d3faf92b713abfef7b5d06899eb6db1816043f6fdf051f855cb80f8006
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ logical-replication-and-full-text-search.rab
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,61 @@
1
+ # Amazon RDS+EC2+PGroonga+ロジカルレプリケーションを使った低コスト高速全文検索
2
+
3
+ PostgreSQL で使用できる全文検索の拡張に PGroonga という高速で高性能な拡張があります。 PGroonga は、全言語対応の超高速全文検索機能を PostgreSQL で使えるようにする拡張で、 安定して高速で、かつ高機能(同義語、表記ゆれや異字体への対応、類似文書検索などが使えます)です。
4
+
5
+ Amazon RDS は Amazon がクラウド上で提供する RDBS サービスで、データベースのインストールや パッチ適用、スケールアウト、バックアップなどを Amazon が面倒をみてくれるため、 運用上の手間を大幅に減らすことができます。
6
+
7
+ Amazon RDS は、とても便利なのですが、拡張機能を自由にインストールすることができません。 以下の URL の一覧にある拡張しか使えません。
8
+ https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.11x
9
+
10
+ PGroonga も使えないため、日本語を始めとする多言語対応の超高速全文検索機能を Amazon RDS では使うことができません。
11
+
12
+ そこで、PostgreSQL 10 から使えるようになった、ロジカルレプリケーションと Amazon EC2 上にインストールした PostgreSQL と PGroonga を使って RDS のメリットである、 運用の負担を少なくしつつ、PGroonga を使用して高速で高機能な全文検索ができるような構成を考えました。
13
+
14
+ 本発表では、どのような構成で Amazon RDS のメリットを活かしつつ、Amazon EC2 上で PGroonga を使った全文検索ができるのかを紹介します。
15
+
16
+ ## ライセンス
17
+
18
+ ### スライド
19
+
20
+ CC BY-SA 4.0
21
+
22
+ 原著作者:堀本泰弘
23
+
24
+ ### Groonga・PGroonga・Mroonga・Rroongaのロゴ
25
+
26
+ CC BY 3.0
27
+
28
+ 原著作者:Groongaプロジェクト
29
+
30
+ ### クリアコードのロゴ
31
+
32
+ CC BY-SA 4.0
33
+
34
+ 原著作者:株式会社クリアコード
35
+
36
+ ### PostgreSQL Elephant ロゴ
37
+
38
+ The PostgreSQL Licence
39
+
40
+ 原著作者:The PostgreSQL Community Association of Canada
41
+
42
+ ## 作者向け
43
+
44
+ ### 表示
45
+
46
+ rake
47
+
48
+ ### 公開
49
+
50
+ rake publish
51
+
52
+ ## 閲覧者向け
53
+
54
+ ### インストール
55
+
56
+ gem install rabbit-slide-komainu8-postgresql-conference-japan-2019
57
+
58
+ ### 表示
59
+
60
+ rabbit rabbit-slide-komainu8-postgresql-conference-japan-2019.gem
61
+
@@ -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("Images/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ 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,28 @@
1
+ ---
2
+ id: postgresql-conference-japan-2019
3
+ base_name: logical-replication-and-full-text-search
4
+ tags:
5
+ - rabbit
6
+ - postgresql
7
+ - pgcon19j
8
+ - fts
9
+ - search
10
+ - pgroonga
11
+ - groonga
12
+ presentation_date: 2019-11-15
13
+ version: 2019.11.15.0
14
+ licenses:
15
+ - CC-BY-SA-4.0
16
+ - CC-BY-3.0
17
+ slideshare_id:
18
+ speaker_deck_id:
19
+ ustream_id:
20
+ vimeo_id:
21
+ youtube_id:
22
+ author:
23
+ markup_language: :rd
24
+ name: 堀本泰弘
25
+ email: horimoto@clear-code.com
26
+ rubygems_user: komainu8
27
+ slideshare_user:
28
+ speaker_deck_user:
@@ -0,0 +1,513 @@
1
+ = Amazon RDS+EC2+PGroonga+ロジカルレプリケーション\nを使った低コスト\n高速全文検索
2
+
3
+ : author
4
+ 堀本泰弘
5
+ : institution
6
+ クリアコード
7
+ : content-source
8
+ PostgreSQL Conference Japan 2019
9
+ : date
10
+ 2019-11-15
11
+ : start-time
12
+ 2019-11-15T14:10:00+09:00
13
+ : end-time
14
+ 2019-11-15T14:52:00+09:00
15
+ : theme
16
+ .
17
+
18
+ = 自己紹介
19
+
20
+ # image
21
+ # src = Images/Self-introduction.png
22
+ # relative_height = 107
23
+
24
+ = 自己紹介
25
+
26
+ * 他のOSSへもコントリビュート
27
+ * 昨日、PostgreSQLのドキュメントの改善を提案
28
+ * 問題は((*「開発元」*))で修正が弊社の\nポリシー
29
+
30
+ = 今日のテーマ
31
+
32
+ なるべく((*楽*))に\n((*高機能で高速な全文検索*))\nがしたい
33
+
34
+ = 実現のための要素
35
+
36
+ # image
37
+ # src = Images/elements1.png
38
+ # relative_height = 108
39
+
40
+ = 特に大事な要素
41
+
42
+ # image
43
+ # src = Images/elements2.png
44
+ # relative_height = 108
45
+
46
+ = 楽
47
+
48
+ # image
49
+ # src = Images/Amazon_RDS.png
50
+ # relative_height = 108
51
+
52
+ = 楽
53
+
54
+ なぜ楽なのか?
55
+
56
+ = 設定が楽
57
+
58
+ # image
59
+ # src = Images/Amazon_RDS_optimization.png
60
+ # relative_height = 120
61
+
62
+ = 構築が楽
63
+
64
+ # image
65
+ # src = Images/Amazon_RDS_structure.png
66
+ # relative_height = 100
67
+
68
+ = スケールアップが楽
69
+
70
+ # image
71
+ # src = Images/Amazon_RDS_scaling1.png
72
+ # relative_height = 105
73
+
74
+ = スケールアップが楽
75
+
76
+ # image
77
+ # src = Images/Amazon_RDS_scaling2.png
78
+ # relative_height = 105
79
+
80
+ = 障害対策が楽
81
+
82
+ # image
83
+ # src = Images/Amazon_RDS_replication.png
84
+ # relative_height = 105
85
+
86
+ = 障害対策が楽
87
+
88
+ # image
89
+ # src = Images/Amazon_RDS_backup.png
90
+ # relative_height = 105
91
+
92
+ = 障害対策が楽
93
+
94
+ # image
95
+ # src = Images/Amazon_RDS_hw_change.png
96
+ # relative_height = 105
97
+
98
+ = 今日のテーマ
99
+
100
+ なるべく((*楽*))に\n((*高機能で高速な全文検索*))\nがしたい
101
+
102
+ = 全文検索
103
+
104
+ # image
105
+ # src = Images/element_pgroonga.png
106
+ # relative_height = 108
107
+
108
+ = 全文検索
109
+
110
+ なぜPGroongaなのか?
111
+
112
+ = 対応言語
113
+
114
+ 全言語対応
115
+
116
+ = 速い
117
+
118
+ 高速
119
+
120
+ = 速い
121
+
122
+ ベンチマーク
123
+
124
+ = 速い
125
+
126
+ * 日本語Wikipedia
127
+ * レコード数:約90万レコード
128
+ * 平均テキストサイズ:6.7KiB
129
+
130
+ = 速い
131
+
132
+ # image
133
+ # src = Images/pgroonga_vs_pg_bigm.png
134
+ # relative_height = 108
135
+
136
+ = 速い
137
+
138
+ * ベンチマークの詳細な条件は\n以下を参照
139
+
140
+ (('tag:x-small'))
141
+ ((<"https://pgroonga.github.io/ja/reference/pgroonga-versus-pg-bigm.html"|URL:https://pgroonga.github.io/ja/reference/pgroonga-versus-pg-bigm.html>))
142
+
143
+ = SQLが使える
144
+
145
+ # image
146
+ # src = Images/pgroonga_sql.png
147
+ # relative_height = 108
148
+
149
+ = 実例
150
+
151
+ 具体的に\nどう書くのか?
152
+
153
+ = 実行例:テーブル定義
154
+
155
+ # coderay sql
156
+
157
+ CREATE TABLE entries (
158
+ title text,
159
+ content text
160
+ );
161
+
162
+ = 実行例:\nインデックス定義
163
+
164
+ # coderay sql
165
+
166
+ -- 全文検索用インデックス
167
+ CREATE INDEX entries_full_text_search
168
+ ON entries
169
+ --「USING pgroonga」=「PGroongaを使う」
170
+ USING pgroonga (title, content);
171
+
172
+ = 実行例:データ挿入
173
+
174
+ # coderay sql
175
+
176
+ -- 普通に挿入するだけでよい
177
+ INSERT INTO entries
178
+ VALUES ('PGroongaで高速全文検索!',
179
+ '高速に全文検索したいですね!');
180
+
181
+ = 実行例:全文検索
182
+
183
+ # coderay sql
184
+
185
+ SELECT title FROM entries
186
+ WHERE
187
+ -- &@~で全文検索
188
+ -- 「検索」と「高速」をAND検索
189
+ title &@~ '検索 高速' OR
190
+ content &@~ '検索 高速';
191
+
192
+ = 実行例:LIKE
193
+
194
+ # coderay sql
195
+
196
+ SELECT title FROM entries
197
+ WHERE
198
+ -- LIKEでもインデックスが効く
199
+ --=アプリを書き換えずに高速化可能
200
+ -- ただし&@~より性能が落ちる
201
+ title LIKE '%検索%' OR
202
+ content LIKE '%検索%';
203
+
204
+ = 機能
205
+
206
+ * 全文検索に必要そうな機能は\n一通り揃っている
207
+ * 同義語検索
208
+ * 類似文書検索
209
+ * 読みがな検索
210
+ * 入力補完 etc..
211
+
212
+ = 読みがな検索
213
+
214
+ 「やきにく」\nってどう書きますか?
215
+
216
+ = 読みがな検索
217
+
218
+ * やきにく
219
+ * 焼き肉
220
+ * 焼肉
221
+ * やき肉
222
+ * ヤキニク
223
+
224
+ = 読みがな検索
225
+
226
+ 当然ですがどれも「やきにく」と読みます
227
+
228
+ = 読みがな検索
229
+
230
+ * 読みが同じなので、以下は全部同じものとして扱えます
231
+ * やきにく
232
+ * 焼き肉
233
+ * 焼肉
234
+ * やき肉
235
+ * ヤキニク
236
+
237
+ = 読みがな検索
238
+
239
+ 例えば\n「やきにく」で検索すると
240
+
241
+ = 読みがな検索
242
+
243
+ * 「やきにく」((*Hit!*))
244
+ * 「焼き肉」((*Hit!*))
245
+ * 「焼肉」((*Hit!*))
246
+ * 「やき肉」((*Hit!*))
247
+ * 「ヤキニク」((*Hit!*))
248
+
249
+ = 読みがな検索
250
+
251
+ 異体字
252
+
253
+ = 読みがな検索
254
+
255
+ 「広」と「廣」
256
+
257
+ = 読みがな検索
258
+
259
+ 例えば人名の\n検索
260
+
261
+ = 読みがな検索
262
+
263
+ 検索キーワード「広瀬」で
264
+ * 「広瀬」((*Hit*))
265
+ * 「廣瀬」((*Hit*))
266
+ となってほしい
267
+
268
+ = 読みがな検索
269
+
270
+ 通常の検索\n
271
+ 検索キーワード「広瀬」で
272
+ * 「広瀬」のみ((*Hit*))
273
+
274
+ = 読みがな検索
275
+
276
+ 読みがな検索なら\n
277
+ 検索キーワード「広瀬」で
278
+ * 「広瀬」((*Hit*))
279
+ * 「廣瀬」((*Hit*))
280
+
281
+ = 読みがな検索
282
+
283
+ 両方ヒット!
284
+
285
+ = 読みがな検索
286
+
287
+ 「広瀬」も\n「廣瀬」も\n読みが同じ
288
+
289
+ = 他にも
290
+
291
+ * それっぽい順でソート
292
+ * キーワードハイライト
293
+ * キーワードの周辺テキスト表示
294
+
295
+ = 他にも
296
+
297
+ * 電話番号検索
298
+ * 090-1234-5678 と 090 1234 5678、(090)1234-5678 等
299
+ * fuzzy検索
300
+ * typo対策
301
+ * テクノロジーとテノクロジー
302
+
303
+ = 他にも
304
+
305
+ 継続的に\nメンテナンス\nされている
306
+
307
+ = 他にも
308
+
309
+ PostgreSQL12に対応!(昨日)
310
+
311
+ = 高機能で高速
312
+
313
+ PGroongaなら((*高機能で高速に全文検索*))できる
314
+
315
+ = Amazon RDS + PGroonga
316
+
317
+ しかし。。。
318
+
319
+ = Amazon RDS + PGroonga
320
+
321
+ # image
322
+ # src = Images/can_not_install.png
323
+ # relative_height = 108
324
+
325
+ = Amazon RDS + PGroonga
326
+
327
+ 他の2つの要素の出番!
328
+
329
+ = Amazon RDS + PGroonga
330
+
331
+ # image
332
+ # src = Images/elements3.png
333
+ # relative_height = 108
334
+
335
+ = 構成
336
+
337
+ # image
338
+ # src = Images/structure1.png
339
+ # relative_height = 108
340
+
341
+ = ロジカル\nレプリケーションの特徴
342
+
343
+ 複製元と複製先の構造が同一でなくてもよい
344
+
345
+ = ロジカル\nレプリケーションの特徴
346
+
347
+ # image
348
+ # src = Images/logical_replication1.png
349
+ # relative_height = 108
350
+
351
+ = ロジカル\nレプリケーションの特徴
352
+
353
+ # image
354
+ # src = Images/logical_replication2.png
355
+ # relative_height = 108
356
+
357
+ = 検索
358
+
359
+ # image
360
+ # src = Images/logical_replication_read_only.png
361
+ # relative_height = 105
362
+
363
+ = 更新
364
+
365
+ # image
366
+ # src = Images/logical_replication_write_only.png
367
+ # relative_height = 105
368
+
369
+ = 問題点
370
+
371
+ Subscriberが\n1台しかない
372
+
373
+ = 問題点
374
+
375
+ * リクエストが増加しつづけた場合、この構成では耐えられない
376
+
377
+ = 負荷分散
378
+
379
+ # image
380
+ # src = Images/logical_replication_load_barance.png
381
+ # relative_height = 105
382
+
383
+ = 復旧
384
+
385
+ 検索できなくなったら
386
+
387
+ = 復旧
388
+
389
+ 使い捨てる\n
390
+ 復旧は\nがんばらない
391
+
392
+ = 復旧
393
+
394
+ # image
395
+ # src = Images/logical_replication_cannot_search.png
396
+ # relative_height = 105
397
+
398
+ = 復旧
399
+
400
+ # image
401
+ # src = Images/logical_replication_EC2_destroy.png
402
+ # relative_height = 105
403
+
404
+ = 復旧
405
+
406
+ # image
407
+ # src = Images/logical_replication_EC2_new.png
408
+ # relative_height = 105
409
+
410
+ = サービス開始時間
411
+
412
+ もう一つの問題
413
+
414
+ = サービス開始時間
415
+
416
+ データが増えると復旧が遅延
417
+
418
+ = サービス開始時間
419
+
420
+ # image
421
+ # src = Images/logical_replication_slow.png
422
+ # relative_height = 105
423
+
424
+ = 停止時間の見積もり
425
+
426
+ 許容できる停止時間は?
427
+
428
+ = 停止時間の見積もり
429
+
430
+ 停止時間を\n見積もる
431
+
432
+ = 停止時間の見積もり
433
+
434
+ * 例えば...
435
+ * サービス復旧時間:1日
436
+ * 新しくAmazon EC2を作成して、サービス開始できるまでの時間
437
+ * 故障:1ヶ月に1回の頻度で故障
438
+
439
+ = 停止時間の見積もり
440
+
441
+ * リクエスト:
442
+ * 各EC2には均等にリクエストが振り分けられる
443
+ * サービス継続:
444
+ * Amazon EC2が3台あれば、サービスを提供可能なくらいの負荷
445
+
446
+ = 停止時間の見積もり
447
+
448
+ * Amazon EC2を3台で運用する場合
449
+ * 1台でも故障するとサービス継続不可
450
+
451
+ = 停止時間の見積もり
452
+
453
+ # image
454
+ # src = Images/logical_replication_load_up.png
455
+ # relative_height = 105
456
+
457
+ = 停止時間の見積もり
458
+
459
+ * この場合の稼働率
460
+
461
+ * 平均故障間隔 = \n365*24/12 = 730時間
462
+ * 平均復旧時間 = 24時間
463
+ * 稼働率 = 730/754 = 0.9681697612732095 ≒96.8%
464
+
465
+ = 停止時間の見積もり
466
+
467
+ つまり
468
+
469
+ = 停止時間の見積もり
470
+
471
+ * この構成では、1ヶ月に1日程度システムが停止する
472
+
473
+ = 停止時間の見積もり
474
+
475
+ * では、4台運用の場合ではどうなるのか?
476
+
477
+ = 停止時間の見積もり
478
+
479
+ * 1台あたりの稼働率:96.8%
480
+ * 1台あたりの故障率:\n 100% - 96.8% = 3.2%
481
+ * 2台同時に故障する確率:\n 0.032*0.032≒0.001=0.1%
482
+
483
+ = 停止時間の見積もり
484
+
485
+ * したがって、1ヶ月に約45分程度システムが停止する
486
+
487
+ = まとめ
488
+
489
+ # image
490
+ # src = Images/logical_replication_load_barance.png
491
+ # relative_height = 105
492
+
493
+ = まとめ
494
+
495
+ なるべく((*楽*))に\n((*高機能で高速な全文検索*))が\nできました!
496
+
497
+ = 最後に
498
+
499
+ * PGroongaについての疑問等は、GitHub、Gitterにて
500
+ * ドキュメントも充実
501
+ * ((<"https://pgroonga.github.io/ja/"|URL:https://pgroonga.github.io/ja/>))
502
+
503
+ = 最後に
504
+
505
+ より突っ込んだお話がしたい場合は↓↓\n
506
+ 問い合わせ先:
507
+
508
+ (('tag:x-small'))
509
+ ((<"https://www.clear-code.com/contact/?type=groonga"|URL:https://www.clear-code.com/contact/?type=groonga>))
510
+
511
+ = 最後に
512
+
513
+ ご静聴ありがとうございました
@@ -0,0 +1,5 @@
1
+ @title_slide_title_font_size = @large_font_size
2
+
3
+ @groonga_product = "pgroonga"
4
+
5
+ include_theme("groonga")
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-komainu8-postgresql-conference-japan-2019
3
+ version: !ruby/object:Gem::Version
4
+ version: 2019.11.15.0
5
+ platform: ruby
6
+ authors:
7
+ - 堀本泰弘
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-11-18 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
+ PostgreSQL で使用できる全文検索の拡張に PGroonga という高速で高性能な拡張があります。 PGroonga は、全言語対応の超高速全文検索機能を PostgreSQL で使えるようにする拡張で、 安定して高速で、かつ高機能(同義語、表記ゆれや異字体への対応、類似文書検索などが使えます)です。
43
+
44
+ Amazon RDS は Amazon がクラウド上で提供する RDBS サービスで、データベースのインストールや パッチ適用、スケールアウト、バックアップなどを Amazon が面倒をみてくれるため、 運用上の手間を大幅に減らすことができます。
45
+
46
+ Amazon RDS は、とても便利なのですが、拡張機能を自由にインストールすることができません。 以下の URL の一覧にある拡張しか使えません。
47
+ https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.11x
48
+
49
+ PGroonga も使えないため、日本語を始めとする多言語対応の超高速全文検索機能を Amazon RDS では使うことができません。
50
+
51
+ そこで、PostgreSQL 10 から使えるようになった、ロジカルレプリケーションと Amazon EC2 上にインストールした PostgreSQL と PGroonga を使って RDS のメリットである、 運用の負担を少なくしつつ、PGroonga を使用して高速で高機能な全文検索ができるような構成を考えました。
52
+
53
+ 本発表では、どのような構成で Amazon RDS のメリットを活かしつつ、Amazon EC2 上で PGroonga を使った全文検索ができるのかを紹介します。
54
+ email:
55
+ - horimoto@clear-code.com
56
+ executables: []
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - ".rabbit"
61
+ - Images/1.png
62
+ - Images/2.png
63
+ - Images/3.png
64
+ - Images/4.png
65
+ - Images/5.png
66
+ - Images/6.png
67
+ - Images/7.png
68
+ - Images/8.png
69
+ - Images/9.png
70
+ - Images/Amazon_RDS.png
71
+ - Images/Amazon_RDS_backup.png
72
+ - Images/Amazon_RDS_hw_change.png
73
+ - Images/Amazon_RDS_optimization.png
74
+ - Images/Amazon_RDS_replication.png
75
+ - Images/Amazon_RDS_scaling1.png
76
+ - Images/Amazon_RDS_scaling2.png
77
+ - Images/Amazon_RDS_structure.png
78
+ - Images/PostgreSQL_logo.3colors.120x120.png
79
+ - Images/Self-introduction.png
80
+ - Images/can_not_install.png
81
+ - Images/element_pgroonga.png
82
+ - Images/elements1.png
83
+ - Images/elements2.png
84
+ - Images/elements3.png
85
+ - Images/logical_replication1.png
86
+ - Images/logical_replication2.png
87
+ - Images/logical_replication_EC2_destroy.png
88
+ - Images/logical_replication_EC2_new.png
89
+ - Images/logical_replication_cannot_search.png
90
+ - Images/logical_replication_load_barance.png
91
+ - Images/logical_replication_load_up.png
92
+ - Images/logical_replication_read_only.png
93
+ - Images/logical_replication_slow.png
94
+ - Images/logical_replication_write_only.png
95
+ - Images/pgroonga_sql.png
96
+ - Images/pgroonga_vs_pg_bigm.png
97
+ - Images/search-pgroonga-pg-bigm.pdf
98
+ - Images/structure1.png
99
+ - README.md
100
+ - Rakefile
101
+ - config.yaml
102
+ - logical-replication-and-full-text-search.rab
103
+ - pdf/postgresql-conference-japan-2019-logical-replication-and-full-text-search.pdf
104
+ - theme.rb
105
+ homepage: https://slide.rabbit-shocker.org/authors/komainu8/postgresql-conference-japan-2019/
106
+ licenses:
107
+ - CC-BY-SA-4.0
108
+ - CC-BY-3.0
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubygems_version: 3.0.3
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: Amazon RDS+EC2+PGroonga+ロジカルレプリケーションを使った低コスト高速全文検索
129
+ test_files: []