Slide 1

Slide 1 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. MySQL 8.0にShapeファイルをインポートする updated: 2019/06/10 Yoshiaki Yamasaki / 山﨑 由章 MySQL Senior Sales Consultant, Asia Pacific and Japan

Slide 2

Slide 2 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。

Slide 3

Slide 3 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Shapeファイルとは? • 他の地理情報システム(GIS)間でのデータの相互運用における オープン標準として用いられるファイル形式 • ポイント、ライン、ポリゴンなどを保存できる • 単一のファイルではなく、複数ファイルから構成されている – 複数ファイルを同一フォルダに格納して使用する 3

Slide 4

Slide 4 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. やること • e-Stat(政府統計の総合窓口)からダウンロードしたShapeファイルを GDAL 2.3.2のogr2ogrを使ってMySQL 8.0にインポートし、 MySQL Workbenchのジオメトリビューアーで表示する • Googleマップで市町村の形を確認し、 MySQL Workbenchの ジオメトリビューアーから確認した形と一致していることを確認する 4

Slide 5

Slide 5 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. e-StatからのShapeファイルのダウンロード • e-Stat https://www.e-stat.go.jp/ • e-StatからShapeファイルをダウンロードする手順 – e-StatからShapeファイルをダウンロードする https://www.youtube.com/watch?v=2eBWFQizBjU 5

Slide 6

Slide 6 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. デモ 6

Slide 7

Slide 7 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. デモで使用したコマンド 1. MySQL上にテスト用のスキーマ(geotest)を作成 2. ogr2ogrを使って沖縄県のShapeファイルをgeotestデータベースに インポート 3. MySQL上に作成されたテーブルの確認 7 mysql> create database geotest; C:¥> ogr2ogr.exe -f "MySQL" MySQL:"geotest,host=127.0.0.1,user=root, password=root,port=3306“ C:¥work¥e-Stat¥h27ka47.shp mysql> USE geotest; mysql> SHOW TABLES; mysql> SHOW CREATE TABLE geotest.geometry_columns¥G mysql> SHOW CREATE TABLE geotest.h27ka47¥G

Slide 8

Slide 8 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. デモで使用したコマンド 4. インポートされたデータを確認 5. MySQL Workbenchのジオメトリビューアーで 「沖縄県那覇市牧志3丁目」のポリゴンデータを確認する際に実行した SQL 6. Googleマップで「沖縄県那覇市牧志3丁目」の形を確認 8 mysql> SELECT OGR_FID, HEX(SHAPE), pref_name, city_name, s_name FROM geotest.h27ka47 LIMIT 1¥G mysql> SELECT OGR_FID, ST_AsText(SHAPE), pref_name, city_name, s_name FROM geotest.h27ka47 LIMIT 1¥G SELECT OGR_FID, SHAPE, pref_name, city_name, s_name FROM geotest.h27ka47 WHERE OGR_FID=51;

Slide 9

Slide 9 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 参考:MySQL Workbenchのジオメトリビューアーでの確認結果 9

Slide 10

Slide 10 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 現状の課題 ※このスライド以降は、発表時間の関係で当日説明しきれなかった点ですが、 資料公開時に追記しています。 10

Slide 11

Slide 11 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 現状の課題 • 文字コードがSJISのShapeファイルをogr2ogrでインポートした際に、 エラーが発生するケースがある • この問題についてGDALのissueを登録しました – ogr2ogr with MySQL 8 (Shape file import error) #1089 https://github.com/OSGeo/gdal/issues/1089 • 文字化けが原因と思われます – エラー発生時のINSERT文では、文字列データの区切りとなるシングルクォートが 欠けていました – 該当ファイルの文字コードをUTF-8に変換することでエラーを回避できました 11

Slide 12

Slide 12 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 現状の課題 • 「ogr2ogrにSQLスクリプトを作成するオプションを追加して欲しい」という 機能追加リクエストも登録しました(優先度が低いと判断されていますが) – Feature request: Create SQL Script option to ogr2ogr #1090 https://github.com/OSGeo/gdal/issues/1090 12

Slide 13

Slide 13 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 、、、とGDALに頼ってしまって いますが、 13

Slide 14

Slide 14 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 本音を言えばMySQLが提供する Shapeファイルをインポートする ためのツールも欲しい 14

Slide 15

Slide 15 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Affects me 大歓迎です!! Bug#90023: [Feature request] Shape File import/export tool https://bugs.mysql.com/bug.php?id=90023 15

Slide 16

Slide 16 text

Copyright © 2019, Oracle and/or its affiliates. All rights reserved.

Slide 17

Slide 17 text

No content