機能紹介
MaxFrame は、Alibaba Cloud MaxCompute のための分散コンピューティングフレームワークです。従来の Python データ処理における 2 つの主要な問題、すなわちパフォーマンスボトルネックと非効率なデータ移動を解決するための Python プログラミングインターフェイスを提供します。MaxFrame を使用することで、視覚的なデータ探索、科学計算、機械学習や AI 開発などのタスクのために、MaxCompute 上で直接ペタバイト規模のビッグデータを分散処理・分析できます。これにより、Python エコシステムにおける効率的なビッグデータ処理と AI 開発への高まる需要に応えます。
利用シーン
対話的なデータ探索
MaxFrame は、ローカルの Jupyter Notebook で作業するのと同様に、メモリ制限のないスムーズなエクスペリエンスを提供し、大規模なデータセットのリアルタイムな探索的分析、操作、可視化を実現します。
大規模データ前処理 (ETL)
テラバイト規模の生データに対するデータクリーニング、フォーマット変換、特徴量エンジニアリングなどのタスクにおいて、複雑な SQL とユーザー定義関数 (UDF) のロジックの代わりに、表現力豊かで保守性の高い Python コードを使用できます。このアプローチは、分散実行による高いパフォーマンスも提供します。
AI と機械学習
モデル開発ワークフローにおいて、MaxFrame はデータ処理とモデルトレーニングのエクスペリエンスを統一します。MaxFrame を使用して効率的にトレーニングデータを準備し、イメージ特徴と組み合わせて Scikit-learn や XGBoost などのライブラリをインポートし、エンドツーエンドの AI ワークフローを構築できます。
適用範囲
サポートされているリージョン
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、米国 (シリコンバレー)、および米国 (バージニア)。
サポートされている環境
ローカルの Python 開発環境。
MaxCompute Notebook。
DataWorks Notebook。
DataWorks データ開発 PyODPS 3 タスクノード。
課金
MaxFrame は、ジョブの計算リソース使用量に基づいて課金されます。サブスクリプションの課金方法をサポートしています。
サブスクリプション:ジョブは、購入したリソースグループのクォータを消費し、追加料金は発生しません。
詳細については、「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 |
開発インターフェイス | Pandas 互換。 | 構文とインターフェイスは Pandas DataFrame と大きく異なります。 | SQL と Python の 2 つのインターフェイスを使用する必要があります。 | |
データ処理 | 実行時に、データをローカルクライアントにプルして処理する必要はありません。これにより、不要なローカルデータ転送を削減し、ジョブの実行効率を向上させます。 | PyODPS では、 | 一部のオペレーターのみ分散実行がサポートされています。 初期化時にクラスターを作成する必要があり、遅くて不安定になることがあります。 | MaxCompute SQL の機能に基づいて分散ジョブをサポートします。 |
計算リソース | ローカルリソースのサイズに制限されず、シングルマシン Python のパフォーマンスボトルネックを突破します。 | ローカルリソースのサイズに制限されます。 | リソースサイズに制限されます。ワーカー、CPU、メモリのサイズを指定する必要があります。 | MaxCompute のサーバーレスアーキテクチャに基づいて、SQL ジョブのエラスティックコンピューティングを可能にします。 |
開発エクスペリエンス | すぐに使える対話型開発環境とオフラインスケジューリング機能を提供します。一般的なライブラリが組み込まれており、アノテーションによる依存関係管理をサポートしているため、手動でのパッケージ化は不要です。 | すぐに使える対話型開発環境とオフラインスケジューリング機能を提供します。 | 対応するランタイム環境を準備し、Mars クラスターを起動する必要があります。 | Python UDF の依存関係パッケージは、手動でパッケージ化してアップロードする必要があります。 |
仕組み
MaxFrame は分散処理の複雑さを隠蔽します。自動化されたワークフローは次のとおりです:
コードの送信:Notebook などのクライアントで Python コードを記述して実行します。MaxFrame SDK はコードをキャプチャし、MaxCompute に送信します。
解析と最適化:MaxCompute 実行エンジンがジョブを受信すると、構文を解析し、論理的最適化を実行し、ジョブを並列実行可能な物理プランに変換します。
分散実行:最適化されたタスクは MaxCompute クラスター内の複数の計算ノードに分散され、データを直接読み取って並列計算を実行します。
結果の返却:計算が完了すると、結果が集約され、ご利用のクライアントに返されます。