Hatena::ブログ(Diary)

日々の記録 別館

2015-02-01

第七回 中国DB勉強会

ということで、我が故郷である島根県松江市で2015-01-31に開催された、第七回 中国DB勉強会へ行ってきましたよ。

発端

  • 今回の勉強会、前回の第6回中国DB勉強会 in 広島の懇親会で、そーだいさん(@soudai1025)と「勉強会島根で開催したことないんだよねー」「私島根出身だから、島根でやるなら行ってもいいよ」みたいな話があったのが発端。
  • PGCon.jpの後にも同じ話があって、しかもそのときに、自分が話すってことになったらしい。
    • 酔ってると何言っちゃうかわかんないよねー てへぺろ(・ω<)

概要

f:id:nuko_yokohama:20150201142755j:image:medium

  • 来場者は28人とか行ってたかなー。そーだいさんが、しきりに「島根の集客すごい」と感心している。
    • さすがはルビー殺伐都市・・・じゃなくて"Ruby City MATSUE"というところか。
    • というか、梶山さんや玉川さんのようなビッグネームを講師に呼んでるというのもあるからな・・・。
    • 講演者以外のほとんどのメンバは島根県の人たち。
  • さっそくtoggterまとめがつくられていた。第七回 中国地方DB勉強会 in 松江 - Togetter

発表スライド

講演超要約


ドキュメント指向DBとしてのPostgreSQL
  • 発表者はぬこ。
  • 途中、PostgreSQL vs MongoDBの部分で、玉川さんとやりとり。
    • 玉川さん曰く「MongoDBについてちょっと甘い評価になってますねー」
    • MongoDBの並列性はそんなに高くない。Aggregate-FWは制約が多い&使い方が難しい的なコメント。

MySQL最新事情
上下水道インフラ監視/制御システムにおけるPostgreSQL運用事例
  • 発表者は廣江さん。地元枠その1。
  • 最初に上下水道の監視サービスの話。
    • インフラ周りのシステムって高可用性が要求されるから大変だよなあと。
  • 前半は、PostgreSQL 8.3でさまざまなレプリケーションを試した苦労談。
  • 後半はシステムの一部で使っているRiakの紹介。Riak vs MongoDB, ファイッ!
  • QAタイムに、このシステムのユーザさんが乱入!感謝のお言葉を述べられた。

Amazon Redshiftを使ったデータ解析
AWSデータベースサービス全部紹介
  • 発表者は玉川さん(tamagawa_ryuji)。
    • 玉川さんが翻訳した、"MongoDB イン・アクション"には今回の発表でもいろいろ参考にしました。
  • 前半はAWSデータベース系サービス(RDS, DynamoDB, ElasticMapReduce、周辺サービスなど)
  • 後半はGoogle Big Queryの話。
  • 前半・後半とも濃くて面白かった!

クロージング




ここから詳細編。

ドキュメント指向DBとしてのPostgreSQL

他の人のツイートなんかを参考に。

  • @nishidayuya 列のないテーブルってどういう使い方をするんだろう
  • @soudai1025 nextval()の性能が向上したけど一つのトランザクションで1000とか呼ばないと実感出来ないので実務で感じる事は少ない。
  • @soudai1025 PostgreSQLJSON型の何が嬉しいって式INDEXが使えることだよね
  • @nishidayuya JSON型のカラムの特定のプロパティに対してインデックスが張れる 面白い
  • @soudai1025 データをrow_to_json()でレコードからJSONに変更出来るの便利。
  • @Uemmra3 JSONからPostgreSQLへの変換json_each_textは、1段階しか展開してくれない。
  • @tamagawa_ryuji 純粋のJSONの扱いに限れば、まだMongoDBのほうが柔軟というか、制約が少ないかなあ。
  • @soudai1025 PostgreSQLのJSONBで大事なのは値の内包を検索できる上にGINインデックスが効くのでめっちゃ速い。
  • @tamagawa_ryuji ちなみにPostgreSQLJSON拡張って、OracleJSON関連の機能とは全く互換性なく開発されてる感じなんですよね?
  • @soudai1025 GINインデックス転置インデックス)は重複があるようなデータに対するインデックス全文検索配列型で使っても強力。
  • @soudai1025 プロパティが可変のデータをJSONとして保存して使えばDB変更せずにデータ変更に対応出来る。
  • @soudai1025 いつになったらmerge文がPostgreSQLに実装されるんですか!(バンバン
  • @tamagawa_ryuji MongoDBとの比較、データベースサイズがMongoDBの方がずっと大きくなってるのは意外ですねえ。後はまあ、そんなもんかも。ただ、インデックスの使いこなしなどでいろいろ変わると思いますが。 #ChugokuDB via Twitter Web Client
  • @tamagawa_ryuji レプリケーションは、特にMongoDBは扱いやすいです。 集計処理、並列処理はそんな強くないっすー。
  • @soudai1025 原田さん「MongoDBの方が並列処理や集計処理は有利」玉川さん「MongoDBもどっちも制約があるし癖もあるからいまいちですよ。」触った事のある人の意見は貴重やね!
  • @tamagawa_ryuji 今日の話をお聞きした限りでは、構造がある程度複雑なJSONだと、現状のPostgreSQLはちょっとつらいかな、という感じがしますね。



MySQL最新事情

MySQL JSON UDFs
  • 最初に(こっそり開発されているという)MySQL JSON UDFsの話。MySQLでもJSON対応を開始したのか。
  • @tamagawa_ryuji 次々にドキュメントDBとしてのほにゃららという発表が続いて、なんか攻めを受けているような気がするのはなぜだろう…
  • ただ、関数による処理のみ。格納はテキストベース。インデックス化はできないなど、まだ開発途中という感じか。

MySQLの歴史

-

MySQL 5.6
MySQL5.7
その他
  • MySQL workbenchのクエリ整形機能っぽいの、pgAdminにあったかなあ・・・?(psqlしか使わないからわからない)
  • クエリプランのビジュアライザの話
  • MySQL Fabric おぷすたと統合した高可用性&シャーディグ機構。MongoDBもレプリカセット+シャーディグみたいな感じか?

Q&A
  • QA. MySQLクローンプロジェクトはリファクタに追従出来るのか??プロジェクト次第?MariaDBは5.6時点で互換性がないから・・・(察し)
  • QA. MySQL互換性の件。5.7では互換性は担保されるの??SQLモードが同じなら大丈夫だろう。
    • というかSQLモードってのがMySQLにはあるのか。そういえばOracleでもANSIモードとかあったっけ。



上下水道インフラ監視/制御システムにおけるPostgreSQL運用事例

  • 上下水道の監視サービスの話。異常発生時に担当者にプッシュ通知など。全国で利用されている。PostgreSQL、Riakを使っている。
  • このシステムはとにかく落ちないように各所を冗長化している。LBも冗長化のために。普段は東京DC、異常時に島根DCへ切り換え。
  • PostgreSQLは8.3、400GB、DBは380個、総テーブルは38000!
  • ユーザ・端末・表示設定や日次月次の集計、故障履歴などをPostgreSQLで管理。

冗長化
Riak
  • もろもろのログや画像、センサのデータなどを保存。
  • MongoDBも選定候補にあったが、運用のしやすさやバージョンアップのしやすさなどでRiakを選定。

Q&A
  • QA. PostgreSQLの最新化は?⇒考えてはいるが・・・
  • ぬこからコメント。PostgreSQL最新版なら、同期SR+非同期SR+Pacemaker構成ではとコメント。
  • OSバージョンアップは⇒フロント以外は手をつけたくない。機器更改タイミングかなと。
  • QAタイムに、このシステムのユーザさんが乱入!感謝のお言葉を述べられた。



Amazon Redshiftを使ったデータ解析

  • 山口さんのAmazon Redshiftを使ったデータ分析の話。
    • モンスターラボの島根開発拠点は、ここテルサ別館なのかw

Redshiftの説明



AWSデータベースサービス全部紹介

AWSデータベースサービス全紹介
  • RDS、DynamoDB、ElasticMapReduce、周辺サービスの話
  • Auroraはプレビューなので今日は細かい紹介なし?
    • AuroraはRDBAWSインフラ・サービスで再創造というコンセプト。
    • MySQLだけSSDやPIOS SSDがない。MySQL RDSユーザをAuroraに移行させたいためではないかという説。
    • レプリケーション機能は各DBMSでもできるけど、運用が大変だからMulti-AZ使おうねという話。
  • DynamoDB/SimpleDB
    • DynamoDBは性能に対して課金。AWSの人=ナニワの商人。
    • DynamoDBはセカンダリインデックス可能。
    • リードライトキャパを指定するとお値段がダイレクトに表示される。親切だけどコワイ! [
    • JSON化も進められている。サツバツ!
    • R/W性能を決めて、課金額を変更できる。オンプレミスでは物理サーバ購入など、なかなかこうはいかない。
    • SimpleDBはAWS的にはオワコン。今は管理GUIすらなくAPIのみ。爆発四散!
  • Elastic MapReduce
  • 周辺サービス
    • Kinesis
    • Lambda(一瞬コンテナが上がってJavascriptが使える)
    • ElastiCache(memcachedやredis)。Lambdaの発想が面白い。
  • AWSアップデートが速いのでAWS公式やclassmethodのサイトをチェックしよう。

BigQuery
  • "Google BigQuery Analysis"の本は3月に発売予定とのこと。
  • BigQueryはOLAP向け。
  • 追記と検索のみ。
  • RDB配列、構造データが扱える。ちょいPostgreSQLっぽい。
  • Google Cloud Storageからもデータインポート可。
  • AdSenceからもデータの受け渡しができる。
    • 米国の様々なサンプル(zipコードなど)もすぐ使える。
  • クエリもWeb IFを使ってブラウザで実行可能。
  • dry-run機能。ある意味、課金的EXPLAIN機能があるってことかw
  • BigQueryはデータ量が少ないとRDBなどより遅いが、データ量が非常に大きくなってもあまり性能が変わらない傾向がある。
  • しかしGoogleといAWSといい、優れたアイディアは優れたインフラから生まれるものなのかなあとも思った。(´・ω・`)
  • BigQueryのハック
    • クエリ実行:コンピューターノードツリーの動的生成、データのノードはフルスキャン。
    • 高速NWや大量リソースのバースト実行があってこそのワザマエ!コワイ!
    • クエリ結果は匿名テーブル(7日間保持)に格納される。匿名テーブルをクエリキャッシュ的に使うという、タツジンのジツもあり。
    • 列指向DBだから、きちんと列指定をした方がコスト的にも実際安い。
    • たぶん、追記性能向上のために、時系列ごとに格納先を分割格納、一週間後にマージみたいなことをやってるんじゃないか説。




いやー、濃いセッションで楽しかった!

斉藤 登斉藤 登 2015/02/04 00:11 すみません。下の方では良いのですが、上の方のモンスター・ラボの山口さんのお名前が違ってますー
修正していただいたら、このコメントは消してもらって構いません。

nuko_yokohamanuko_yokohama 2015/02/05 15:19 あ、すいません。今日、帰宅後に修正します・・・

nuko_yokohamanuko_yokohama 2015/02/05 21:13 修正しました。
指摘、ありがとうございます。>斉藤さん

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/nuko_yokohama/20150201/1422772909
リンク元