98
Amazon Relational Database Service ではじめるPostgreSQL オープンセミナー2014@広島

Osh2014

Embed Size (px)

Citation preview

Page 1: Osh2014

Amazon Relational Database Service

ではじめるPostgreSQL

オープンセミナー2014@広島

Page 2: Osh2014

What is it?

今日、皆さんにお伝えしたいことは2つ

Page 3: Osh2014

What is it?

RDS for PostgreSQLはすぐ始めれます

Page 4: Osh2014

What is it?

ただしデータの扱いは代わりません

Page 5: Osh2014

What is it?

つまりデータはこれからも大切な存在です

Page 6: Osh2014

What is it?

今日はそんなDBのお話をします

Page 7: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 8: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 9: Osh2014

自己紹介

名前:曽根 壮大(そね たけとも)

年齢:29歳(三人の子供がいます)

職場:まほろば工房

所属:日本PostgreSQLユーザ会

技術的にはWeb系でLLとかRDB大好きです

Page 10: Osh2014

自己紹介

名前:曽根 壮大(そね たけとも)

年齢:29歳(三人の子供がいます)

職場:まほろば工房

所属:日本PostgreSQLユーザ会

PBXを作ったりVyattaの使ったりしてます

Page 11: Osh2014

自己紹介

名前:曽根 壮大(そね たけとも)

年齢:29歳(三人の子供がいます)

職場:まほろば工房

所属:日本PostgreSQLユーザ会

中国支部長やってます

Page 12: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 13: Osh2014

PostgreSQLとは

PostgreSQLとは

Page 14: Osh2014

PostgreSQLとは

オープンソースなリレーショナルデータベース

Page 15: Osh2014

PostgreSQLとは

特 徴

Page 16: Osh2014

PostgreSQLとは

高機能・高可用性

特 徴

Page 17: Osh2014

PostgreSQLとは

高機能・高可用性

日本語ドキュメントが豊富

特 徴

Page 18: Osh2014

PostgreSQLとは

高機能・高可用性

日本語ドキュメントが豊富

コミュニティが活発

特 徴

Page 19: Osh2014

PostgreSQLとは

ver. リリース日 主な追加機能

8.4 2009-07-01再帰クエリ, ウィンドウ関数, 列単位のアクセス制御, SQLと関数の性能解析機能

9.0 2010-09-20レプリケーション, 一括権限変更, 匿名プロシージャ, 64bit Windows サポート, 移動平均, 列/条件トリガ, 一意性制約の遅延, 排他制約

9.1 2011-09-12同期レプリケーション, 外部テーブル, パッケージ管理, UNLOGGEDテーブル, 更新可能なWITH句, 近傍検索, SELinux権限制御

9.2 2012-09-10インデックスオンリースキャン, カスケードレプリケーション, JSON型, 範囲型

9.3 2013-09-09マテリアライズドビュー, 外部テーブルへの書き出し, イベントトリガ, データページ・チェックサム, LATERAL句

Page 20: Osh2014

PostgreSQLとは

ビックデータ

Page 21: Osh2014

PostgreSQLとは

データマイニング

Page 22: Osh2014

PostgreSQLとは

データサイエンス

Page 23: Osh2014

PostgreSQLとは

PostgreSQLは複数のアプローチを用意します

Page 24: Osh2014

AWS&RDSとは

AWS&RDSとは

Page 25: Osh2014

AWS&RDSとは

Amazon Web Servicesの略語です

AWS

Page 26: Osh2014

AWS&RDSとは

つまりAmazonが提供するIaaSです

AWS

Page 27: Osh2014

AWS&RDSとは

Relational Database Service

RDS

Page 28: Osh2014

AWS&RDSとは

AWS上でRDBを提供するサービスです

RDS

Page 29: Osh2014

RDS for PostgreSQLとは

RDSでPostgreSQLを構築します

Page 30: Osh2014

RDS for PostgreSQLとは

百聞(100説明)は一見(1デモ)に如かず

Page 31: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 32: Osh2014

RDS for PostgreSQLの使い方

デモなぅ

Page 33: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 34: Osh2014

データについて

データの大切なこと

Page 35: Osh2014

データについて

データを消したら元に戻せません

Page 36: Osh2014

データについて

データを消したら元に戻せません

データの変更は大変です

Page 37: Osh2014

データについて

データを消したら元に戻せません

データの変更は大変です

データの追加は可能です

Page 38: Osh2014

データについて

つまりDB設計の新規作成は簡単です

Page 39: Osh2014

データについて

しかしDB設計の変更は大変です

Page 40: Osh2014

データについて

なぜか?

Page 41: Osh2014

データについて

仕様変更の際には

Page 42: Osh2014

データについて

データを消せない

Page 43: Osh2014

データについて

データを消せない

データを変更できない

Page 44: Osh2014

データについて

データを消せない

データを変更できない

データの追加で対応

Page 45: Osh2014

データについて

データを消せない

データを変更できない

データの追加で対応

Page 46: Osh2014

仕様変更の対応について

択一回答

例 Webアンケート

Page 47: Osh2014

仕様変更の対応について

例 Webアンケート

Page 48: Osh2014

仕様変更の対応について

テーブル構造

例 Webアンケート

Page 49: Osh2014

仕様変更の対応について

例 Webアンケート

Page 50: Osh2014

仕様変更の対応について

ここに「択一回答」があるじゃろ?

( ^ω^) ←クライアント

⊃ 択一回答⊂

例 Webアンケート

Page 51: Osh2014

仕様変更の対応について

これを

( ^ω^)

⊃) 択一回答 (⊂

例 Webアンケート

Page 52: Osh2014

仕様変更の対応について

こうして…

( ^ω^)

≡⊃⊂≡

例 Webアンケート

Page 53: Osh2014

仕様変更の対応について

こうじゃ…

( ^ω^)

⊃ 複数回答 ⊂

例 Webアンケート

Page 54: Osh2014

仕様変更の対応について

例 Webアンケート

Page 55: Osh2014

仕様変更の対応について

どのように対応するか

例 Webアンケート

Page 56: Osh2014

仕様変更の対応について

対応 1

CSV区切りで入れる

例 Webアンケート

Page 57: Osh2014

仕様変更の対応について

例 Webアンケート

Page 58: Osh2014

仕様変更の対応について

問題点

検索が難しい

例 Webアンケート

Page 59: Osh2014

仕様変更の対応について

問題点

検索が難しい

集計が難しい

例 Webアンケート

Page 60: Osh2014

仕様変更の対応について

問題点

検索が難しい

集計が難しい

更新が難しい

例 Webアンケート

Page 61: Osh2014

仕様変更の対応について

対応 2

選択肢の数だけカラムを増やす

例 Webアンケート

Page 62: Osh2014

仕様変更の対応について

例 Webアンケート

Page 63: Osh2014

仕様変更の対応について

問題点

項目追加の度に列が増える

例 Webアンケート

Page 64: Osh2014

仕様変更の対応について

問題点

項目追加の度に列が増える

データの可読性の低下

例 Webアンケート

Page 65: Osh2014

仕様変更の対応について

問題点

項目追加の度に列が増える

データの可読性の低下

データの整合性を担保するのが難しい

例 Webアンケート

Page 66: Osh2014

仕様変更の対応について

アンチSQLパターン

例 Webアンケート

Page 67: Osh2014

仕様変更の対応について

Page 68: Osh2014

仕様変更の対応について

DBに関する設計のアンチパターン

SQLアンチパターンとは

Page 69: Osh2014

仕様変更の対応について

※ただしMySQLベース

SQLアンチパターンとは

Page 70: Osh2014

仕様変更の対応について

ですが多くのRDBに共通します

SQLアンチパターンとは

Page 71: Osh2014

仕様変更の対応について

SQLアンチパターン

Page 72: Osh2014

仕様変更の対応について

例1) ジェイ・ウォーク

SQLアンチパターン

Page 73: Osh2014

仕様変更の対応について

例1) ジェイ・ウォーク

例2)メタデータトリブル

SQLアンチパターン

Page 74: Osh2014

データについて

データを消せない

データを変更できない

データの追加で対応

Page 75: Osh2014

仕様変更の対応について

データが積み重なってしまうと

後から変更が難しい

SQLアンチパターン

Page 76: Osh2014

データについて

どんなにきれいなコードでも

データが汚いとリファクタリングや運用が大変

Page 77: Osh2014

仕様変更の対応について

対応 3

正規化する

例 Webアンケート

Page 78: Osh2014

仕様変更の対応について

Page 79: Osh2014

仕様変更の対応について

最初から正規化していえば両対応

Page 80: Osh2014

仕様変更の対応について

集合でデータを表現する

Page 81: Osh2014

仕様変更の対応について

変更に強くなる

Page 82: Osh2014

仕様変更の対応について

PostgreSQLには別のアプローチがあります

Page 83: Osh2014

仕様変更の対応について

対応 4

配列型

例 Webアンケート

Page 84: Osh2014

仕様変更の対応について

Page 85: Osh2014

仕様変更の対応について

配列型

例 Webアンケート

Page 86: Osh2014

仕様変更の対応について

配列型

INDEXが効く

例 Webアンケート

Page 87: Osh2014

仕様変更の対応について

配列型

INDEXが効く

柔軟な検索

例 Webアンケート

Page 88: Osh2014

仕様変更の対応について

配列型

INDEXが効く

柔軟な検索

任意の更新も出来る

例 Webアンケート

Page 89: Osh2014

仕様変更の対応について

銀の弾丸ではない

Page 90: Osh2014

あじぇんだ

1 自己紹介

2 RDS for PostgreSQLとは

3 RDS for PostgreSQLの使い方

4 データについて

5 まとめ

Page 91: Osh2014

まとめ

RDS for Postgresはすぐ出来る

Page 92: Osh2014

まとめ

DB設計は大事

Page 93: Osh2014

RDS for PostgreSQLの使い方

このデモの詳細はこちらにまとめてあります

AWSのPostgreSQL(RDS)を

使えるようになるまでの手順

http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html

Page 94: Osh2014

Postgresの使い方について

このデモの詳細はこちらにまとめてあります

Webアプリケーションを作るときに

知ってると嬉しいPostgreSQLの使い方

http://soudai1025.blogspot.jp/2013/12/webpostgresql.html

Page 95: Osh2014

DBを極めるには

沢山の設計を見る

Page 96: Osh2014

DBを極めるには

中国地方DB勉強会

http://dbstudychugoku.github.io/

Page 97: Osh2014

まとめ

良い環境は良い素質を育てる

Page 98: Osh2014

ご静聴ありがとうございました。