MySQLはドキュメントストアのnode.js向けクライアントライブラリConnector/Node.js開発版のマイナーバージョンがありました。今回はドキュメントストアのベースの機能になるJSONデータ型について解説します。PostgreSQLはPostgreSQL9.6.1がリリースされました。PostgreSQL9.1系はEOLのため最後のリリースとなります。Apache Cassandraはバージョン3.10がリリース予定ですが、このバージョンで実装された注目の新機能を紹介します。
[MySQL]2016年11月の主な出来事
製品リリースは、Connector/Node.js開発版のマイナーバージョンアップがあったのみでした。Connector/Node.jsはNode.jsからMySQLサーバに接続するための部品です。このConnector/Node.jsはMySQLサーバをドキュメントデータベースとして活用するための機能群であるMySQLドキュメントストア向けのAPIとなっています。MySQLドキュメントストアではMySQLサーバに格納されたJSONドキュメントに対して、SQLだけではなく新しいMySQL X DevAPIでもアクセスが可能になります。MySQLドキュメントストアの概要は、連載第9回をご覧ください。
MySQLサーバ開発チームのブログでは、Node.jsベースのWebアプリケーションをフロントエンドにExpress.js, バックエンドにAngularJS, そしてConnector/Node.jsを組み合わせたサンプルを公開しています。
MySQLのJSONデータ型のご紹介
MySQLにはMySQL 5.7からJSONデータ型が追加されています。JSONデータ型は格納されるデータ形式が正しいかを自動的にチェックするDocument Validation機能を持ちます。JSONドキュメントの格納時にパースを行い、バイナリ化して格納されています。JSONデータ型内のデータを、文字コードはutf8mb4で照合順序はutf8mb4_binとして扱います。他の文字コードで生成された値をJSONデータ型に格納する場合は自動的にutf8mb4に変換されます。
JSONデータ型の列を持つテーブルの作成とデータの格納
MySQL 5.7ではJSON 文字列およびJSONデータ型を処理するための関数や演算子が複数用意されています。またJSONドキュメント内の階層(パス/Path)を表現する方法が用意されています。
JSON関数およびJSON演算子の利用例
JSON関数を使ってJSONドキュメントから抽出した値をMySQL 5.7で実装された生成列(Generated Column)に格納して、その生成列にインデックスを作成することでJSONデータ型へのインデックスを実現できます。
※[参考]MySQL 5.7 Reference Manual 14.1.18.8 Secondary Indexes and Generated Columns
MySQL 5.7で実装されたJSONデータ型によって、JSONドキュメント内の値とテーブル内の値をJOINすることや、JSONドキュメントとテーブルを1つのトランザクションで更新することなど、異なるデータストア間では実現しにくい点をMySQL内で処理できることは大きなメリットとなります。
先月のMySQL関連イベントやセミナー、ユーザ会の活動のレポート
- 第18回 中国地方DB勉強会 in 広島
- 中国地方の各地でデータベースに関する勉強会を開催している中国地方DB勉強会が「明日から絶対役立つデータベースの話!!」をテーマに勉強会を開催しました。日本PostgreSQLユーザ会の喜田さん、曽根さん、および日本MySQLユーザ会の@yoku0825さんが講演されています。原稿執筆時点では開催前ですので、イベントの様子は次回ご紹介いたします。
[PostgreSQL]2016年11月の主な出来事
2016年10月27日にPostgreSQL 9.6.1がリリースされました。このリリースでは、これまでに累積されたバグの修正が行われており、データベースのダンプ・リストアを行うことなく適応できます。このマイナー・バージョンアップは各メジャー・バージョンに対して実施されており、それぞれ9.5.5, 9.4.10, 9.3.15, 9.2.19 and 9.1.24がリリースされています。
なお、PostgreSQL9.1についてはEOLを迎えたため、今後、アップデートやセキュリティパッチの提供が行われなくなりますのでご注意ください。
今回のマイナー・バージョンアップで対処されたデータファイル破損問題と復旧方法について
今回のマイナー・バージョンアップで修正されたバグの中にはデータファイルの破損を引き起こすものが2点ありました。お使いの環境ですでにデータファイルが破損している場合、別途、復旧作業が必要となります。いずれも直ちにDBサーバが停止するような問題ではありませんが、破損状態のまま運用を継続するといろいろと不都合が生ずると思われますので、ご注意ください。
- 1.フリースペースマップ(FSM)ファイルの破損
- PostgreSQLバージョン9.6(9.6.1より前)、9.5(9.5.5より前)、9.4(9.4.10より前)、および9.3(9.3.15より前)には、FSMが有効な場合に適切なWALログエントリを作成できないバグがあり、クラッシュリカバリに際してFSMファイルが破損する可能性があります。FSMファイルが壊れているかの検査、壊れていた場合の復旧手順については以下ページを参照ください。
- Free Space Map Problems
- 2.可視性マップ(VM)ファイルの破損
- PostgreSQLバージョン9.6(9.6.1より前)、9.5(9.5.5より前)、9.4(9.4.10より前)、および9.3(9.3.15より前)には、VMが存在するときに適切なWALログエントリを作成できないバグがあり、クラッシュリカバリに際してVMファイルが破損する可能性があります。それに加えて、PostgreSQLバージョン9.6(9.6.1より前)では、ビッグエンディアンハードウェア上でpg_upgradeを実行すると不正なVMデータを生成させるバグがあります。VMファイルが壊れているかの検査、壊れていた場合の復旧手順については以下ページを参照ください。
- Visibility Map Problems
先月のPostgreSQL関連イベントやセミナー、ユーザ会の活動のレポート
- オープンソースカンファレンス2016 Tokyo/Fall, Fukuoka, Hiroshima
- 11月は東京、福岡、広島の3箇所でオープンソースカンファレンスが開催され、それぞれ以下の講演が行われました。
日付 | 開催地区 | タイトル | 講師 |
11/5(土) | 東京 | 生誕20周年を迎えたPostgreSQLを使ってみよう | JPUG 曽根 壮大様 |
PostgreSQL活用に役立つ厳選ドキュメントTOP3のご紹介 |
PGECons 竹内 尚也様 |
11/19(土) |
福岡 |
PostgreSQLセキュリティのあれこれ(改正個人情報保護法対応)と9.6の新機能 |
JPUG 多度 順一様 JPUG清末 直様 |
11/27(日) |
広島 |
商用DBからPostgreSQLへの移行入門。まず知っておかないといけないまとめ |
JPUG 喜田 紘介様 |
- 関西オープンフォーラム2016
- 2016年11月12日(土) 関西オープンフォーラム2016が開催されました。開催されたセミナーにおいて、JPUG ぬこ@横浜様による「PostgreSQL9.6の紹介」の講演が行われました。
[Cassandra]2016年11月の主な出来事
11月に入ってからバージョン3.10をリリースするかどうかの投票が3回行われていますが、現時点ではまだ修正、テストが不十分ということでリリースは延期になっています。しかし、この次期バージョンに含まれる新機能についてはほぼ確定しているので、以下、それら中から特に注目すべきものについて概略を説明します。
1つは、CQL3プロトコルの強化です。集約関数がサポートされたこともあって、SELECT文の中でパーティションレベルおよびクラスタ化カラムレベルでのGROUP BY句がサポートされるようになります。また、durationという、時間の長さを表す型が新たに追加されました。これは、年を表すy、月を表すmo、週を表すw、日を表すd、時間、分、秒を表すh、m、sなど数値と単位を指定するタイプの型です。ISO 8601の時間経過(Duration)の表記もサポートされます。さらに構文上のちょっとした拡張として「+=」および「-=」という略記法をコレクションとカウンタに対して利用できるようになります。
もう1つ追加された重要な機能として「ガベージコレクションコンパクション機能」があります。トゥームストーンを消すことを目的とするもので、設定で有効にすると、通常はコンパクションの対象とならないSSTableも含めてオーバーラップのあるSSTableを取り込んでコンパクションを行うようになります。また、nodetoolを使用して手動でも実行できます。
最後に取り上げる注目の新機能は、パフォーマンスの改善に役立てられるように追加された、時間のかかったクエリーを記録するスロークエリーログ機能です。この機能を有効にすると、DEBUGレベルのログを出力するようにしておけば遅いクエリーがあった場合にはその詳細が記録されるようになります。
Apache Cassandraプロジェクトそのものについての11月の話題は、前号でも報告したように、チェアが交代して新体制に移行したのに伴って、プロジェクトの進め方の議論がさら活発化していることです。これまでのtick-tockリリースを維持するのかあるいは変えていくのかなど、リリースサイクルやリリース条件の検討などのほか、バージョン4.0以降に向けて、現在JIRAチケットして登録され作業が進められているもののうち、どれを4.0に含めるものとして進めていくかなどが議論されています。
Cassandraのリリース情報(2016年11月25日最新情報)
Apache Software Foundation のダウンロードページに Debian パッケージの取得とインストールの方法が記載されています。また、過去のバージョンを含め、tar ボール形式のものは同ページからリンクされているアーカイブからダウンロードできます。
Cassandraのドライバーリリース情報(2016年10月25日最新情報)
2016年12月開催予定のセミナーやイベント、ユーザ会の活動
日程 |
2016年12月1日(木)~2016年12月3日(土) |
場所 |
秋葉原コンベンションホール 東京都千代田区外神田 1-18-13 秋葉原ダイビル 4F |
内容 |
PostgreSQLの生誕20周年を祝おう!というコンセプトから開始されたPostgreSQLの国際カンファレンスです。日本で、世界中のPostgreSQL開発者と日本のユーザの交流の場になれることが期待されています。
- 12/1 PostgreSQL の開発者が集う場。Unconference 形式で実施。
- 12/2 PostgreSQL の導入事例、大規模運営に必要な技術など、ビジネスシーンで PostgreSQL を利用するのに必要なテーマのセッションを実施。
- 12/3 PostgreSQL の技術、コミュニティ運営などについてのセッションを実施。
|
主催 |
PGConf.ASIA 2016運営実行委員会 |
日程 |
2016年12月17日(土)13:00~18:00 |
場所 |
Insight Technology 大阪支店 大阪市北区大深町3-1 グランフロント大阪 ナレッジキャピタル タワーC 11F |
内容 |
関西で開催するDB勉強会。いろいろなコミュニティ合同で開催されます。PostgreSQLのセッションとしては、2本が予定されています。 |
その他のニュース
配車アプリのUberのエンジニアブログにて、MySQLをDockerコンテナと組み合わせて2,000以上のMySQLサーバを運用している状況を解説しています。
オープンソースのデータベース向けの監視ツールを提供しているVividCortexの創業者CEO Baron Schwartzが最近リリースされたPostgreSQL 9.6と最初の開発版がリリースされたMySQL 8.0の新機能の概略をまとめたスライドをSlideshareにて公開しています。