Skip to content

データ処理の仕組み

背景

nehan のベースプランにおけるデータ処理は、Python で行っています。
しかし、データサイズが大きくなると処理が遅くなる、あるいは処理ができないというデメリットがあります。
対して、Hyper nehan オプションは、ビッグデータを Apache Spark(以下、Spark)で処理することで高速化を実現することができます。


自動スイッチ機能

Spark はあくまでビッグデータに対して高速処理を発揮するものであり、小さいデータの処理時間は Python のほうが早いです。
そこで nehan では、データサイズに応じて処理するエンジンを Python と Spark で切り替える仕組みを搭載しています。
これにより、どんなデータサイズでも高速処理ができるように工夫をしています。

Yes
No
データAが入力される
Aのサイズがx以上か
Sparkで処理する
Pythonで処理する

パフォーマンス比較

検証環境

  • ベースプラン: X ラージ
  • Hyper nehan オプション: Hyper1

検証データ

  • 1GB: 約 1,700 万行 ✕ 14 列
  • 5GB: 約 8,400 万行 ✕ 14 列

処理速度検証結果

データソース作成(1GBファイルアップロード)0秒15秒30秒45秒60秒75秒90秒105秒120秒135秒150秒165秒180秒180秒 70秒(2倍速い) HyperなしHyperありデータソース作成(1GBファイルアップロード) データソース作成(5GBファイルアップロード)0秒60秒120秒180秒240秒300秒360秒420秒480秒540秒600秒600秒 220秒(3倍速い) HyperなしHyperありデータソース作成(5GBファイルアップロード) キー列を指定する結合(1GB)0秒30秒60秒90秒120秒150秒180秒210秒220秒 40秒(4倍速い) HyperなしHyperありキー列を指定する結合(1GB) キー列を指定する結合(5GB)0秒60秒120秒180秒240秒300秒360秒420秒480秒540秒600秒660秒720秒760秒 130秒(5倍速い) HyperなしHyperありキー列を指定する結合(5GB)

サーバの構成

Hyper nehan オプション適用環境下では、ベースプランに紐づくベースサーバとは別に、Hyper nehan サーバも稼働させます。
自動スイッチ機能によって、下記のように処理が振り分けられます。

  • Python でスモールデータを処理する場合はベースサーバ上で行う
  • Spark でビッグデータを処理する場合は Hyper nehan サーバ上で行う

なお、Hyper nehan 適用環境下においても、スモールデータの処理が大量に発生することで、ベースサーバの処理可能データサイズを超えてしまうことがある点に注意してください。