5

はじめに

OpenStreetMap ソース ファイルをダウンロードして解凍しました (こちら を参照)。現在、400GB の XML ソースファイルがあります。(1) データを MySQL テーブルに挿入するか、( 2) これを SQL ファイルにエクスポートするかは問題ではありません。

私がすでにやった/試したこと

  1. XML ファイル^^ と MySQL サーバー (5.6.14) があります。
  2. OSMデータを変換するツールOsmosisを見つけてインストールしました
  3. 私はこの投稿を読みました: API を使用せずに都市と道路をデータベースに読み込む
  4. この投稿も読みました: Is this config is able to import complete osm planet file? (そうです。)
  5. osmosis を使用してデータを挿入しようとしましたが、1 行も挿入せずに数秒後にエラーがスローされるか、何時間も何もしません。また、MySQL に OSM テーブル構造がないため、これがどのように機能するのかわかりません。

質問

ファイル全体をデータベース/SQLファイルにインポートすることは一般的に可能ですか? テーブル/データベース構造はどこにありますか? 誰かがすでに試しましたか?

どうもありがとうございました!

4

2 に答える 2

4

この質問に対する答えが変わったと思います。MySQL 5.6 の時点で、MySQL には完全な機能を備えた OpenGIS 地理空間機能セットがあります (これは拡張機能ではなく、組み込まれています)。したがって、純粋に理論的な観点からは、PostgreSQL で使用する標準のサポートされているデータベース スキーマを使用して OSM データを MySQL にインポートできない理由はありません (もちろん、必要に応じて構文を変更します)。実際、このプレゼンテーション(これはまだ MySQL の OpenGIS サポートの古い不完全なバージョンを参照しています) は、適切なインデックス付けを行うことで、いくつかの MySQL 地理空間アクションが実際には PostgreSQL PostGIS よりも優れたパフォーマンスを発揮する可能性があることを示唆していますが、それについては議論の余地があると確信しています. 残りの問題はインポートツールです...

現在、 にosm2mysql相当する公式のものはありませんosm2pgsql。という名前のプロジェクトがいくつかありますが、osm2mysqlこれらのプロジェクトを使用して、成功したとしても中程度の成功しか収めていない人を見てきました。ただし、GDALのオープン ソースogr2ogrは非常に実行可能なソリューションのようです。

ダウンロード、コンパイル、インストールして、シェープファイルを MySQL の地理空間スキーマにogr2ogrインポートし、. 私はまだ OSM を試していませんが (これが私の次のステップです)、 OSM (XMLバイナリ)を完全にサポートしていると主張しています。ST_Contains(...)ogr2ogr

いくつかの初期の問題がありました。そのうちの 1 つは試行make clean間で使用しなかったことに関連している可能性が高くconfigure、その他の問題は関連する大規模なクエリ (一部の挿入 > 1MB) に関連し、いくつかの MySQL 設定を補正するために調整する必要がありました。このメーリング リスト スレッドで、私のソリューションの詳細を確認できます。

于 2015-09-23T19:32:33.163 に答える