Project highlights
ビジネス上の課題
コネクテッドカーおよびロケーションソリューションの開発サービスにおける大手プロバイダーである当社のクライアントは、自社のテクノロジーソリューションの継続的な改善に取り組んでいます。生産コストを削減し、商用データに伴う制限を回避するため、同社はOpenStreetMap(OSM)の地理データベースを採用し、社内で地図の作成を開始することにしました。これにより、クライアントはナビゲーションプラットフォームプロバイダーから独立し、ナビゲーションソリューション向けに提供されるマップの更新頻度と品質を完全にコントロールできるようになります。

OSMは、無料かつ編集可能で、常に更新されるデータベースを提供します。受信するデータ量がかなり多く、またロケーションソリューションの開発ではタイムリーなリリースが求められることを考慮すると、データ処理にはビッグデータプラットフォームと、データマッピングソリューションに関する確かな専門知識が必要となります。データマッピングサービスの提供において専門性を実証してきたIntelliasは、クライアントが既存のシステムからOSMが提供する無料のオープンソースデータに移行する際に協力するよう依頼されました。チームは、Sparkフレームワークに基づくビッグデータプロセスを採用し、データのクレンジング、サードパーティデータの統合、既存データのエンリッチメント、および取得したデータに適切な構造を提供しました。
OpenStreetMapの統合
OpenStreetMapには、レビュー担当者がデータベースに貢献できる特別なツールがあります。OSMマップはベクトルデータとして提供されますが、マップは認定されたコントリビューターによる検証を受けた後にのみ更新されます。このプロジェクトでは、更新されたデータを毎日取り込み、そのデータはポータブルなスナップショットの形で利用可能になります。その後、このデータを解析し、Parquetに変換してHadoopにアップロードし、Sparkが安定して処理します。他のプラットフォームから取得されるデータとは異なり、OSMデータは構造化されておらず、既存のデータベースに適合させるために調整が必要です。
このプロジェクトの主な課題は、OSMデータの構造化でした。以前、このプロジェクトでは、Oracle関連のテーブルとして提供される、リレーショナルデータベース形式(RDF)のソース処理済みデータを使用していました。OSMデータは性質が異なるため、エンドツーエンドのデータ処理を開始する前に適切に変換する必要がありました。
さらに、OSMデータは人々によって入力されており、そのモデルには制限がありません。これにより、人々は制限なくさまざまな属性を追加できます。このことから、別の重要なプロジェクトタスクが生じました。それは、収集されたデータを正規化し、以前にプロジェクトに提供されたソースデータと互換性を持たせることです。Intelliasチームは、SparkとJava内でOpenStreetMap統合データを処理するための最適なソリューションを見つけ出しました。
ソリューションには以下が含まれていました。
- スケーリングと並列データ処理のためのSparkフレームワーク
- Sparkフレームワークを使用して開発された、クラウドおよびオンプレミスのクラスターの両方で使用可能なソフトウェア
- Sparkリソースによる自動スケーリング
- 負荷に応じてノードを追加・削除することによるクラスターのスループット管理
- データ処理および分析に使用できる分散型SQLクエリエンジン、Spark SQL
- Ansibleスクリプト、Jenkinsなどのさまざまなツールを使用して自動化・可視化されたデータパイプライン
- インタラクティブなデータ分析とコラボレーティブドキュメント
- データ駆動型アナリティクス用のSparkインタープリターを含む、ZeppelinのWebベースのノートブック
ビジネス上の成果
経験豊富なIntelliasのエンジニアは、Java、Spark、および全体的な地図配信プロセスに関する豊富な経験を活かし、プロジェクトの効率を向上させ、開発プロセスを整理し、スケーラブルなソリューションを構築しました。
Intelliasの豊富な地図作成経験に加え、置き換え対象のサードパーティソリューションおよびソースデータに関する確かな経験が、このプロジェクトにおいて大きな転換点となりました。OpenStreetMapのデータを既存のシステムと互換性のあるものにし、それを採用し、スケーラブルで効率的なソリューションを開発することは、確かなドメイン経験がなければ不可能だったでしょう。
Intelliasのエンジニアは、数多くのプロセス改善を提案することができました。ナイトリービルドシステムの構築により、コードベースを健全に保ち、完全に自動化されたビルドスクリプトを維持することができました。これにより、ビルドプロセスが文書化され、再現可能であることが保証されました。SQLクエリの形で実装された強力なテストおよび検証フレームワークにより、開発プロセスが指定されたビジネス要件を満たしているかどうかが判断されました。ビジュアライザーフレームワークの活用により、顧客にとって優れたユーザーエクスペリエンスの実現が可能になりました。これらの改善のそれぞれが、プロジェクト全体の効率性に大きなプラスの影響を与え、生産コストの削減に貢献しました。