FOSS4G 2023 Japan@FUKUI スポンサー講演7:デジタル社会を目指して~分散DBと分散処理の連携に関する調査 熊谷 康太様(株式会社NTTデータグループ) 発表資料
© 2023 NTT DATA Group Corporation© 2023 NTT DATA Group Corporationデジタル社会を目指して~分散DBと分散処理の連携に関する調査2023年9月18日株式会社NTTデータグループ技術革新統括本部 技術開発本部 IOWN推進室熊谷康太
View Slide
© 2023 NTT DATA Group Corporation 2目指すべき未来社会の姿として第5期科学技術基本計画においてSociety5.0が提唱された。Society5.0とは情報社会(Society4.0)における課題がIT等を活用したデジタル技術によって解決されている社会である。デジタル社会(Society 5.0)とはSociety 5.0までの変遷 Society 5.0で実現する世界狩猟社会(Society 1.0)、農耕社会(Society 2.0)、工業社会(Society 3.0)、情報社会(Society 4.0)に続く、新たな社会のことであり、経済発展と社会的課題の解決を両立する、人間中心の社会(Society)IoTや人工知能、ロボット、自動走行車などの技術により社会変革(イノベーション)が起き、情報社会(Society 4.0)における課題を解決できる。例えば、人手不足のために十分な配送サービスを享受できないという地域の課題に対して、地理空間情報やドローン技術などを活用することで自動配送サービスを実現し解決することがあげられる。参考: 内閣府 Society5.0 (https://www8.cao.go.jp/cstp/society5_0/)
© 2023 NTT DATA Group Corporation 3Society 5.0の実現に求められることSociety5.0はサイバー空間(仮想空間)とフィジカル空間(現実空間)を高度に融合させたシステムによって実現される。このシステムを実現するためには多様で膨大な地理空間情報をリアルタイムに収集し、効率的に分析することが必要となる。サイバー空間(仮想空間)とフィジカル空間(現実空間)を高度に融合させたシステムによって実現される。Society 5.0のしくみ参考: 内閣府 Society5.0 (https://www8.cao.go.jp/cstp/society5_0/)東京都デジタルツインプロジェクト(https://info.tokyo-digitaltwin.metro.tokyo.lg.jp/)サイバー空間とフィジカル空間を高度に融合させたシステムの例(東京都デジタルツインプロジェクト)現実空間の様々なIoTセンサデータ(地理空間情報)などをリアルタイムに収集し、効率的に分析して、現実世界にリアルタイムにフィードバックする必要がある
© 2023 NTT DATA Group Corporation 4従来技術の課題と先進技術の動向従来技術についてPostGISは多様な地理空間の情報収集、分析に役立つ。ただし、モノリシックな構成であるためスケーラビリティに課題がある。(データ、トランザクションの規模の増加に対応することが難しい)先進技術の動向水平スケール可能な分散DBが登場。社会課題と技術動向を踏まえた取組PostgreSQLとの互換性を持つ分散DBであるYugabyteDBについて地理空間情報の収集(書き込み)と分析(読み込み)の処理性能がスケールするか調査する。YugabyteDBに書き込みと読み込みを行うアプリケーションについては大規模データのリアルタイム処理に適したApache Sparkを用いる。参考:PLATEAU (https://www.mlit.go.jp/plateau/use-case/uc22-008/)(https://www.mlit.go.jp/plateau/use-case/uc23-05/), Japan Comuputer Technology(https://www.jctechno.co.jp/system/case1/index.html),株式会社スポットライト(https://www.pgecons.org/wp-content/uploads/2013/12/7c14ac1727a38c22295af840fc613321.pdf),RESAS(https://resas.go.jp/population-future-mesh/#/map/13/13101/2/2050/0/0/0.5/10.079484783826816/35.6939726/139.7536284/2050/0)PostgreSQL互換MySQL互換多様な地理空間情報の収集、分析に役立つ技術としてPostGISがあるがスケーラビリティに課題がある。一方で近年高いスケーラビリティを特徴とする分散DBが登場している。3D都市モデルハザードマップヒートマップナビゲーションPostGISの活用事例
© 2023 NTT DATA Group Corporation 5YugabyteDBとはYugabyte社が中心に開発しているOSSプロダクト。PostgreSQLとの高い互換性を目指しており、PostGISとも互換性を持っているYugabyteDBクラスタYugabyteDBノード#1YB-MasterYB-TserverYugabyteDBノード#2YB-MasterYB-TserverYugabyteDBノード#3YB-MasterYB-TserverYB-Masterはクラスタ全体のメタデータを管理YB-Tserverはクエリ処理やユーザデータの保管を担当ユーザデータの配置先・ユーザ・権限などのメタデータを管理する「YB-Master」と、ユーザデータを保持するとともに、ユーザリクエストを処理する「YB-Tserver」の2つのコンポーネントから構成される。複数のYB-MasterとYB-Tserverで構成されるクラスタをYugabyteDBクラスタと呼ぶ。
© 2023 NTT DATA Group Corporation 6Apache Sparkとは大量のデータを たくさんのサーバを並べて並列分散処理し、現実的な時間(数分~数時間)で目的の処理結果を得るビッグデータのリアルタイム分析に適したOSSの分散処理フレームワークである。◼ 分散処理フレームワークの概要◼ Apache Sparkを用いる理由ディスクIOを少なくしてなるべくインメモリで処理する設計となっており高速に動作することが特徴である。この特徴を活かしてYugabyteDBと組み合わせることで今まで困難であった大規模な地理空間情報のリアルタイムな収集、分析が実現できるのではないかと考えて採用する。
© 2023 NTT DATA Group Corporation 7取組の概略YugabyteDBに対するApache Sparkを用いた地理空間情報の書き込みと読み込みについて調査し、実機を用いて動作を確認した。AWSApache Sparkクラスタ YugabyteDBクラスタクライアントノードSparkクライアントアプリメトリクス収集・監視ノード Masterノード#3Masterノード#2Masterノード#1Workerノード#3Workerノード#2Workerノード#1YugabyteDBノード#3YugabyteDBノード#2YugabyteDBノード#1C1 C2 C3xxx yyy zzz.. .. .... .. ..STEP1YugabyteDBにテーブルを作成し、27万レコードを挿入※日本全国の橋梁数の約3/1に相当C1 C2 C3xxx yyy zzz.. .. .... .. ..STEP2Sparkクライアントアプリでの操作をトリガとしてYugabyteDBのテーブルをSpark上に読み込みC1 C2 C3xxx yyy zzz.. .. .... .. ..STEP3Sparkクライアントアプリでの操作をトリガとしてSpark上に読み込んだデータを別名テーブルとしてYugabyteDBに書き込み各ノードのスペックは以下• t3.xlarge(4CPU, 16GiB)• gp2(100GiB, 300IOPS)参考: 国土交通省 道路の維持管理についてhttps://www8.cao.go.jp/kisei-kaikaku/kisei/meeting/wg/seicho/20191219/191219seicho03.pdf
© 2023 NTT DATA Group Corporation 8実行結果(読み込み)YugabyteDBノード別 読み込み処理実行中のスループット(SELECT)読み込みによるYugabyteDBのメトリクス変化量SELECTに関するメトリクス 変化量YugabyteDBノード#1実行ステートメント数 885YugabyteDBノード#2実行ステートメント数 913YugabyteDBノード#3実行ステートメント数 927合計 実行ステートメント数 272527万レコードのデータ読み込みが411秒で実行できた。また、読み込みリクエストが概ね均等に各YugabyteDBノードに分散されることが確認できた。YugabyteDBの各ノードに大きなスループットの偏りは見られなかったリクエストがほぼ均等に分散している
© 2023 NTT DATA Group Corporation 9実行結果(書き込み)YugabyteDBノード別 書き込み処理実行中のスループット(INSERT)書き込みによるYugabyteDBのメトリクス変化量INSERTに関するメトリクス 変化量YugabyteDBノード#1実行ステートメント数 90025YugabyteDBノード#2実行ステートメント数 85942YugabyteDBノード#3実行ステートメント数 94033合計 実行ステートメント数 27000027万レコードのデータ書き込みが450秒で実行できた。また、読み込みと同様、書き込みリクエストが概ね均等に各YugabyteDBノードに分散されることが確認できた。YugabyteDBの各ノードに大きなスループットの偏りは見られなかった読み込みと同様、リクエストがほぼ均等に分散している
© 2023 NTT DATA Group Corporation 10まとめと今後の展望◼ まとめSociety5.0に向けた社会課題と技術動向を踏まえてPostgreSQLと互換性のある分散DBであるYugabyteDBと分散処理フレームワークであるApache Sparkを用いて地理空間情報の読み込みと書き込みの処理性能がスケールするかについて調査した。調査の結果、今回検証で用いた構成においては27万件レコードの処理について、読み込み処理の場合は411秒で完了し、書き込み処理の場合は450秒で完了することが確認できた。また、書き込みと読み込みのいずれについてもSparkノードからのリクエストが各YugabyteDBノードにおよそ均等に分散することから、Sparkクラスタを構成するノード数とYugabyteDBクラスタを構成するノード数を水平スケールさせることで地理空間情報の読み込みと書き込みの処理性能がスケールする可能性があると考える。◼ 今後の展望従来技術で課題となっていたスケーラビリティの部分が分散DBによって解決することができれば、大規模な地理空間情報をリアルタイムに収集し、効率的に分析して、現実世界にフィードバックすることが求められるシステムの実現に寄与できると考える。