SlideShare a Scribd company logo
1 of 53
Download to read offline
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0で強化されたGIS機能のご紹介
+α
Yoshiaki Yamasaki / 山﨑 由章
MySQL Global Business Unit
MySQL Senior Sales Consultant
updated: 2018/09/09
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも
のではない為、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
はじめに
3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
今日伝えたいこと
• MySQLにもGIS機能があります!積極的に開発しています!!
• ご意見下さい!
– 本日は終日会場にいます
– 懇親会も参加します
• 試してみて気づいた点があれば、是非フィードバック下さい!
– フィードバックできるページ
• MySQL Bugs
https://bugs.mysql.com/
– バグ報告だけでなく、機能追加リクエストも受け付けています
4
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
今日伝えたいこと
• FOSS4G Hokkaido 2018で発表いただいた
「MySQL 8.0.11使ってみた」に対する補足
– MySQL8.0.11使ってみた SRIDが実装されたと聞いて
https://foss4g.hokkaido.jp/2018/data/mysql8011tukattemita.pdf
[発表後に追記]
• GDAL 2.3.2がリリースされれば、ogr2ogrを使用してMySQL 8.0へ
シェープファイルをインポートできるようになりそうです!!
5
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQLのGIS機能の歴史
6
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 7
MySQLの歴史
4.0
全文検索 (MyISAM)
複数テーブルUPDATE/DELETE
組み込みライブラリ型サーバ
OracleMySQL Sun
3.23
MyISAM
InnoDB
レプリケーション
5.1
プラグガブル・
ストレージエンジン・
アーキテクチャ
パーティショニング
タスクスケジューラ
5.6
全文検索(InnoDB)
memcached API
UNDO表領域
Global Transaction ID
マルチスレッドスレーブ
オンラインALTER TABLE
トランスポータブル表領域
5.5
InnoDBがデフォルトに
準同期型レプリケーション
PERFORMANCE_SCHEMA
1.0-3.22以前
ストレージエンジン (ISAM, HEAP)
マルチスレッド
Windows対応/64bit対応
日本語文字コード (SJIS/UJIS)
5.0
ストアドプロシージャ
ストアドファンクション
カーソル/トリガ/ビュー
XAトランザクション
INFORMATION_SCHEMA
4.1
GIS(MyISAM)
Unicode対応
サブクエリ
CSV, ARCHIVE
ndbcluster
1995 2000 2005 2010 2015
5.7
2015年10月21日 GA
全文検索CJK対応/GIS (InnoDB)
新コストモデル オプティマイザ
ロスレス レプリケーション
マルチソース レプリケーション
グループ レプリケーション
セキュリティ強化
データディクショナリ
NoSQLオプション
・ 1995年:スウェーデンにてMySQL AB設立
・(2005年:オラクルがInnobase Oyを買収)
・ 2008年:Sun MicrosystemsがMySQL ABを買収
・ 2010年:オラクルがSun Microsystemsを買収
8.0
2018年4月19日 GA
トランザクショナルDD
MySQLドキュメントストア
Unicode 9.0サポート
国ごとの照合順序を追加
CTE、Window関数
GIS機能の拡張 (InnoDB)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の歴史
• MySQL 4.1
– MyISAMでのみGIS機能が使えるようになった
• geometryデータ型
• Spatialインデックス
• Spatial関数
• MySQL 5.0
– InnoDBでもgeometryデータ型、Spatial関数を扱えるようになった
• Spatialインデックスは使用できず
※地理情報システムに関するオープンな規格であるOpenGISに基づいた実装が
されていたが、MySQL開発チームによる独自実装であった
8
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の歴史
• MySQL 5.7
– Boost.GeometryというC++のオープンソースライブラリを採用して独自実装をやめ、
InnoDBでGIS関連機能を再実装した
• geometryデータ型
• Spatialインデックス
• Spatial関数(使える関数の種類も増加)
• GeoHashサポート
• GeoJSONサポート
※Boost.Geometryコミュニティとも活発に交流し、MySQLチームから
Boost.Geometryへのコントリビュートも行っている
9
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の歴史
• MySQL 5.7
– 挙動が不明確で分かり難いSpatial関数は非推奨となった
• 例:Contains()は、以下のどちらの関数と同じ動きをするか分かり難いので廃止予定となった
– MBRContains
– ST_Contains()
10
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の歴史
• MySQL 8.0
– OpenGIS標準準拠
– 演算、データ変換に役立つ各種のSpatial関数の追加
• st_x(geom, x)
• st_y(geom, y)
• st_srid(geom, srid)
– MySQL 5.7で非推奨になった関数の廃止
–Geography サポート
• st_distance() 関数
–Spatial Data、Spatial Index、Spatial関数のSRIDサポート
11
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の歴史
• MySQL 8.0
– OpenGIS標準準拠
– 演算、データ変換に役立つ各種のSpatial関数の追加
• st_x(geom, x)
• st_y(geom, y)
• st_srid(geom, srid)
– MySQL 5.7で非推奨になった関数の廃止
–Geography サポート
• st_distance() 関数
–Spatial Data、Spatial Index、Spatial関数のSRIDサポート
12
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQLは積極的に
GIS機能を開発しています!!
13
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GIS機能の紹介
14
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
geometryデータ型
• OpenGISジオメトリモデルに基づいた以下のデータが使用可能
– GEOMETRY、GEOMETRYCOLLECTION
– 点:POINT、MULTIPOINT
– 線:LINESTRING、MULTILINESTRING
– 多角形:POLYGON、MULTIPOLYGON
※GEOMETRYには、POINT、LINESTRING、POLYGONを格納可能
※GEOMETRYCOLLECTIONには、MULTIPOINT、MULTILINESTRING、MULTIPOLYGONを
格納可能
15
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Spatial関数
• ジオメトリデータを扱える各種の関数
• 例
– ST_Distance()
• 2つのジオメトリを入力し、2地点間の距離を出力
– ST_Distance_Sphere()
• 2つのジオメトリを入力し、2地点間の最小球面距離を出力
– ST_Contains()
• あるジオメトリに別のジオメトリが含まれているかどうかを判定する
• MySQL 8.0で使えるSpatial関数一覧
– MySQL 8.0 Reference Manual / ... / 12.15.1 Spatial Function Reference
https://dev.mysql.com/doc/refman/8.0/en/spatial-function-reference.html
16
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GeoHash
• 経緯度の情報を文字列化したもの
– 例:愛知大学 名古屋キャンパス 講義棟(経度:136.884242、緯度:35.161329)の
GeoHash
⇒ xn324bujd4<<後略>>
• 特徴
– 文字列なので、データベースで扱いやすい
(インデックスも活用可能)
– GeoHashの情報は点ではなく範囲(矩形のエリア)を表す
– 文字列の桁数で精度を変えることができる
• 10桁を超えると矩形の一辺が1m以下になるので、経緯度の変わりとしても十分利用可能
• 近接エリアの判定等に利用可能
17
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GeoHash
• MySQL 5.7以降では、GeoHashを扱うための関数が使用できる
– ST_GeoHash():経度、緯度(POINT型のデータでも可)を入力し、GeoHashを出力
– ST_LatFromGeoHash():GeoHashを入力し、経度を出力
– ST_LongFromGeoHash():GeoHashを入力し、緯度を出力
– ST_PointFromGeoHash():GeoHashを入力し、POINT型のデータを出力
18
※詳細を解説しているマニュアル
MySQL 8.0 Reference Manual / ... / 12.15.10 Spatial Geohash Functions
https://dev.mysql.com/doc/refman/8.0/en/spatial-geohash-functions.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GeoJSON
• 空間データを扱うためのフォーマットの一つ
• JSONによる表現で空間データを扱える
– 例:愛知大学 名古屋キャンパス 講義棟(経度:136.884242、緯度:35.161329)の
GeoJSONによる表現
⇒ {"type": "Point", "coordinates": [136.884242, 35.161329]}
19
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GeoJSON
• MySQL 5.7以降では、GeoJSONを扱うための関数が使用できる
– ST_AsGeoJSON():ジオメトリ型のデータを入力し、GeoJSONデータを出力
– ST_GeomFromGeoJSON():GeoJSONデータを入力し、ジオメトリ型のデータを出力
20
※詳細を解説しているマニュアル
MySQL 8.0 Reference Manual / ... / 12.15.11 Spatial GeoJSON Functions
https://dev.mysql.com/doc/refman/8.0/en/spatial-geojson-functions.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Workbenchの活用
21
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Workbench
• 管理ツール
• SQLエディタ
• Performance Dashboard
• Visual Explain
• GIS Viewer
• ER図作成、フォワード/
リバースエンジニアリング、
など豊富な機能
22
データベースアーキテクト、開発者、DBA のための統合ビジュアルツール
商用版のみの機能:
DBドキュメント出力、データモデルの検証、
MySQL Enterprise Backup GUI、MySQL Enterprise Audit GUI
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
"Spatial Viewer" and "Geometry Viewer"
• ジオメトリ型のデータを図示可能
23
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
「MySQL 8.0.11使ってみた」に対する補足
24
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
「MySQL 8.0.11使ってみた」に対する補足
• FOSS4G Hokkaido 2018で、以下の発表をして頂きました
– MySQL8.0.11使ってみた SRIDが実装されたと聞いて
https://foss4g.hokkaido.jp/2018/data/mysql8011tukattemita.pdf
• シェープファイルの取り込み、POINTデータのインサートに以下4つの
方法を試して頂きましたが、いずれもエラーになっています
– MySQL Workbench 8.0.11
– QGIS 2.18.20、3.0.1
– SQL実行(MySQL Workbenchから)
– org2ogr
25
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
「MySQL使えない!」、
とならないように、補足します
26
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• MySQL Workbench 8.0.11
– ログまで確認できていないため厳密に
判断できませんが、エラー発生時の
画面から判断すると、おそらく環境設定に
依存した問題と思われます
27
おざきさんの発表資料13ページより引用
※MySQL Server 8.0.11はGA(製品版)ですが、
MySQL Workbench 8.0.11はRC(リリース候補版)です。
FOSS4G Hokkaido 2018 以降にMySQL Workbench 8.0.12 GAが
リリースされています。
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• QGIS 2.18.20、3.0.1
– GeometryFromText関数は、MySQL 5.7で非推奨になり、MySQL 8.0で廃止されました
– MySQL 8.0では、ST_GeometryFromText関数が使用できます
28
おざきさんの発表資料18ページより引用
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• QGIS 2.18.20、3.0.1
– SRIDが-2になっている点については原因まで判断出来ていませんが、
QGIS側(GDAL)の問題と思われます
29
おざきさんの発表資料18ページより引用
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
備考:MySQL 5.7と8.0で使用できるSpatial関数
• MySQL 5.7 Reference Manual / 12.15.1 Spatial Function Reference
https://dev.mysql.com/doc/refman/5.7/en/spatial-function-reference.html
• MySQL 8.0 Reference Manual / 12.15.1 Spatial Function Reference
https://dev.mysql.com/doc/refman/8.0/en/spatial-function-reference.html
30
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
備考:MySQL 5.7と8.0で使用できるSpatial関数
• MySQL 5.7のマニュアルで、 GeometryFromText関数は非推奨になったので、
ST_GeometryFromText関数を使用するように案内されています
31
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• SQL実行(MySQL Workbenchから)
– 緯度、経度の指定がMySQLの仕様と逆になっていることが原因です
– 緯度、経度の指定を逆にすれば、SQLが実行できます(次ページ参照)
32
おざきさんの発表資料19ページより引用
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• SQL実行例
33
mysql> INSERT INTO `test_pt` (`the_geom` , `gid` , `point_name`) VALUES(ST_GeometryFromText('POINT
(35.1703251460096 136.88184188928)',4326) ,1, 'nagoya_station');
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> SELECT point_name,ST_AsWKT(the_geom) FROM test_pt;
+----------------+-----------------------------------------+
| point_name | ST_AsWKT(the_geom) |
+----------------+-----------------------------------------+
| nagoya_station | POINT(35.1703251460096 136.88184188928) |
+----------------+-----------------------------------------+
1 row in set (0.00 sec)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
補足
• 経度、緯度の指定順番に関して、以下のQiitaの記事が参考になります
– MySQLの空間拡張機能のaxis orderについて
https://qiita.com/yellow_73/items/e15c5414c33874a4f94e
– MySQLのaxis orderは「バグってる」わけではない
https://qiita.com/yellow_73/items/eea0c7fd21e40140b491
– MySQLの空間拡張機能の内部表現のaxis orderについての「チラシの裏」
https://qiita.com/yellow_73/items/0a953c157ff6c603ef7a
34
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
エラーの原因
• org2ogr
– QGISと同様です(GDALに依存しているため、同様の問題が発生しています)
35
おざきさんの発表資料22ページより引用
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GDALに依存した問題の整理
• GDALを利用して生成されたSQL文を修正すれば、SQLが実行できた
– MySQL 8.0がエラーの原因ではなく、GDALがMySQL 8.0に合わせた
SQLを正しく生成できていないことが原因
• 修正点は以下の3点
– 1.廃止された関数を使用していた
⇒MySQL 8.0で使用できる関数名に修正すれば解決
– 2.SRIDの指定が間違っていた
⇒SRIDを正しく指定すれば解決
– 3.経度、緯度の指定順番が逆になっていた
⇒MySQLの仕様に合わせた順番に修正すれば解決
36
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GDALコミュニティに
この状況を伝えたい!
37
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
GDALコミュニティに
どうアプローチすればいいか、
是非アドバイスください!!
38
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
[発表後に追記]
39
アドバイスを下さった方々、
私の検証を支援して下さったおざきさん、
ありがとうございます!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
[発表後に追記]
• 「廃止された関数名を使用していた問題」については
GDAL 2.3.2で修正されそうです
– ogr2ogr with MySQL 8 #782
https://github.com/OSGeo/gdal/issues/782
– Issue with Mysql import #899
https://github.com/OSGeo/gdal/issues/899
40
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
[発表後に追記]
• 「SRIDの指定が間違っていた問題」については以下のIssueを登録しました
– ogr2ogr with MySQL 8 (Wrong SRID) #905
https://github.com/OSGeo/gdal/issues/905
• こちらもGDAL 2.3.2で修正されそうです
41
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
[発表後に追記]
• 「経度、緯度の指定順番が逆になっていた問題」については以下の
Issueを登録しました
– ogr2ogr with MySQL 8 (Wrong Axis Order) #906
https://github.com/OSGeo/gdal/issues/906
• こちらもGDAL 2.3.2で修正されそうです
42
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
[発表後に追記]
• GDAL 2.3.2がリリースされれば、ogr2ogrを使用してMySQL 8.0へ
シェープファイルをインポートできるようになりそうです!!
• GDAL 2.3.2リリース後、みなさん是非お試し下さい!!
※GDAL 2.3.2を利用したQGISやMySQL Workbenchがリリースされれば、それぞれのツールからも
MySQL 8.0へシェープファイルをインポートできるようになりそうです
43
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
参考情報
44
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
参考情報
• マニュアル
– https://dev.mysql.com/doc/refman/8.0/en/
• コミュニティフォーラム
– http://forums.mysql.com/list.php?23
• Boost.Geometry
– http://www.boost.org/libs/geometry
• バグ報告&機能追加リクエスト
– http://bugs.mysql.com/
45
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
参考情報
• MySQL開発チームのブログ記事(GIS機能開発者の投稿記事)
https://mysqlserverteam.com/author/nryeng/
– 例)
• Spatial Reference Systems in MySQL 8.0
• Geography in MySQL 8.0
• Axis Order in Spatial Reference Systems
• Geographic Indexes in InnoDB
• Geographic Spatial Reference Systems in MySQL 8.0
• Projected Spatial Reference Systems in MySQL 8.0
• Upgrading Spatial Indexes to MySQL 8.0
• Creating Your Own Spatial Reference Systems in MySQL 8.0
46
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
参考情報
• MySLQ 8.0 GIS Demos
https://github.com/nryeng/mysql-8.0-gis-demos
– OpenLayers、OpenStreetMap、ProxySimplePHPのタイルキャッシュを使用したデモ
(MySQL 8.0がGA(製品版)になる前に作成されたデモ)
47
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
その他
48
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
フィードバック協力者募集中!!
49
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Bugsでのフィードバック
• MySQL Bugs
– https://bugs.mysql.com/
• バグ報告だけでなく、機能追加リクエストも受け付けています
– 特に、日本固有のGIS事情に合わせた機能追加リクエストを登録頂けると助かります
• 「Affect me」ボタンを押すことで、
– 他の人が登録したバグと同じバグに遭遇した
– その機能追加を私も望んでいる
ということを伝えることができます
50
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Bugsでのフィードバック
• 私が登録している機能追加リクエスト
– Bug#88871 : Add ST_Transform() function to transform geometry data to different SRID
https://bugs.mysql.com/bug.php?id=88871
– Bug#90023 : [Feature request] Shape File import/export tool
https://bugs.mysql.com/bug.php?id=90023
51
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 52
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料

More Related Content

What's hot

What's hot (20)

Oracle GoldenGate FAQ
Oracle GoldenGate FAQOracle GoldenGate FAQ
Oracle GoldenGate FAQ
 
Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介
 
つながる!クラウド・データベース間のリアルタイム・データ統合/連携とは
つながる!クラウド・データベース間のリアルタイム・データ統合/連携とはつながる!クラウド・データベース間のリアルタイム・データ統合/連携とは
つながる!クラウド・データベース間のリアルタイム・データ統合/連携とは
 
Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介
 
Oracle R Enterprise の使い方
Oracle R Enterprise の使い方Oracle R Enterprise の使い方
Oracle R Enterprise の使い方
 
Oracle GoldenGate導入Tips
Oracle GoldenGate導入TipsOracle GoldenGate導入Tips
Oracle GoldenGate導入Tips
 
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
GoldenGateテクニカルセミナー1「市場のトレンドと最新事例のご紹介」(2016/5/11)
 
Oracle GoldenGate EM Plugin 13c セットアップガイド
Oracle GoldenGate EM Plugin 13c セットアップガイドOracle GoldenGate EM Plugin 13c セットアップガイド
Oracle GoldenGate EM Plugin 13c セットアップガイド
 
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年9月2日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年9月2日)はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年9月2日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2020年9月2日)
 
Oracle で SPARQL!
Oracle で SPARQL!Oracle で SPARQL!
Oracle で SPARQL!
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
Oracle Data Miner Tutorial 01
Oracle Data Miner Tutorial 01Oracle Data Miner Tutorial 01
Oracle Data Miner Tutorial 01
 
Oracle GoldenGate Studioセットアップガイド
Oracle GoldenGate StudioセットアップガイドOracle GoldenGate Studioセットアップガイド
Oracle GoldenGate Studioセットアップガイド
 
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始めHadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
 
Oracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud ServiceユーザーズガイドOracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud Serviceユーザーズガイド
 
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
 
Oracle Cloud PaaS & IaaS:2018年7月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年7月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年7月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年7月度サービス情報アップデート
 
Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
0151209 Oracle DDD OracleとHadoop連携の勘所
0151209 Oracle DDD OracleとHadoop連携の勘所0151209 Oracle DDD OracleとHadoop連携の勘所
0151209 Oracle DDD OracleとHadoop連携の勘所
 

Similar to MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料

20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
Machiko Ikoma
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
Insight Technology, Inc.
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
Ryusuke Kajiyama
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
Insight Technology, Inc.
 

Similar to MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料 (20)

20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
 
JDK:新しいリリースモデル解説 @ 岡山・広島
JDK:新しいリリースモデル解説 @ 岡山・広島JDK:新しいリリースモデル解説 @ 岡山・広島
JDK:新しいリリースモデル解説 @ 岡山・広島
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
あなたはどうデータを守る?クラウド・AI・自動化を使った、みえない脅威との戦い方
あなたはどうデータを守る?クラウド・AI・自動化を使った、みえない脅威との戦い方あなたはどうデータを守る?クラウド・AI・自動化を使った、みえない脅威との戦い方
あなたはどうデータを守る?クラウド・AI・自動化を使った、みえない脅威との戦い方
 
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
JDK: 新しいリリースモデル解説(ver.2.0)
JDK: 新しいリリースモデル解説(ver.2.0)JDK: 新しいリリースモデル解説(ver.2.0)
JDK: 新しいリリースモデル解説(ver.2.0)
 
20190620 multicloud share
20190620 multicloud share20190620 multicloud share
20190620 multicloud share
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
 
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
 
Oracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年8月度サービス情報アップデート
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイド
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
 

More from yoyamasaki

MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
yoyamasaki
 

More from yoyamasaki (20)

MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
 
MySQLの公式GUIツール MySQL Workbench
MySQLの公式GUIツール MySQL WorkbenchMySQLの公式GUIツール MySQL Workbench
MySQLの公式GUIツール MySQL Workbench
 
MySQL 開発最新動向
MySQL 開発最新動向MySQL 開発最新動向
MySQL 開発最新動向
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
 
DrupalとMySQL
DrupalとMySQLDrupalとMySQL
DrupalとMySQL
 
Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索
 
MySQL Workbench 6.1 の紹介
MySQL Workbench 6.1 の紹介MySQL Workbench 6.1 の紹介
MySQL Workbench 6.1 の紹介
 
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
 
早くなったのか? MySQL5.5から5.6へのアップグレード事例
早くなったのか? MySQL5.5から5.6へのアップグレード事例早くなったのか? MySQL5.5から5.6へのアップグレード事例
早くなったのか? MySQL5.5から5.6へのアップグレード事例
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
 
MySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL WorkbenchMySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL Workbench
 
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
 
ドキュメントデータベースとして MySQLを使う!? ~MySQL JSON UDF~
ドキュメントデータベースとして MySQLを使う!? ~MySQL JSON UDF~ドキュメントデータベースとして MySQLを使う!? ~MySQL JSON UDF~
ドキュメントデータベースとして MySQLを使う!? ~MySQL JSON UDF~
 
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
 

MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料

  • 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0で強化されたGIS機能のご紹介 +α Yoshiaki Yamasaki / 山﨑 由章 MySQL Global Business Unit MySQL Senior Sales Consultant updated: 2018/09/09
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 2
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. はじめに 3
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 今日伝えたいこと • MySQLにもGIS機能があります!積極的に開発しています!! • ご意見下さい! – 本日は終日会場にいます – 懇親会も参加します • 試してみて気づいた点があれば、是非フィードバック下さい! – フィードバックできるページ • MySQL Bugs https://bugs.mysql.com/ – バグ報告だけでなく、機能追加リクエストも受け付けています 4
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 今日伝えたいこと • FOSS4G Hokkaido 2018で発表いただいた 「MySQL 8.0.11使ってみた」に対する補足 – MySQL8.0.11使ってみた SRIDが実装されたと聞いて https://foss4g.hokkaido.jp/2018/data/mysql8011tukattemita.pdf [発表後に追記] • GDAL 2.3.2がリリースされれば、ogr2ogrを使用してMySQL 8.0へ シェープファイルをインポートできるようになりそうです!! 5
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQLのGIS機能の歴史 6
  • 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 7 MySQLの歴史 4.0 全文検索 (MyISAM) 複数テーブルUPDATE/DELETE 組み込みライブラリ型サーバ OracleMySQL Sun 3.23 MyISAM InnoDB レプリケーション 5.1 プラグガブル・ ストレージエンジン・ アーキテクチャ パーティショニング タスクスケジューラ 5.6 全文検索(InnoDB) memcached API UNDO表領域 Global Transaction ID マルチスレッドスレーブ オンラインALTER TABLE トランスポータブル表領域 5.5 InnoDBがデフォルトに 準同期型レプリケーション PERFORMANCE_SCHEMA 1.0-3.22以前 ストレージエンジン (ISAM, HEAP) マルチスレッド Windows対応/64bit対応 日本語文字コード (SJIS/UJIS) 5.0 ストアドプロシージャ ストアドファンクション カーソル/トリガ/ビュー XAトランザクション INFORMATION_SCHEMA 4.1 GIS(MyISAM) Unicode対応 サブクエリ CSV, ARCHIVE ndbcluster 1995 2000 2005 2010 2015 5.7 2015年10月21日 GA 全文検索CJK対応/GIS (InnoDB) 新コストモデル オプティマイザ ロスレス レプリケーション マルチソース レプリケーション グループ レプリケーション セキュリティ強化 データディクショナリ NoSQLオプション ・ 1995年:スウェーデンにてMySQL AB設立 ・(2005年:オラクルがInnobase Oyを買収) ・ 2008年:Sun MicrosystemsがMySQL ABを買収 ・ 2010年:オラクルがSun Microsystemsを買収 8.0 2018年4月19日 GA トランザクショナルDD MySQLドキュメントストア Unicode 9.0サポート 国ごとの照合順序を追加 CTE、Window関数 GIS機能の拡張 (InnoDB)
  • 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の歴史 • MySQL 4.1 – MyISAMでのみGIS機能が使えるようになった • geometryデータ型 • Spatialインデックス • Spatial関数 • MySQL 5.0 – InnoDBでもgeometryデータ型、Spatial関数を扱えるようになった • Spatialインデックスは使用できず ※地理情報システムに関するオープンな規格であるOpenGISに基づいた実装が されていたが、MySQL開発チームによる独自実装であった 8
  • 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の歴史 • MySQL 5.7 – Boost.GeometryというC++のオープンソースライブラリを採用して独自実装をやめ、 InnoDBでGIS関連機能を再実装した • geometryデータ型 • Spatialインデックス • Spatial関数(使える関数の種類も増加) • GeoHashサポート • GeoJSONサポート ※Boost.Geometryコミュニティとも活発に交流し、MySQLチームから Boost.Geometryへのコントリビュートも行っている 9
  • 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の歴史 • MySQL 5.7 – 挙動が不明確で分かり難いSpatial関数は非推奨となった • 例:Contains()は、以下のどちらの関数と同じ動きをするか分かり難いので廃止予定となった – MBRContains – ST_Contains() 10
  • 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の歴史 • MySQL 8.0 – OpenGIS標準準拠 – 演算、データ変換に役立つ各種のSpatial関数の追加 • st_x(geom, x) • st_y(geom, y) • st_srid(geom, srid) – MySQL 5.7で非推奨になった関数の廃止 –Geography サポート • st_distance() 関数 –Spatial Data、Spatial Index、Spatial関数のSRIDサポート 11
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の歴史 • MySQL 8.0 – OpenGIS標準準拠 – 演算、データ変換に役立つ各種のSpatial関数の追加 • st_x(geom, x) • st_y(geom, y) • st_srid(geom, srid) – MySQL 5.7で非推奨になった関数の廃止 –Geography サポート • st_distance() 関数 –Spatial Data、Spatial Index、Spatial関数のSRIDサポート 12
  • 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQLは積極的に GIS機能を開発しています!! 13
  • 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GIS機能の紹介 14
  • 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. geometryデータ型 • OpenGISジオメトリモデルに基づいた以下のデータが使用可能 – GEOMETRY、GEOMETRYCOLLECTION – 点:POINT、MULTIPOINT – 線:LINESTRING、MULTILINESTRING – 多角形:POLYGON、MULTIPOLYGON ※GEOMETRYには、POINT、LINESTRING、POLYGONを格納可能 ※GEOMETRYCOLLECTIONには、MULTIPOINT、MULTILINESTRING、MULTIPOLYGONを 格納可能 15
  • 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Spatial関数 • ジオメトリデータを扱える各種の関数 • 例 – ST_Distance() • 2つのジオメトリを入力し、2地点間の距離を出力 – ST_Distance_Sphere() • 2つのジオメトリを入力し、2地点間の最小球面距離を出力 – ST_Contains() • あるジオメトリに別のジオメトリが含まれているかどうかを判定する • MySQL 8.0で使えるSpatial関数一覧 – MySQL 8.0 Reference Manual / ... / 12.15.1 Spatial Function Reference https://dev.mysql.com/doc/refman/8.0/en/spatial-function-reference.html 16
  • 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GeoHash • 経緯度の情報を文字列化したもの – 例:愛知大学 名古屋キャンパス 講義棟(経度:136.884242、緯度:35.161329)の GeoHash ⇒ xn324bujd4<<後略>> • 特徴 – 文字列なので、データベースで扱いやすい (インデックスも活用可能) – GeoHashの情報は点ではなく範囲(矩形のエリア)を表す – 文字列の桁数で精度を変えることができる • 10桁を超えると矩形の一辺が1m以下になるので、経緯度の変わりとしても十分利用可能 • 近接エリアの判定等に利用可能 17
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GeoHash • MySQL 5.7以降では、GeoHashを扱うための関数が使用できる – ST_GeoHash():経度、緯度(POINT型のデータでも可)を入力し、GeoHashを出力 – ST_LatFromGeoHash():GeoHashを入力し、経度を出力 – ST_LongFromGeoHash():GeoHashを入力し、緯度を出力 – ST_PointFromGeoHash():GeoHashを入力し、POINT型のデータを出力 18 ※詳細を解説しているマニュアル MySQL 8.0 Reference Manual / ... / 12.15.10 Spatial Geohash Functions https://dev.mysql.com/doc/refman/8.0/en/spatial-geohash-functions.html
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GeoJSON • 空間データを扱うためのフォーマットの一つ • JSONによる表現で空間データを扱える – 例:愛知大学 名古屋キャンパス 講義棟(経度:136.884242、緯度:35.161329)の GeoJSONによる表現 ⇒ {"type": "Point", "coordinates": [136.884242, 35.161329]} 19
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GeoJSON • MySQL 5.7以降では、GeoJSONを扱うための関数が使用できる – ST_AsGeoJSON():ジオメトリ型のデータを入力し、GeoJSONデータを出力 – ST_GeomFromGeoJSON():GeoJSONデータを入力し、ジオメトリ型のデータを出力 20 ※詳細を解説しているマニュアル MySQL 8.0 Reference Manual / ... / 12.15.11 Spatial GeoJSON Functions https://dev.mysql.com/doc/refman/8.0/en/spatial-geojson-functions.html
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQL Workbenchの活用 21
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQL Workbench • 管理ツール • SQLエディタ • Performance Dashboard • Visual Explain • GIS Viewer • ER図作成、フォワード/ リバースエンジニアリング、 など豊富な機能 22 データベースアーキテクト、開発者、DBA のための統合ビジュアルツール 商用版のみの機能: DBドキュメント出力、データモデルの検証、 MySQL Enterprise Backup GUI、MySQL Enterprise Audit GUI
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. "Spatial Viewer" and "Geometry Viewer" • ジオメトリ型のデータを図示可能 23
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 「MySQL 8.0.11使ってみた」に対する補足 24
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 「MySQL 8.0.11使ってみた」に対する補足 • FOSS4G Hokkaido 2018で、以下の発表をして頂きました – MySQL8.0.11使ってみた SRIDが実装されたと聞いて https://foss4g.hokkaido.jp/2018/data/mysql8011tukattemita.pdf • シェープファイルの取り込み、POINTデータのインサートに以下4つの 方法を試して頂きましたが、いずれもエラーになっています – MySQL Workbench 8.0.11 – QGIS 2.18.20、3.0.1 – SQL実行(MySQL Workbenchから) – org2ogr 25
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 「MySQL使えない!」、 とならないように、補足します 26
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • MySQL Workbench 8.0.11 – ログまで確認できていないため厳密に 判断できませんが、エラー発生時の 画面から判断すると、おそらく環境設定に 依存した問題と思われます 27 おざきさんの発表資料13ページより引用 ※MySQL Server 8.0.11はGA(製品版)ですが、 MySQL Workbench 8.0.11はRC(リリース候補版)です。 FOSS4G Hokkaido 2018 以降にMySQL Workbench 8.0.12 GAが リリースされています。
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • QGIS 2.18.20、3.0.1 – GeometryFromText関数は、MySQL 5.7で非推奨になり、MySQL 8.0で廃止されました – MySQL 8.0では、ST_GeometryFromText関数が使用できます 28 おざきさんの発表資料18ページより引用
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • QGIS 2.18.20、3.0.1 – SRIDが-2になっている点については原因まで判断出来ていませんが、 QGIS側(GDAL)の問題と思われます 29 おざきさんの発表資料18ページより引用
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 備考:MySQL 5.7と8.0で使用できるSpatial関数 • MySQL 5.7 Reference Manual / 12.15.1 Spatial Function Reference https://dev.mysql.com/doc/refman/5.7/en/spatial-function-reference.html • MySQL 8.0 Reference Manual / 12.15.1 Spatial Function Reference https://dev.mysql.com/doc/refman/8.0/en/spatial-function-reference.html 30
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 備考:MySQL 5.7と8.0で使用できるSpatial関数 • MySQL 5.7のマニュアルで、 GeometryFromText関数は非推奨になったので、 ST_GeometryFromText関数を使用するように案内されています 31
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • SQL実行(MySQL Workbenchから) – 緯度、経度の指定がMySQLの仕様と逆になっていることが原因です – 緯度、経度の指定を逆にすれば、SQLが実行できます(次ページ参照) 32 おざきさんの発表資料19ページより引用
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • SQL実行例 33 mysql> INSERT INTO `test_pt` (`the_geom` , `gid` , `point_name`) VALUES(ST_GeometryFromText('POINT (35.1703251460096 136.88184188928)',4326) ,1, 'nagoya_station'); Query OK, 1 row affected (0.00 sec) mysql> mysql> SELECT point_name,ST_AsWKT(the_geom) FROM test_pt; +----------------+-----------------------------------------+ | point_name | ST_AsWKT(the_geom) | +----------------+-----------------------------------------+ | nagoya_station | POINT(35.1703251460096 136.88184188928) | +----------------+-----------------------------------------+ 1 row in set (0.00 sec)
  • 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 補足 • 経度、緯度の指定順番に関して、以下のQiitaの記事が参考になります – MySQLの空間拡張機能のaxis orderについて https://qiita.com/yellow_73/items/e15c5414c33874a4f94e – MySQLのaxis orderは「バグってる」わけではない https://qiita.com/yellow_73/items/eea0c7fd21e40140b491 – MySQLの空間拡張機能の内部表現のaxis orderについての「チラシの裏」 https://qiita.com/yellow_73/items/0a953c157ff6c603ef7a 34
  • 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. エラーの原因 • org2ogr – QGISと同様です(GDALに依存しているため、同様の問題が発生しています) 35 おざきさんの発表資料22ページより引用
  • 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GDALに依存した問題の整理 • GDALを利用して生成されたSQL文を修正すれば、SQLが実行できた – MySQL 8.0がエラーの原因ではなく、GDALがMySQL 8.0に合わせた SQLを正しく生成できていないことが原因 • 修正点は以下の3点 – 1.廃止された関数を使用していた ⇒MySQL 8.0で使用できる関数名に修正すれば解決 – 2.SRIDの指定が間違っていた ⇒SRIDを正しく指定すれば解決 – 3.経度、緯度の指定順番が逆になっていた ⇒MySQLの仕様に合わせた順番に修正すれば解決 36
  • 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GDALコミュニティに この状況を伝えたい! 37
  • 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. GDALコミュニティに どうアプローチすればいいか、 是非アドバイスください!! 38
  • 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. [発表後に追記] 39 アドバイスを下さった方々、 私の検証を支援して下さったおざきさん、 ありがとうございます!
  • 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. [発表後に追記] • 「廃止された関数名を使用していた問題」については GDAL 2.3.2で修正されそうです – ogr2ogr with MySQL 8 #782 https://github.com/OSGeo/gdal/issues/782 – Issue with Mysql import #899 https://github.com/OSGeo/gdal/issues/899 40
  • 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. [発表後に追記] • 「SRIDの指定が間違っていた問題」については以下のIssueを登録しました – ogr2ogr with MySQL 8 (Wrong SRID) #905 https://github.com/OSGeo/gdal/issues/905 • こちらもGDAL 2.3.2で修正されそうです 41
  • 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. [発表後に追記] • 「経度、緯度の指定順番が逆になっていた問題」については以下の Issueを登録しました – ogr2ogr with MySQL 8 (Wrong Axis Order) #906 https://github.com/OSGeo/gdal/issues/906 • こちらもGDAL 2.3.2で修正されそうです 42
  • 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. [発表後に追記] • GDAL 2.3.2がリリースされれば、ogr2ogrを使用してMySQL 8.0へ シェープファイルをインポートできるようになりそうです!! • GDAL 2.3.2リリース後、みなさん是非お試し下さい!! ※GDAL 2.3.2を利用したQGISやMySQL Workbenchがリリースされれば、それぞれのツールからも MySQL 8.0へシェープファイルをインポートできるようになりそうです 43
  • 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 参考情報 44
  • 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 参考情報 • マニュアル – https://dev.mysql.com/doc/refman/8.0/en/ • コミュニティフォーラム – http://forums.mysql.com/list.php?23 • Boost.Geometry – http://www.boost.org/libs/geometry • バグ報告&機能追加リクエスト – http://bugs.mysql.com/ 45
  • 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 参考情報 • MySQL開発チームのブログ記事(GIS機能開発者の投稿記事) https://mysqlserverteam.com/author/nryeng/ – 例) • Spatial Reference Systems in MySQL 8.0 • Geography in MySQL 8.0 • Axis Order in Spatial Reference Systems • Geographic Indexes in InnoDB • Geographic Spatial Reference Systems in MySQL 8.0 • Projected Spatial Reference Systems in MySQL 8.0 • Upgrading Spatial Indexes to MySQL 8.0 • Creating Your Own Spatial Reference Systems in MySQL 8.0 46
  • 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 参考情報 • MySLQ 8.0 GIS Demos https://github.com/nryeng/mysql-8.0-gis-demos – OpenLayers、OpenStreetMap、ProxySimplePHPのタイルキャッシュを使用したデモ (MySQL 8.0がGA(製品版)になる前に作成されたデモ) 47
  • 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. その他 48
  • 49. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. フィードバック協力者募集中!! 49
  • 50. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQL Bugsでのフィードバック • MySQL Bugs – https://bugs.mysql.com/ • バグ報告だけでなく、機能追加リクエストも受け付けています – 特に、日本固有のGIS事情に合わせた機能追加リクエストを登録頂けると助かります • 「Affect me」ボタンを押すことで、 – 他の人が登録したバグと同じバグに遭遇した – その機能追加を私も望んでいる ということを伝えることができます 50
  • 51. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. MySQL Bugsでのフィードバック • 私が登録している機能追加リクエスト – Bug#88871 : Add ST_Transform() function to transform geometry data to different SRID https://bugs.mysql.com/bug.php?id=88871 – Bug#90023 : [Feature request] Shape File import/export tool https://bugs.mysql.com/bug.php?id=90023 51
  • 52. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 52