データ処理の仕組み
通常のプランでは、データ処理を Python で行います。速くて扱いやすい一方、データが大きくなると遅くなり、やがて処理しきれなくなります。
Hyper nehan は大きなデータを Apache Spark で処理して、この頭打ちを外します。
自動で切り替わる
Spark が速いのは大きなデータのときだけです。小さなデータでは Python のほうが速いので、nehan はデータの大きさを見て自動で使い分けます。
データが入ってくる
大きさを測る 行数 × 列数
大きさで振り分ける
決まった大きさを超えている
Spark で処理
超えていない
Python で処理
測り方
分析プロジェクトのノードは、ファイルの容量ではなく行数 × 列数(セルの数) で測ります。切り替わる値は処理ごとに違います。
処理ごとの目安を開く(45 件)
| 切り替わるセル数 | 処理 |
|---|---|
| 600 万 | クロス集計(横持ち変換) |
| 1,300 万 | キー列を指定する結合 / 先頭/末尾からn行選択 / 文字列の分割 |
| 2,600 万 | 特徴量選択 |
| 3,900 万 | 縦持ち変換 / 列or行方向の比率計算 |
| 5,200 万 | グループごとの結合 / ランダムにデータを分割 |
| 6,500 万 | ダミー変数列の作成 / データの値を列に挿入 / データ集計 / 行の並べ替え / 条件で行をフィルタ / 条件に応じて値を列に挿入 / 数値列間の相関係数を求める / 値を列に挿入 / 日付要素の切り出し / 日付列の加算/減算 / 文字の置換 / 文字の抽出 / 文字列のゼロ埋め / 列の並べ替え |
| 7,800 万 | 行フィルタ条件による分割 / 数値列のカテゴリ化 / 文字列を数値に変換 |
| 9,100 万 | 指数・対数変換 / 数値列の丸め / 数値列同士の演算 / 文字列同士の結合 |
| 1 億 400 万 | 数値の二値化 / 列選択/削除 |
| 1 億 1,700 万 | Box-Cox変換・逆変換 / 欠損値処理 / 数値の正規化 |
| 1 億 3,000 万 | データを行方向にずらす(ラグ操作) / 重複行の処理 / 単純な横結合 / 単純な縦結合 / 日付列同士の差分計算 / 列の型変更 / 列選択(シンプル) / 列名の変更 / 連番の追加 |
| 2 億 6,000 万 | 列or行方向の累積和 |
目安が決まっていない処理
対応している 51 件のうち 6 件は、個別の目安を持ちません。 これらは行数 1,000 万行で切り替わります(セル数ではなく行数で測ります)。
一覧を開く(6 件)
シンプルなサンプリング / 外れ値の処理 / 特殊な文字列のクレンジング / 日付の丸め / 文字列のクレンジング / 連続数値、日付の補間
書き出しの目安
データをエクスポートするは 1,300 万セルで切り替わります。印が付いた出し先に限った話で、印が付かない出し先はどれだけ大きくても通常の処理です。印が付く出し先はHyper nehanとはにあります。
どのくらい速くなるか
次の条件で測った結果です。御社のデータと設定では違う値になります。
| 項目 | 内容 |
|---|---|
| ベースプラン | X ラージ |
| Hyper nehan | Hyper1 |
| 1GB のデータ | 約 1,700 万行 × 14 列 |
| 5GB のデータ | 約 8,400 万行 × 14 列 |
実際に Spark で動いたか確かめる
ノードの実行が終わると、Spark で動いた場合だけ印が付きます。Hyper nehanとはを参照してください。