余はなぜGIS機能に魅せられしか/今年の活動の整理

この日記は RDBMS GIS アドベントカレンダー2018の1日目です。


 この一年、 GIS 機能についてさまざまな経験をしたり学びを得たりしてきました。
この日記では一年の振り返りと、なぜ私がここまで GIS 機能に惹かれたのかについて紹介していきたいと思います。 直接の技術的な話はありませんが、データベースで扱うデータに対して、どのように興味関心を持って接しているか、という視点でお読みいただければ。

1 GIS機能とは。MySQLGIS 機能とは。

ここで言う GIS 機能とは、位置の情報を取り扱うための機能のことです。 MySQL ではバージョン8.0になって地球上の位置の情報を取り扱うしくみが大幅に整備されました。 具体的には、それまでのバージョンでは平面上の座標のみを取り扱うことができたものが、バージョン8.0になって初めて、MySQLは地球が丸いことを覚えたのです。緯度と経度、または基準として定めた点からの南北方向東西方向への距離という形で地球上の位置を取り扱います。
 MySQL では、実はあまり 「GIS」というキーワードは使わず、Spatial(空間の)という言葉を使用します。空間情報ですね。

2 私のこの一年

 地球上の位置を表す方法はいろいろありますが、ここでは緯度経度を例にして話をしますと、緯度経度それ自体は単なる二つの数字のセットです。無味乾燥な数字です。ですが、データベースにこれらの値を登録したりシステムでこれらの値を扱うような開発を行うとき、その数字がどういう意味を持っているのかを知っていたほうが、いつでも、より適切なイメージを持って値を取り扱うことができるようになります。


 そんな考えですから、MySQL でコマンドを叩くだけでなく、 緯度経度が表している数字をよりリアルに感じたいという流れになるのは、必然です。つまり、位置をあらわすということの「実態」をこの目で見ることにも重点を置いてきました。こう書くととても崇高な感じはしますが、率直に言えば、ただ見たかっただけです(笑)。
 また、 この1年でいただけた各地での発表の機会を使って、この1年はほとんど、GIS 機能について紹介をしてきました。データベースに格納されるデータは、有効に利用されてこそ価値が生まれるものですから、位置に関する情報が世の中にどのように活用されているのかを知るためにも、データベースの世界とは離れ、GIS の情報を取り扱うプロフェッショナル方達からも色々と教えていただく機会を多く得ました。そういう方たちの世界では、データの格納方法という視点ではなく、データをエンドユーザーにどのように見せたいのか、どんな切り口で見せたいのかなどの活用方法について、彼らそれぞれの「あたりまえ」に触れることができたのは、非常にわくわくする体験でした。


 この一年の、関連する私の活動を以下に整理しました。各地での発表資料については slideshare に上がっていますので、内容については、そちらを参照ください。
https://www.slideshare.net/sakaik/

●2017/11/02 水準原点を見に行ってしまう
●2017/12/26 日本経緯度原点を見に行く
●2018/02/10 浜松の一等三角点を見に行く
■2018/02/11 OSCHamanakoLT 「MySQLGIS機能がやってきた」
●2018/05/23 水準原点公開日に見に行く
●2018/07/06 札幌の基線南端北端に行く
■2018/07/07 OSC Hokkaido 「MySQLに本格GIS機能がやってきた」
■2018/07/23 日本MySQLユーザ会会(MyNA会) 「MySQLGIS機能とか超入門」
●2018/08/29 伊能忠敬記念館に行ってみる
■2018/08/31 ClubMySQL 「周辺知識から理解するMySQLGIS機能」
●2018/10/07 明石東経135度線を見に行く
■2018/10/28 OSCTokyo/Fall 「MySQL8.0の新機能"地理情報" を理解しよう入門~いまからはじめるGIS
■2018/11/04 FOSS4GOkayama 「MySQL 8.0で強化されたGIS機能のご紹介」
■2018/12/08(予定) OSCFukuoka 「MySQL 8.0 で強化されたGIS(地理情報)機能を使ってみよう」
(■は発表、●はリアルな「位置」関連視察:-))


3 なぜここまで GIS 機能に惹かれるのか

 かように私の興味を引き立てた GIS 機能ですが、100人のMySQLユーザーがいれば当然100人が興奮してこの機能に飛び付くと思っていました(やや誇張あり)。実際には、あれれ、意外とみんな、そこまで興味はなさそうと感じることもあり、なぜ自分がこんなにも位置情報を扱えることに心を惹かれているのかということについて考えてみました。


 ひとえに「RDBMSに興味がある」と言っても、大きくふたつに分けることができるようです。ひとつは RDBMSの仕組みそのものに興味がある場合。もうひとつが、RDBMSで扱うことができるデータに興味がある場合です。
 前者は、RDBMSが安定して運用されるためにやるべきこと、なるべく高速に動作させるために工夫すべき事などに関心があるのではないでしょうか。そのノウハウは、セミナーや書籍などのネタにもなりやすく、比較的目立ちやすいこともあって、「RDBMSを知るっていうのは、こういうことだ!」という印象が強くなる傾向があるかと感じます。実際にお仕事で RDBMSの運用をするというのは、こういうノウハウを蓄積していることでもあるので、現場感のある人にとって必然的な姿勢かと思います。
 一方、私はというと、特にこの数年はそういった運用の現場感が全然ない環境にいることもあって、運用に関わる話題は、聞くのは好きだしわくわくもするけれども、どことなく身近に感じられない、異世界の話題のように感じるときもあるのです。
 そんな私が今回気づいたのが、自分は「RDBMSが扱う "データ" に興味があるのだ」ということでした。これはこの数年の立ち位置のせいだけではなく、思い起こせば昔からそういう傾向があったような気がします。小売店で全国の支店の売り上げがSQLを叩くだけで手に取るように分かるとか、紙でファイリングしていた大量の資料を一元管理できることで今まで見えなかった情報相互の関係を分析しやすくなったとか、そういった「現実世界とつながったデータ」にわくわくしながら、RDBMSと付き合ってきました。10年程前に、元お茶の水大の増永先生にサインをいただいたときに「地球まるごとデータベース」というキャッチコピーを添えてくださったのですが、今まで私が触れてきたデータベースとは、まさに「地球まるごと(のごく一部)」だったわけです。

 この視点の違いに気づけば、当初の「なぜGISに惹かれるか」の答えは見えたようなものです。

 今までMySQLでは、文字、数字、日付時刻の情報を中心としたデータを取り扱ってきました。これは「地球まるごと」を格納するためには、致命的に不足している情報タイプがあったのです。そう、それが「位置」に関する情報です。大きく分類すれば位置でさえ「数字のセット」でしかありませんが、数量や重量、金額などをあらわしていた「数字」とはまったく異なるポテンシャルを持っているのが「位置」の情報なのです。
 単なる平面座標ではなく、球体(正確には回転楕円体)である地球上の位置を、気楽に扱えるこの仕組みこそ、今までのMySQLに欠けていたものでした。(他のRDBMSには、本体またはプラグインの形で実装されているものが多かったけど)バージョン 8.0 になり、MySQLでもこれらの位置の情報を扱える仲間入りを果たしたということが、私にとっては、MySQLの表現力が格段にレベルアップしたと言ってよいほどに感動的な出来事だったというわけです。
 だからこそ、MySQLでの位置の情報の操作方法といった基本的な事を押さえた後は、この「Spatial型」に入れるべき現実世界はどうなっているのか、という点に興味が広がるわけですし、その過程で知った「おもしろそうな場所」に、適度に気楽に行けるのであれば行って自分の目で見てみたいと思い行動してきた、この1年でした。


 世の中の様々な場所をあらわすために「緯度、経度」という連続的な数字のセットがあり、それら数字を MySQL などに格納し、取り扱うことができるようになった。この、現実世界との連動こそが、データベースの大きな魅力であることを再確認できた、この1年間でした。

f:id:sakaik:20180523135120j:plain



追記(2018/12/02):とみたさんより、(1)仕組みへの興味、(2)データへの興味、に続く第三の興味関心の軸を提示頂いたので、紹介します:-)

MySQL Innovation Day

Oracle MySQL Innovation Day 2018 秋 に参加してきました。平日の午後から、夕食休憩を挟んで夜の早めの時間くらいまで、という変則的開催。
参加してみるとなるほど、明るい時間には比較的まじめにしっかりとした話を聞いて、夜枠はどちらかというとコミュニティに寄せた感じなのだな、と納得。当たり前のように両者が融け合う、名構成だったと思います。企画者GJ!

ほんとね、もっと英語聞けるようになりたいって思いますよ、こういう会に出ると。
たどたどしいながらも、自分がしゃべる側は言い換えながら頑張れるんだけど、返答を聞き取れないのが辛すぎて。

夜枠の、海外ゲストへの質問コーナー。予め(と言っても当日)Webサイト上で募った大量の質問に対して、MySQLの開発トップであるUlinさんをはじめとした海外ゲストがテンポ良く答えていく運びで、ライブならではの迫力がありました。「次のバージョンは 8.1 なのか 9なのか」という質問には「決まってない」とシンプルに答えてくれたけど、ここは「ナインはないん。」と答えて欲しかった(無理)。

夜枠にてLTをやらせていただきました。この1年間、MySQLGIS機能を追いかけてきた報告と、MySQLGIS機能をこれから使おうという方のための簡単な情報を紹介しました。

www.slideshare.net

 いや、、「MySQLGIS機能を」追っていたかというと、実はちょっと自信ないのですけど、MySQLGIS機能に登録するための数字(緯度経度)の意味という視点で追いかけ回していた感じですかね。


 やはり海外ゲストが来てくれるカンファレンスというのはユーザ会ベースではなかなか難しいし、来てくれるとやっぱり内容にも一層迫力があるしと、とても素敵なので、来年もまた何度か開催してもらいたいと思います。

 ありがとうございました。
f:id:sakaik:20181121100944j:plain

オープンソースカンファレンス2018新潟(OSC2018-Niigata)参画

オープンソースカンファレンス2018新潟(OSC2018-Niigata)に参加して、日本MySQLユーザ会(MyNA)としてブース展示とセミナー開催をいたしました。
www.ospn.jp

 新潟と言えばお酒なので、まず最初にそれを語らなければならないのですが、少人数での前夜祭から本番懇親会、翌日の酒蔵見学まで、新潟堪能のOSCでした。
f:id:sakaik:20181110180734j:plain
写真は、本番懇親会に、現地幹事の方が用意してくださったお酒の数々。真ん中にあるのは、かめすい(日本PostgreSQLユーザ会さんがよく配っているお水)ならぬ、かめざけ。マスカガミの「甕覗(かめのぞき)」です。面白かった。決して、らっきょうとか紅ショウガの入った壷ではありません。
 特に前夜祭では「いくらなんでもこれは飲み過ぎだろう」というくらい、みんなで呑みまくっていたのですが(ラストオーダーで、最後に2合x3本を頼んだら、お店のお姉さんに「大丈夫ですか?」と言われたくらい、たぶん結構呑んだはず)、適切にチェーサーしつつ自分のペースで呑んでさえいれば、全然翌日に残らないのが、本当に新潟のお酒、不思議です。新潟やばい。




 今回の OSC2018-Niigata には、MyNAとしては初めて、まみーさんが参加してくれました。MySQLユーザ会枠のセミナーでお話をしてくださり、一緒にブースに座っていてくださいました。OSCでは一人で色々やっていることが多いので、なんとなくいつも慌ただしく感じているのですが、まみーさんのおかげでとってもゆったりと過ごせました。これからもぜひ色々なOSC(やその他のイベントも)に参加してくださいね!
 OSC本体の様子については、まみーさんがしっかりと書いてくださったので、そちらで!
mamy1326.hatenablog.com



あと、OSCのアドヴェントカレンダーをやるようです。まだ空きがあるので、関係各位はぜひ。
adventar.org

ついでに宣伝すると、MySQL とかのRDBMSGIS 機能についてのアドヴェントカレンダーも開催しています。たぶん全部埋まることはないので、賑やかしに、ちょっとしたネタ披露や思いを語るブログなどでも、参加くださいませ。MySQLGIS機能を初めて触ってみた方から、PostGISなどでガンガンに使いこなしているから教えてやるぜ!という方まで、いろんなお話を聞かせて欲しいです。
qiita.com

FOSS4G 2018 OKAYAMA 参画

岡山で開催された FOSS4G 2018 OKAYAMA.KANSAI に参加してきました。
FOSS4Gは、「Free & Open Source GIS の祭典」だそうで、今年は 札幌、名古屋に引き続いての開催です。

f:id:sakaik:20181104095620j:plain


最近、MySQL 8.0 が GIS(Spatial)機能に本気を出したことで興味を持っていたので、名古屋に引き続き参加してきました。しかも今回は発表付き。プロ集団の中でお話するの、怖かったですw
 この分野は(比喩ではなく本当に)まだまだひよっこな私ですが、位置に関する情報がどのように使用されているのかを知りたくて、参加しました。全体としては、防災や災害後の情報収集/整理等との相性が非常に強い技術だという印象を受けましたが、地理院地図のお話や、古地図と現代の地図とのぴったり重ね合わせや、バスのオープンデータの提供/活用の話など、わくわくする話をたくさん聞けたイベントでした。

 2日目のハンズオンデイは、宮内さんの「JavaScriptPostGISでお手軽に本格GIS」に参加させていただきました。MySQLじゃなくて PostGIS だけど、今回の範囲であれば、POINT型とあと幾つかの関数を使う程度なので、MySQLでもほぼ使えそうな気がしました。(MySQL版のハンズオンをやられた FOSS4G Tokyo に参加できず悔しい)
 そんなに要領悪くないと自分では思っていたのですが、やっている事はシンプルなのに、結構手間取ったりして、ついていくのが精一杯でしたが、いま手を動かしたものが目の前で動作するようになっていく過程を(本業の慣れた事以外では)久々に体験し、わくわくしました。

 懇親会でも、たくさんの方とお話をさせていただき、最初はアウェイの中でとても緊張していたのですが、皆様に仲間に入れていただいた気分で、大変楽しく過ごさせていただきました。どうもありがとうございました。

 もっともっとGISの基礎技術や活用事例に触れていきたいので、この機会に OSGeo財団日本支部に入会させていただきました。どうぞ宜しくお願いいたします。


f:id:sakaik:20181105140552j:plain


発表資料を貼っておきます。

www.slideshare.net

オープンソースカンファレンス2018東京秋(OSC2018-Tokyo/Fall)参画

OSC2018-Tokyo/Fall(オープンソースカンファレンス2018東京秋)に参加してきました。
いつもの通り、日本MySQLユーザ会としてブースを出しつつ、でも結構うろうろしながら他のブースの方ともお話したり、自由で楽しく参加させてもらいました。
東京のOSCは、千葉県在住の身からは「非常に遠い」会場で開催されるので、よほどのモチベーションがなければ参加しない方針だったのですが、今年は MySQL 8.0 のGIS機能元年ということで、お伝えしたいことがたくさんあり、セミナー開催を楽しみに参加をした次第。ちなみに片道3時間かかるので、東京のOSCは、東京なのに宿泊での参加という、なんだかちょっぴり負けたような気のする参加形態となります(笑)。
www.ospn.jp

 ブースを出したら出したで、それなりに収穫があるもので、いろんな方へMySQLでもGIS機能が(ちゃんと地球の形を知った上で)使えるようになったよ!ということを伝えられたと思いますし、全然MySQLの事を知らない方に、MySQL、というよりRDBMSのことを少しお話できたり、有意義な時間となりました。
 距離的な行きにくさという事と、行った先の名産品を食べるという楽しみが特にないことから、東京のOSCは私は避け気味になっているのですが、やっぱり人の多さ、熱量の高さは最大ですねぇ。各地のOSCに参加していると、n次会まで懇親した後でホテルに戻るまで概ね10分以内ということが多いので、それに慣れてしまうと、懇親会後に1時間も2時間も(今回の会場は3時間だけど)かけて家に帰るのが億劫になってしまうという、面白い感覚があることに気がつきました。
 ということで、これ、東京OSCのエントリなんですけど、出展側のみなさんぜひ各地のOSCに行きましょう!


セミナー資料を貼っておきます。
今年いっぱいは MySQLGIS 機能を使うために必要な基本的な事項を調べまくって、伝えよう、ということで活動してきましたが、そろそろ超基本的なところについては資料も揃ってきたし、12月の福岡で本ネタは最後にしようかな、と考えています(もちろん依頼をいただけば喜んでお話します)。次は何をやろうかな。



www.slideshare.net

f:id:sakaik:20181027132427j:plain

MySQL 8.0.13 リリース。GIS機能は?誕生日はいつ?サイズは?

MySQL 8.0.13 がリリースされました。

ChangeLog :
MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.13 (2018-10-22, General Availability)

Download:
MySQL :: Download MySQL Community Server


 ここ最近の私の興味は GIS 機能ですので、大量の Change Logの中からまずは関連するところだけ。

GIS機能の変更は?

 ST_Area() と ST_Validate() の両関数が、いままでは投影座標系のみの対応で、地理座標系の場合はエラーを返していましたが、このバージョンからは、地理座標系(=緯度経度)でも値を返すようになったそうです。

 そして、待望の ST_Transform() が実装されました。ただし、地理座標系どうしでの変換のみっぽい。。投影座標系への変換に対応してくれるのを期待していたので、少しがっかりですが、一歩一歩の進化をじっくりと待ちましょう。次回のリリースは、慣例に従うならば、年明け1月末くらいでしょうか。


誕生日はいつ?

2018年の 10月7日から8日にかけてビルド/パッケージングされたようですので、これを MySQL 8.0.13 の誕生日と考えて良いでしょう。リリース日は、10月22日です。一礼夫婦の日ですね。

スリーサイズは?

 上から、
mysql-8.0.13-linux-glibc2.12-i686.tar.xz : 365M 、
mysql-8.0.13-macos10.14-x86_64.dmg :204M 、
mysql-8.0.13-winx64.zip       :192M (msi版は107MB)
 です。

 ちなみに、これらのボディを作っているモトとなるソースコードは、こんな感じになっています。
mysql-8.0.13.tar.gz 103M
mysql-8.0.13.zip  130M

 同じバージョンなのに、随分とサイズが違うのって、なんだか不思議ですね!

オープンソースカンファレンス2018香川(OSC2018-Kagawa)参画

香川県高松市で開催されたオープンソースカンファレンス2018香川(OSC2018-Kagawa)に行ってきました。
www.ospn.jp

f:id:sakaik:20181005172915j:plain

 今回も日本MySQLユーザ会としてブース出展とセミナーを開催して来ました。
OSC香川のセミナー枠は、通常のOSCでの45分枠とは異なり15分だけなのと、ワントラックでの開催=べつにMySQLに興味あるわけではない人も「なんとなく」聞きに来たりするのかなという想像から、思いっきり初心者向けにテーマを振ってみました。なぜデータベースを使うのか、どういう役割を持ったソフトウェアなのか、といった、普段「MySQLの話をしま~す」と言った時には絶対にしないようなレイヤからお話をしました。ターゲット層が広く多岐にわたっているため、誰にどう伝わったのか不安な思いもありますが、学生さんも多く聞きに来てくれて、まぁある程度はマッチしていたかなと思っています。

 香川入りをしてから家に帰るまで、なにかと充実していて、会場でもいろんな方とお話したり山崎さんにGISについて沢山教えていただいたりディスカッションしたり、いつもどおりお隣のJPUG(日本PostgreSQLユーザ会)の方々とも仲良くおしゃべりしたりと、会場の写真を撮るのを一切忘れていたくらいの充実度でした。
 ブースとしては最近、ぱっと見てもらってわかるものをあまり展示していない反省はあり、あっきぃさんにラズパイでの簡単なサイネージっぽいものとか相談に乗ってもらって、そういうのを今後展示に供していけたらなぁと思っておる次第であります。こちらも積極的に声をかけないし、強い興味がある人以外はなかなかブースに声をかけにくいと思うので、そういう会話のきっかけを、改めてもうちょっとやっていきたいところです。

 うどんは結局6杯いただきました。もう一杯チャンスがあったけど、帰りのバスを一本早めることにしたおかげで、食べ損ないまして。
OSC関連でお世話になった方も、OSCと全然関係なくお世話になった方も、どうもありがとうございました。