概要
MaxFrame は、Alibaba Cloud MaxCompute の Python プログラミングインターフェイスを備えた分散コンピューティングフレームワークです。従来の Python によるデータ処理における 2 つの主要課題である パフォーマンスボトルネック と 非効率なデータ移動 を解決します。MaxFrame を使用すると、MaxCompute 上でペタバイト規模のデータを直接処理および分析でき、視覚的なデータ探索、科学計算、機械学習、AI 開発に活用できます。
ユースケース
インタラクティブなデータ探索
ローカルの Jupyter Notebook と同様に、メモリ制限を気にせず、膨大なデータセットをリアルタイムで探索、操作、可視化できます。
大規模なデータ前処理 (ETL)
複雑な SQL+UDF ロジックを、表現力豊かで保守性の高い Python に置き換えることで、数テラバイト規模のデータクレンジング、フォーマット変換、特徴量エンジニアリングを、分散実行のパフォーマンスで実行できます。
AI と機械学習
MaxFrame はデータ処理とモデルトレーニングを統合します。トレーニングデータを効率的に準備し、イメージ機能を使用して Scikit-learn や XGBoost などのライブラリをインポートすることで、エンドツーエンドの AI ワークフローを実現できます。
使用上の注意
サポートされているリージョン
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深圳)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、米国 (シリコンバレー)、および米国 (バージニア)。
サポートされている環境
-
ローカルの Python 開発環境。
-
MaxCompute Notebook。
-
DataWorks Notebook。
-
DataWorks Data Development の PyODPS 3 タスクノード。
課金
MaxFrame は、ジョブごとのコンピューティングリソース使用量に基づいて課金されます。 と サブスクリプション の課金に対応しています。
-
サブスクリプション:ジョブは、追加料金なしで購入済みのリソースグループクォータを消費します。
主な利点
MaxFrame は、MaxCompute 向けの他の Python ツールと比べて次の利点があります:
-
Pandas 互換 API:既存の Pandas コードを最小限の変更で MaxCompute に移行でき、学習コストと移行コストを削減します。
-
サーバー側の分散実行:ジョブは MaxCompute クラスタ内で実行され、データをローカルマシンへ取り込む必要がありません。これにより、クライアント側のメモリボトルネックを解消し、ペタバイト規模の処理を可能にします。
-
伸縮自在なコンピューティングリソース:MaxCompute のサーバーレスアーキテクチャ上に構築されており、MaxFrame は必要に応じてリソースを割り当てます。クラスタを管理することなく、あらゆる規模でデータを処理できます。
-
シンプルな開発環境:Python 3.7 と Python 3.11 の環境を内蔵し、Pandas や XGBoost などのライブラリが事前にインストールされています。簡単なアノテーションでサードパーティの依存関係を追加でき、手動でのパッケージングや UDF のアップロードは不要です。
次の表は、MaxFrame と他の Python 開発ツールを比較したものです:
|
比較項目 |
MaxFrame |
PyODPS |
Mars |
SQL+UDF |
|
開発 API |
Pandas と互換です。 |
構文と API は Pandas DataFrame と大きく異なります。 |
SQL と Python の 2 種類の API を使用する必要があります。 |
|
|
データ処理 |
実行時にデータはサーバー上に保持されるため、ローカルへの転送は不要です。これにより、実行効率が向上します。 |
|
一部の演算子のみ分散実行に対応しています。 初期化時にクラスタを作成する必要があり、低速で安定性も低くなります。 |
MaxCompute SQL による分散ジョブ。 |
|
コンピューティングリソース |
ローカルリソースに制約されず、単一マシンの Python のボトルネックを解消します。 |
ローカルリソースに制約されます。 |
リソースサイズに制約されます。ワーカー、CPU、メモリを指定する必要があります。 |
MaxCompute サーバーレスにより、SQL ジョブを伸縮自在にコンピューティングできます。 |
|
開発エクスペリエンス |
すぐに使えるインタラクティブ開発とオフラインスケジューリング。一般的なライブラリを内蔵しています。アノテーションで依存関係を管理でき、手動でのパッケージングは不要です。 |
すぐに使えるインタラクティブ開発とオフラインスケジューリング。 |
実行環境をセットアップし、Mars クラスタを起動する必要があります。 |
Python UDF の依存関係は手動でパッケージ化してアップロードする必要があります。 |
仕組み
MaxFrame は分散コンピューティングの複雑さを抽象化します。ワークフローは次のとおりです:
-
コード送信:Notebook などのクライアントで Python コードを作成して実行します。MaxFrame SDK がコードをキャプチャし、MaxCompute に送信します。
-
解析と最適化:MaxCompute の実行エンジンが構文を解析し、ロジックを最適化して、ジョブを並列物理プランに変換します。
-
分散実行:最適化されたタスクが MaxCompute クラスタ内のコンピューティングノードに分散され、データの読み取りと計算を並列に実行します。
-
結果返却:結果を集約し、クライアントに返します。