38
1. PostgreSQL9.2 リリリリ • 2012/09/10 リリリリリ • リリリリリリリリリリリリリリリリリリリリ• JSON リリリリリリリリリリリ リリリリリリリリリリリリリリリリリリリリリリ 、。 Index-only リリリリCPU リリリリリリリリリリリ• リリリリリ 35 リリリリリリリリリ リリリ 4 リリ リリリリリリリリリリリリリ )、 Index-only リリリリ リ 2 20 リ リリリリリ )、 1 リ 4000 リリリリリリリリリ 5リ リリリリ )。 • リリリリリリリリ リリリリリリリリリリリリリリリリリリリ リリリリリリリリリリリリリリリ ・、。 • リリリリリリリリリリリリリリリリリリリリリリリリリリリリリ 【】 http://www.sraoss.co.jp/technology/postgresql/9.2 /verification_report.php

1. PostgreSQL9.2 リリース

Embed Size (px)

DESCRIPTION

1. PostgreSQL9.2 リリース. 2012/09/10 にリリース マルチコアにおけるスケーラビリティが向上。 JSON をネイティブサポートし、インデックスやレプリケーションの機能を強化。 Index-only スキャン、 CPU 消費電力削減などを実現。 最大で毎秒 35 万件のリードクエリ(従来の 4 倍強)、データウェアハウスクエリの Index-only スキャン(同 2 ~ 20 倍)、最大で毎秒 1 万 4000 件のデータ書き込み(同 5 倍)に対応。 カスケーディング・レプリケーションが加わったことにより、水平方向の拡張性が強化された。 - PowerPoint PPT Presentation

Citation preview

Page 1: 1. PostgreSQL9.2  リリース

1. PostgreSQL9.2 リリース• 2012/09/10 にリリース• マルチコアにおけるスケーラビリティが向上。• JSON をネイティブサポートし、インデックスやレプリケーションの

機能を強化。 Index-only スキャン、 CPU 消費電力削減などを実現。• 最大で毎秒 35 万件のリードクエリ(従来の 4 倍強)、データウェア

ハウスクエリの Index-only スキャン(同 2 ~ 20 倍)、最大で毎秒 1 万4000 件のデータ書き込み(同 5 倍)に対応。

• カスケーディング・レプリケーションが加わったことにより、水平方向の拡張性が強化された。

• いくつかの機能について少し掘り下げて説明していきます。

【参考】 http://www.sraoss.co.jp/technology/postgresql/9.2/verification_report.php

Page 2: 1. PostgreSQL9.2  リリース

1-1. Index-only スキャン• Oracle 、 MYSQL 、 DB2 などには既に実装されてい

る機能• Index に格納されたデータのみを検索する場

合、 Index からテーブルを参照しなくても結果を返却できる

• その分、性能向上が見込める→Oracle だと B-Tree のみスキャン対象になるっぽい• B-Tree Index 知らない人は自分で調べてください。【参考】 http://www.shift-the-oracle.com/index/btree-

index.html

Page 3: 1. PostgreSQL9.2  リリース

1-2. カスケーディング・レプリケーション

• PostgreSQL9.0 から通常のレプリケーション(非同期)は実装された

• 9.2 でカスケーディング・レプリケーション対応

• 簡単に説明するとレプリケーションされるスタンバイ機にさらにレプリケーションできるスタンバイ機を設定可能

• 以前はプライマリからのみスタンバイ機を設定が可能

Page 4: 1. PostgreSQL9.2  リリース

1-3. JSON 型• BETA3 から日本語対応• JSON 型をカラムにしていると JSON 形式で登録できる→ 検索できないのでどういった意味が??誰か使い方調べ

て教えてください。• row_to_json 関数が便利→SELECT row_to_json(row(id, name)) FROM EMP;→{“f1”:4649, “f2”:”moguro”}• キーが自動に付与?使い勝手が・・・。→SELECT row_to_json(tmp) FROM→(SELECT id, name FROM EMP) tmp→ {“id”:4649, “name”:”moguro”}

Page 5: 1. PostgreSQL9.2  リリース

1-4. Range Types ( 範囲型 )

• 文字通り範囲を指定できる型• 今まで日付の From 、 To は 2 カラム必要だっ

たのに 1 カラムで対応できる• 使用できる型は int4range 、 int8range 、

numrange 、 daterange 、 tsrange (timestamp) 、 tstzrange (timestamptz)

• よく調べていないので下記参照してください【参照】

http://postgresql.g.hatena.ne.jp/pgsql/20120416

Page 6: 1. PostgreSQL9.2  リリース

2. BYOD

• 「 Bring Your Own Device 」の略で私物端末を業務利用すること

• 最近、いろいろな記事などで賑わっている!• スマートフォン普及に伴い、増えてきている• 会社としても経費削減が見込める• ただし、私物端末を業務で使うとセキュリティ事故

のリスクあり• 各企業がいろいろな対策を行っている• 例えば社内システムに私用端末から繋げる場合、位

置情報を取得して社内以外からアクセス不可

Page 7: 1. PostgreSQL9.2  リリース

3. JQuery 関連• 本日、石○氏が目からうろこの「 JQuery

Mobile 」の説明があります。• JQuery ライセンスの統一• JQuery Mobile1.2 新機能• JQuery Mobile 絡みで少し補足します→ 私は簡単な説明ですけど、石○氏は超大

作らしいですよ!

Page 8: 1. PostgreSQL9.2  リリース

3-1. JQuery ライセンス• 今まで「 MIT 」ライセンスと「 GNU GPL 」を

サポートしていた• 今後は GPL を廃止し、 MIT ライセンスに統一• MIT ライセンスの特徴(1)無料で無制限に扱うことが可能(2)著作権表示および本許諾表示をソフトウェア

のすべての複製または重要な部分に記載(3)作者または著作権者は、ソフトウェアに関し

てなんら責任を負わない

Page 9: 1. PostgreSQL9.2  リリース

3-2. JQuery Mobile1.2 新機能• 2012/10/02 に JQuery Mobile1.2 発表• 主な新機能は以下の通り(1) Popup(2) Collapsible Lists(3) Listview Autodividers・・・などなど• 新機能はきっと石○氏が説明してくれるでしょう・・・• 以下にデモ画面を見れるサイトがあります【参照】 http://jquerymobile.com/demos/1.2.0/

Page 10: 1. PostgreSQL9.2  リリース

3-2-1. Popup

• せっかくなので一つだけ説明• ツールチップやメニューなどを Popup できる• Popup画面以外をクリックすると閉じる• ダイアログと同じような感じ• Popup を表示する元は「 data-rel=“popup” 」

を記述する• Popup画面は「 data-role=“popup” 」で指定• では、ソース例を見ていきましょう

Page 11: 1. PostgreSQL9.2  リリース

3-2-1. Popupソース// ポップアップでツールチップを表示させる<a href=“#popupTip” data-rel=“popup” data-role=“button” data-inline=“true”>ツールチップ

</a><div data-role="popup" id=“popupTip" class="ui-content" data-theme="e”> これは Tooltip ですよ</div>

// ポップアップでメニューを表示させる<a href="#popupMenu" data-rel="popup" data-role="button" data-inline="true">Menu</a><div data-role="popup" id="popupMenu" data-theme="a"> <ul data-role="listview" data-inset="true“ data-theme="b"> <li data-role=“divider” data-theme=“a“> お食事メニュー </li> <li><a href=“xxxxx.html”> ラーメン </a></li> <li><a href=“yyyyy.html”> チャーハン </a></li> </ul> </div>

Page 12: 1. PostgreSQL9.2  リリース

3-3. 脆弱性• 1.2 以前の JQuery Mobile では読み込んでいるだけ

で脆弱性( XSS )を埋め込んでしまうので注意!• 1.2 Beta では脆弱性( XSS )が改修されたのに

1.2RC1/RC2 では別で脆弱性が・・・。• プロジェクトで使用する時は注意してください。→1.2 安定版では直っているのかな?• 詳しく説明してくれているサイトがありますので興味ある方はどうぞ

【参考】 http://masatokinugawa.l0.cm/2012/09/jquery-mobile-location.href-xss.html

Page 13: 1. PostgreSQL9.2  リリース

4. T ポイントツールバー• ブラウザにアドオンするツール• 検索するだけで T ポイントがたまる• このツールが Web閲覧履歴をサーバへ送信→ 利用規約に記載していますが・・・。• SSL 通信でもパラメータを取得可能• クレーム多数・・・。まあそうですよね。→ サーバへの履歴送信やめたそうです・・・。• ツールを使用するときはパケットキャプチャー

必須ですかね・・・。

Page 14: 1. PostgreSQL9.2  リリース

5. Android4.1

• Android4.1 ( Jelly Beans )の新機能→2012/06 の Google I/O で発表された• だいぶ経っているので新機能っていうと・・・。• 日本でも 4.1 の Nexus7 ( 16GB )が発売→ 今購入して、クレジット登録すると 2千円貰える

よ• 新機能が沢山あるので気になった 3点を紹介(1) Google Now(2) Notification の拡張(3) Android Beam

Page 15: 1. PostgreSQL9.2  リリース

5-1. Google Now

• パーソナルアシスタント機能• Android 上のカレンダー、スケジュール、 GPS等から予測して情報を表示

• 例えば「 2012/10/03 10:00 羽田空港」とカレンダーに登録しておくと目的地への所要時間、空港に到着すると便情報などが表示

• 音声などにも反応• まあ、 i コンシェルですね・・・。• なんか、電池に減りがさらに悪くなりそうな・・・。

Page 16: 1. PostgreSQL9.2  リリース

5-2. Notification の拡張• 今までは通知内容の表示のみ• 拡張できることによってボタンやアイコンを表示できるようになる

• 「 Notification.Builder 」に設定→ 例えば「 setLargeIcon() 」などでアイコン設定• そこにアクションを設定できるため、通知内容からアクションを起こせる。つまり、わざわざアプリを起動しなくてもいい!

→ アクションを追加するには「 addAction() 」

Page 17: 1. PostgreSQL9.2  リリース

5-3. Android Beam

• 何かビームってかっこいい・・・。• NFCベースの通信で実現• NFC 対応携帯をお互いにタッチすることでアプ

リ情報を共有できる→ 電話帳、ブラウザの URL など• Bluetooth 経由でデータを転送することも可能• やり取りは「 NDEF メッセージ」を使用する【参照】 http://developer.android.com/guide/

topics/connectivity/nfc/

Page 18: 1. PostgreSQL9.2  リリース

5-3-1. NFC

• さすがに知らない人はいないと・・・• Sony と Philips 社が開発した規格• 2003/12 も ISO/IEC IS 18092 の国際標準に

なっている• NFC とは FeiCa などの非接触 IC カードと互換性がある近距離無線通信規格です

→ 「 Near Field Communication 」の略• 13.56MHz の周波帯で 10cm程度の距離を

100 ~ 400kbps の双方向通信が可能

Page 19: 1. PostgreSQL9.2  リリース

5-3-2. NFC 用途• カードシュミレーション機能→駅などで定期、お店の支払いカードなど他規格と

の連携• リーダ・ライタ機能→ ポスターなど IC カード、タグなどから情報読み取

ることが可能• 端末間通信( P2P )→携帯端末同士の連絡先交換など• NFC 端末間ペアリング【参考】 http://www.nfc-world.com/about/02.html

Page 20: 1. PostgreSQL9.2  リリース

5-3-3. NFC 端末間ペアリング• 大きいデータを通信するときに利用• ペアリングだけを NFC で行い、大きいデータ通信を「 Bluetooth 」、「 Wifi 」などで行うことが可能である

• この処理を「ハンドオーバー」と言う• 例えば駅などで Wifi接続するとき、 SSID と暗号

キーを事前登録しますがアクセスキー登録済のNFC 端末を用意しておけば OK となる

• また、近距離でしか通信できないため、盗聴の可能性が限りなく低い

Page 21: 1. PostgreSQL9.2  リリース

5-4. Titanium 3.0

• 4.1 新機能ではないけど、 Android4.1 に対応・・・。• Titanium 3.0 が 10/21 ~ 10/23 に開催される

「 CODESTRONG 」で発表されるらしい→ 【 URL 】 http://codestrong.com/• 2.0 までは標準のフレームワークが無かった→ 自由に記述できるが統一性が無い• 3.0 以降では MVC フレームワーク「 Alloy 」が標準に

なる• 実機でのリモートデバックに対応(すばらしい)• コマンドラインツール「 Titanium Studio 」を用意

Page 22: 1. PostgreSQL9.2  リリース

5-4-1. Alloy• Titanium Mobile の開発元「 appcelerator 」が GitHub で提供• RoR っぽい MVC フレームワーク• npm でインストールして、「 alloy new 」でセットアップ→ 「 Play 」なんかと同じ感じですね。• 構成は以下のような感じ• app/controllers/配下にコントローラ( JS )• app/views/配下にビュー( HTML )• app/models/配下にモデル(モデル定義の JSON )• app/config/配下に設定(設定ファイルも JSON )【参考】 http://www.slideshare.net/donayama/appceleratoralloy

Page 23: 1. PostgreSQL9.2  リリース

5-5. J2ObjC

• スマートフォン絡みということで・・・• Google が公開したオープンソース• Javaソースを Objective-Cソースに変換するツール

• JavaSE6 をサポート• ただし、 GUI は作成することはできない• 開発ツールはサポートする予定は無い• 興味があれば自分で調べてください→ それほど興味がわかなかったので・・・

Page 24: 1. PostgreSQL9.2  リリース

5-6. Selenium WebDriver

• これもスマートフォン絡みということで・・・• Web アプリケーションのテスト自動化サポートツール

• テストコードは Java 、 C# 、 Python 、 Ruby で記述可能

• iPhone 、 Android を含む複数ブラウザ対応• テストソースは容易に実装可能• 画面の崩れなどはわからないので繰り返し行うよ

うなシナリオ試験などに有効なのかな?• JUnit と組み合わせると結果確認も自動化

Page 25: 1. PostgreSQL9.2  リリース

5-6-1. Selenium WebDriver(サンプル )

• 画面 A表示(①)、 text(name=“xxx”) に文字入力(②)、サブミット(③)までの流れ

WebDriver driver = new FirefoxDriver();//④driver.get(“http://www.test.com/test”);//①WebElement element =driver.findElement(By.name(“xxx”)); //②element.sendKeys(“sekainoHD”);//②element.submit(); //③driver.quit(); //⑤※④、⑤はブラウザのオープン、クローズ

Page 26: 1. PostgreSQL9.2  リリース

6. WebPlatform.org

• Web Platform Docs というプロジェクト• Microsoft 、 Google 、 Apple 、 Adobe 、 Fa

cebook などが参加企業• Web プログラミングでオープンかつ標準づくりを目指しているらしい

• メインは HTML5 、 CSS など【参考】 http://www.webplatform.org/

Page 27: 1. PostgreSQL9.2  リリース

7. 今月の Scala

• わが社一押し?の「 Scala 」情報です• 毎月、徐々に慣れていくために Scala 情報を展開していこうかと思います

• 日経コンピュータ 9月号に関数型特集が掲載→次の主役って題名。名古屋大学等で Scala を使用したシステムを説明• 今月は 2 トピックス(1) Developer Contest開催( Typesafe 社)(2)命令型スタイルと関数型スタイル

Page 28: 1. PostgreSQL9.2  リリース

7-1. Developer Contest

• Scala プログラミングのコンテストです• 提出期限が 11月末までですが・・・• 賞金は一位が $1,000 です!• 「 Typesafe Stack can do 」と記述されているので

「 Typesafe Stack 」を使うことが条件っぽい• 「 Typesafe Stack 」とは Scalaベースで「 Akka 」、

「 Play 」などが含まれるオープンソースのプラットフォーム

【参照】 http://www.typesafe.com/resources/developer-contest

Page 29: 1. PostgreSQL9.2  リリース

7-1-1. Akka• イベント駆動ミドルウェアフレームワーク• 分散アプリケーションを作成するのに向いている( Java 、 Scala で開発可能)

• スレッド、ロック、非ブロッキング IO などを意識することなく実装できる

• 実装する部分は Actor などを使用して、メッセージの送受信を行う• Akka2.0 では Scala2.10標準の Future の実装が行われている→Scala2.9 の Future ( Actor 用)ではない【 Akka を試しているソース】

http://www.brainsellers.com/blog/inastream/2011/08/akka.html【 Future を試しているソース】

http://modegramming.blogspot.jp/2012/09/scala-tips-scala-2104-future2.html

Page 30: 1. PostgreSQL9.2  リリース

7-1-2. Play

• 社内システムで使用する予定のフルスタックフレームワークです

• MVCモデルを実現し、「設定より規約」を重視している

• Scala 用ではビルドツールに sbt を採用• 「 Iteratee I/O 」を実装しているため、追加設

定無しで WebSocket や Comet などが可能【 Iteratee I/O の説明】 http://d.hatena.ne.jp/tanakh/20100824#p1

Page 31: 1. PostgreSQL9.2  リリース

7-2.命令型スタイルと関数型スタイル

• Java 、 C++ などは命令型• Scala は命令型、関数型の両方可能• 例えば for 式を使う場合、関数リテラルを

使用することができる• まあ、何を言っているか意味わからない

と思うのでソースで説明します• 配列 args すべてを標準出力します

Page 32: 1. PostgreSQL9.2  リリース

7-2-1. 命令型スタイルwhile (i < args.length) { println(args(i)) i += 1}• 命令型の説明のためであり、 Scala で推奨

される記述方法ではない• インデントは 2 つが推奨されているらし

Page 33: 1. PostgreSQL9.2  リリース

7-2-2. 関数型スタイルargs.forearch(println)• この()内に関数を関数リテラルと呼ぶ• 省略しすぎなので以下の記述もできる【パターン 1 】args.forearch(arg => println(arg))【パターン 2 】args.forearch((arg:String) => println(arg))

Page 34: 1. PostgreSQL9.2  リリース

8. JavaEE7

• JavaOne Conference が 9/30 ~ 10/4開催• JavaEE7 は 2013/4 リリース予定• 噂されたクラウド対応は見送りっぽい• HTML5 対応として「 WebSocket 」、 HTML5 ではないが

JSON サポートなどが含まれる• JavaEE8 以降の対応として PaaS 、 NoSQL などが予定され

ている→NoSQL は JPA からアクセス可能する• HTML5 強化として、 Avatar プロジェクトとして進めて

いる→詳しい記事みつからない、誰か教えて・・・

Page 35: 1. PostgreSQL9.2  リリース

8-1. WebSocketソース• Java API for WebSocket1.0 のサンプル@webSocketEndPoint(path=“/ws/test”)public class WsServer { @WebSocketOpen public void onOpen(Session peer) { // 処理 }}

Page 36: 1. PostgreSQL9.2  リリース

8-2. JSONソース• Java API for JSON 1.0 のサンプルJsonObject json = new JsonBuilder().beginArray(“emp”).beginObject().add(“No”, “1”).add(“Name”, “John”).beginObject().add(“No”, “2”).add(“Name”, “Mark”).beginObject().add(“No”, “3”).add(“Name”, “HD”).endObject().build();

Page 37: 1. PostgreSQL9.2  リリース

8-3. Apache TomEE• AP サーバ繋がりでついでに説明• 10/8 に「 Apache TomEE1.5 」がリリース→JavaEE6 ですけど・・・• TomEE とは

Tomcat 、 OpenWebBeans 、 OpenEJB 、 MyFaces 、 Bean Validation などで構成

→正確にはベースにしているだけっぽい• Tomcat との違いは使っている Jar などが異なる(追加 or 削除している)

→詳しくは以下の URL に載っている【参照】 http://blog.teamextension.com/comparing-apache-

tomcat-and-tomee-913

Page 38: 1. PostgreSQL9.2  リリース

8-4. Apache Lucene

• いつの間にか Apache 繋がりに・・・• 10/12 「 Apache Lucene4.0 」がリリース• 同時に「 Apache Solr4.0 」もリリース• Lucene とは Java で実装できる全文検索フレームワーク→ 日本語検索用のアナライザ( JapaneseAnalyzer )も別途用意されている

• Solr とは Luceneベースのエンタープライズ対応の検索サーバー

→4.0 は NoSQL 検索プラットフォーム• 個人的には凄い興味が 10年前から・・・