機能の概要
MaxFrame は、Alibaba Cloud MaxCompute が提供する分散コンピューティングフレームワークであり、Python プログラミングインタフェースを備えています。従来の Python データ処理における 2 つの主要な課題——パフォーマンスボトルネックと非効率なデータ転送——に対応します。MaxFrame を使用すると、MaxCompute 上でペタバイト規模のビッグデータを直接処理・分析できます。また、ビジュアルによるデータ探索・分析、科学技術計算、機械学習、AI 開発なども可能であり、Python エコシステム内における効率的なビッグデータ処理および AI 開発への需要増加に応えます。
シナリオ
対話型データ探索
MaxFrame は、メモリ制限のないスムーズな体験を提供します。ローカルの Jupyter Notebook と同様に、大規模データセットをリアルタイムで探索・操作・可視化できます。
大規模データ前処理(ETL)
テラバイト単位以上の生データのクレンジング、フォーマット変換、特徴量エンジニアリングなどのタスクにおいて、複雑な SQL+UDF ロジックを、より表現力・保守性に優れた Python コードに置き換えられます。同時に、分散実行による高いパフォーマンスも享受できます。
AI および機械学習
モデル開発ワークフローにおいて、MaxFrame はデータ処理とモデル学習を統合します。トレーニングデータの効率的な準備を行い、画像特徴量と組み合わせて Scikit-learn や XGBoost などのライブラリをインポートすることで、エンドツーエンドの AI ワークフローを実現できます。
対応範囲
対応リージョン
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、米国 (シリコンバレー)、および米国 (バージニア)。
対応環境
ローカルの Python 開発環境。
MaxCompute Notebook。
DataWorks Notebook。
DataWorks データ開発 PyODPS 3 タスクノード。
課金
MaxFrame の課金は、ジョブ単位の計算リソース使用量に基づきます。およびサブスクリプションの 2 種類の課金方法をサポートしています。
サブスクリプション:ジョブは購入済みのリソースグループのクォータを消費し、追加の課金は発生しません。
詳細については、「MaxCompute の課金および使用状況の分析」をご参照ください。
主なメリット
他の Python 開発ツールと比較して、MaxFrame は既存の開発習慣により親和性が高く、データ処理の効率性が向上し、計算リソースの柔軟性が高まり、開発体験がより便利です。
Pandas 互換 API:MaxFrame は Pandas と高度に互換性のある API を提供します。これにより、既存コードを MaxCompute プラットフォームへスムーズな移行でき、学習コストおよび移行コストを大幅に削減できます。
サーバーサイド分散実行:MaxFrame のジョブは MaxCompute クラスター内で直接実行されます。データをローカルマシンへプルする必要はありません。これにより、クライアント側のメモリ不足によって引き起こされるパフォーマンスボトルネックが解消され、ペタバイト規模のデータを効率的に処理できます。
エラスティックコンピューティングリソース:MaxFrame は MaxCompute のサーバーレスアーキテクチャに依存し、必要に応じて計算リソースを動的に割り当てます。クラスター管理を行わずに、任意の規模のデータ処理タスクを実行できます。
簡素化された開発環境:MaxFrame には、Pandas や XGBoost などの一般的なライブラリがプリインストール済みの Python 3.7 および Python 3.11 環境が内蔵されています。サードパーティ製依存関係は、シンプルなアノテーションで管理可能です。これにより、環境構成および依存関係管理が簡素化され、ユーザー定義関数(UDF)の依存関係を手動でパッケージング・アップロードする作業よりも便利です。
以下に、本ツールとその他の Python 開発ツールとの比較表を示します:
比較項目 | MaxFrame | PyODPS | Mars | SQL+UDF |
開発 API | Pandas と互換。 | 構文および API が Pandas DataFrame と大きく異なります。 | SQL と Python の 2 種類の API を併用する必要があります。 | |
データ処理 | 実行時にデータはサーバー上で処理され、ローカルマシンへプルする必要はありません。これにより、不要なローカルデータ転送が削減され、ジョブ実行効率が向上します。 | PyODPS の | 分散実行は、一部のオペレーターでのみサポートされています。 初期化中にクラスターの作成が必要ですが、この処理は遅く、安定性が低いです。 | MaxCompute SQL 機能に基づく分散ジョブをサポートします。 |
計算リソース | ローカルリソースのサイズに制限されず、Python のシングルマシンパフォーマンスボトルネックを解消します。 | ローカルリソースのサイズに制限されます。 | リソースサイズに制限されます。ワーカー数、CPU、メモリサイズを明示的に指定する必要があります。 | MaxCompute のサーバーレス機能に基づき、SQL ジョブ向けにエラスティックコンピューティングを実現します。 |
開発体験 | すぐに利用可能な対話型開発環境およびオフラインスケジューリング機能を提供します。一般的なライブラリは内蔵されており、アノテーションによるサードパーティ製依存関係の管理が可能で、手動でのパッケージングは不要です。 | すぐに利用可能な対話型開発環境およびオフラインスケジューリング機能を提供します。 | 対応するランタイム環境の準備および Mars クラスターの起動が必要です。 | Python UDF の依存パッケージを手動でパッケージング・アップロードする必要があります。 |
仕組み
MaxFrame は、分散コンピューティングの複雑さをユーザーに対して透明化します。自動化されたワークフローは以下のとおりです:
コードの送信:Notebook などのクライアント上で Python コードを記述・実行します。MaxFrame ソフトウェア開発キット(SDK)がコードをキャプチャし、MaxCompute へ送信します。
構文解析および最適化:MaxCompute 実行エンジンがジョブを受信後、構文解析および論理的最適化を実行します。その後、並列実行可能な物理プランへとジョブを変換します。
分散実行:最適化されたタスクは MaxCompute クラスター内の多数のコンピュートノードへ分散されます。各ノードはデータを直接読み込み、並列計算を実行します。
結果の返却:計算完了後、結果が集約され、ご利用のクライアントへ返却されます。