MaxCompute MaxFrame | 分布式Python計算服務MaxFrame(完整操作版)

MaxCompute MaxFrame評測 | 分布式Python計算服務MaxFrame(完整操作版)

  • 前言
  • MaxCompute MaxFrame
  • 服務開通
    • 開通 MaxCompute 服務
    • 開通 DataWorks 服務
  • 資源準備
    • 創建 DataWorks 工作空間
    • 創建 MaxCompute 項目
    • 創建MaxCompute數據源
    • 綁定數據源或集群
    • 創建MaxCompute節點
  • 在DataWorks中使用MaxFrame
  • 分布式Pandas 處理
  • 總的來說

前言

在當今數字化迅猛發展的時代,數據信息的保存與數據分析對企業的決策和工作方向具有極為重要的指導價值。通過企業數據分析,企業能夠精準統計出自身的成本投入、經營收益以及利潤等重要數據。這些數據猶如企業運營的“晴雨表”,為企業后續的決策提供了堅實可靠的依據,助力企業在市場競爭中優化經營策略,從而實現更大的價值創造。
今天我們要講的正是可以幫助企業實現數據保存于數據分析的一款分布式計算框架MaxCompute MaxFrame,那么什么是MaxCompute MaxFrame?

MaxCompute MaxFrame

在開始測評之前,先了解一下什么是MaxCompute MaxFrame?
以下是來自官網的介紹:【MaxFrame是由阿里云自研的分布式計算框架,支持Python編程接口、兼容Pandas接口且自動進行分布式計算。您可利用MaxCompute的海量計算資源及數據進行大規模數據處理、可視化數據探索分析以及科學計算、ML/AI開發等工作。】關于MaxCompute MaxFrame 的更多內容你可以直接在官網中詳細了解,包括產品優勢、產品功能、應用場景等,這里我主要是測評 MaxCompute MaxFrame 的操作體驗,因此對于 MaxCompute MaxFrame 的詳細介紹大家可以移步官網:https://www.aliyun.com/product/bigdata/odps/maxframe
在這里插入圖片描述
MaxCompute MaxFrame,那么下面就開始今天的操作吧。

服務開通

在開始測試 MaxCompute MaxFrame 的功能前,首先需要開通 MaxCompute和DataWorks 服務。

開通 MaxCompute 服務

對于全新的、此前未開通過MaxCompute的阿里云賬號,阿里云在部分地域提供了免費的MaxCompute資源包,您可以先申請免費資源包體驗試用,體驗地址:https://free.aliyun.com/ 在免費試用頁面輸入你想要試用的服務,比如輸入 MaxCompute
在這里插入圖片描述
如果你的阿里云賬號沒有免費試用資格,那么你只能通過 阿里云MaxCompute產品首頁 :https://www.aliyun.com/product/maxcompute 單擊【立即購買】,選擇【按量付費標準版】開通MaxCompute服務
在這里插入圖片描述
這里我的賬號在當前北京地域下已經開通過 MaxCompute 服務,因此這里才有這個提示,正常情況下的話你直接開通即可
在這里插入圖片描述
開通完 MaxCompute 服務之后,我們還需要開通 DataWorks 服務。

開通 DataWorks 服務

同樣的,對于全新的、此前未開通過DataWorks 的阿里云賬號,阿里云在部分地域提供了免費的DataWorks資源包,您可以先申請免費資源包體驗試用。免費試用地址同上,在免費試用界面輸入 DataWorks 可以查看試用資格
在這里插入圖片描述
如果你的阿里云賬號沒有試用資格的話,你可以到 DataWorks 官網,官網地址: https://www.aliyun.com/product/bigdata/ide
在這里插入圖片描述
點擊【立即購買】選擇需要開通 DataWorks 服務的地域以及 【按量付費】計費方式后開通即可,這里我已經開通過按量付費了
在這里插入圖片描述
資源準備完成之后,下面就開始創建資源用于后面的操作。

資源準備

在我們開通了MaxCompute和DataWorks 服務 之后,下面我們就可以創建資源了,下面按照步驟創建資源內容。

創建 DataWorks 工作空間

登錄DataWorks控制臺 ,在控制臺頂部菜單欄切換所需地域,單擊左側導航欄的【工作空間】,進入工作空間列表頁面,點擊【創建工作空間】,這里我已經創建好了工作空間 User_dataworks
在這里插入圖片描述
輸入工作空間名稱,定義工作空間模式,即工作空間的生產環境和開發環境是否隔離等參數,根據實際情況選擇即可
在這里插入圖片描述

創建 MaxCompute 項目

登錄MaxCompute控制臺,在左上角選擇地域,選擇左側菜單【項目管理】,點擊【新建項目】,這里為了區分后面的測試和生產環境,需要創建兩個 MaxCompute 項目空間,這里我已經創建好了
在這里插入圖片描述
在 MaxCompute 新增項目頁面,需要輸入項目名稱,選擇 計算資源付費類型、默認Quota 等信息后,點擊確定即可完成 MaxCompute 創建。
在這里插入圖片描述

創建MaxCompute數據源

完成上述操作之后,回到 DataWorks控制臺 ,在 DataWorks 控制臺 選擇查看 【工作空間】列表頁面,點擊工作空間名稱,進入工作空間詳情頁面,在工作空間詳情頁面點擊【數據源】-【數據源列表】可以看到這里我已經創建成功的數據源
在這里插入圖片描述
點擊【新增數據源】,選擇 MaxCompute,根據界面指引創建數據源
在這里插入圖片描述
選擇 MaxCompute 在新增 MaxCompute 數據源頁面,我們需要輸入 數據源名稱 ,所屬云賬號、地域等信息,可以選擇我們剛才創建好的 MaxCompute項目名稱
在這里插入圖片描述
點擊【完成創建】之后,創建完成MaxCompute 數據源,就可以返回【數據源列表】查看已經創建好的數據源信息了。

綁定數據源或集群

等待MaxCompute 數據源創建成功之后, 登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的【數據開發與治理】 - 【數據開發】,在下拉框中選擇對應工作空間后單擊【進入數據開發】
在這里插入圖片描述
在左側導航欄單擊【數據源】,進入數據源或集群綁定頁面,您可通過名稱搜索找到目標數據源或集群進行綁定操作。綁定后,便可基于數據源的連接信息讀取該數據源的數據,進行相關開發操作。如果你找不到具體的 數據源 綁定操作入口,又不想去按照官方文檔說的那樣去個人設置里面找,這里可以直接點擊 綁定 進入到綁定頁面,在綁定頁面選擇資源綁定,這里我已經綁定過了
在這里插入圖片描述
在開發 PyODPS 3 任務之前,先來簡單說一下PyODPS 3 任務。 DataWorks為我們提供PyODPS 3節點,我們可以在該節點中直接使用Python代碼編寫MaxCompute作業,并進行作業的周期性調度。開始之前需要先創建一個 PyODPS 3節點。

創建MaxCompute節點

登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的【數據開發與治理】 > 【數據開發】,在下拉框中選擇對應工作空間后單擊【進入數據開發】,在 數據開發頁面選擇【新建】>【MaxCompute】 > 【PyODPS 3 】
在這里插入圖片描述
在彈框中配置節點的名稱,選擇路徑,完成后單擊確認,完成MaxCompute節點創建操作,后續您即可在節點中進行對應MaxCompute任務開發與配置
在這里插入圖片描述
節點創建成功之后,可以在數據開發頁面看到節點信息
在這里插入圖片描述
以上的資源準備好了之后,我們就可以使用DataWorks的PyODPS 3節點開發和運行MaxFrame作業。

在DataWorks中使用MaxFrame

在開始使用MaxFrame之前,先來簡單介紹一下。 DataWorks為MaxCompute項目提供任務調度能力,且已在PyODPS 3節點內置了MaxFrame,我們可直接使用DataWorks的PyODPS 3節點開發和運行MaxFrame作業。PyODPS 3內置了MaxCompute用戶和項目信息,因此我們可以直接創建MaxFrame會話,復制代碼放入創建的 PyODPS 3節點 的 命令操作臺
在這里插入圖片描述
代碼示例如下

import maxframe.dataframe as md
from maxframe import new_session
from maxframe.config import options
options.sql.enable_mcqa = Falsetable = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True)
with table.open_writer() as writer:writer.write([["value1", 0],["value2", 1],])# 創建MaxFrame session
session = new_session(o)df = md.read_odps_table("test_source_table",index_col="b")
df["a"] = "prefix_" + df["a"]# 打印dataframe數據
print(df.execute().fetch())# MaxFrame DataFrame數據寫入MaxCompute表
md.to_odps_table(df, "test_prefix_source_table").execute()# 銷毀 maxframe session
session.destroy()

在數據開發頁面命令控制臺上側點擊【執行】按鈕,執行Python代碼可以看到如下的返回結果
在這里插入圖片描述
此結果表示MaxFrame安裝成功,且已成功連接MaxCompute集群。在目標MaxCompute項目中運行如下SQL,查詢test_prefix_source_table表的數據,新建 ODPS SQL 節點
在這里插入圖片描述
點擊【確認】完成 新建 ODPS SQL 節點 新建 成功之后,在我們新建的 User_sql2 節點輸入查詢語句

SELECT * FROM test_prefix_source_table;

點擊【執行】可以看到sql 查詢的結果數據
在這里插入圖片描述
到這里就說明我們的 MaxFrame 以及所有需要的服務和資源都可以正常運行,下面來使用與Pandas相同的API來分析數據。

分布式Pandas 處理

在基于MaxFrame實現分布式Pandas處理 之前,首先需要準備一些調用過程中需要用到的ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET 、your-default-project、your-end-point。 這里 進入AccessKey管理頁面獲取AccessKey ID以及對應的AccessKey Secret
在這里插入圖片描述
復制 后備用。登錄MaxCompute控制臺,在左側導航欄選擇【工作區】-【項目管理】,查看MaxCompute項目名稱
在這里插入圖片描述
在 Endpoint 頁面找到當前地域對應的 Endpoint 并復制,
在這里插入圖片描述
替換掉示例代碼中對應的上述獲取的賬號信息,這里給出的是示例代碼,替換后的代碼這里不方便給出哈

from odps import ODPS
from maxframe.session import new_session
import maxframe.dataframe as md
import pandas as pd
import oso = ODPS(# 確保 ALIBABA_CLOUD_ACCESS_KEY_ID 環境變量設置為用戶 Access Key ID,# ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境變量設置為用戶 Access Key Secret,# 不建議直接使用AccessKey ID和 AccessKey Secret字符串。os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),project='your-default-project',endpoint='your-end-point',
)data_sets = [{"table_name": "product","table_schema" : "index bigint, product_id bigint, product_name string, current_price bigint","source_type": "records","records" : [[1, 100, 'Nokia', 1000],[2, 200, 'Apple', 5000],[3, 300, 'Samsung', 9000]],
},
{"table_name" : "sales","table_schema" : "index bigint, sale_id bigint, product_id bigint, user_id bigint, year bigint, quantity bigint, price bigint","source_type": "records","records" : [[1, 1, 100, 101, 2008, 10, 5000],[2, 2, 300, 101, 2009, 7, 4000],[3, 4, 100, 102, 2011, 9, 4000],[4, 5, 200, 102, 2013, 6, 6000],[5, 8, 300, 102, 2015, 10, 9000],[6, 9, 100, 102, 2015, 6, 2000]],"lifecycle": 5
}]def prepare_data(o: ODPS, data_sets, suffix="", drop_if_exists=False):for index, data in enumerate(data_sets):table_name = data.get("table_name")table_schema = data.get("table_schema")source_type = data.get("source_type")if not table_name or not table_schema or not source_type:raise ValueError(f"Dataset at index {index} is missing one or more required keys: 'table_name', 'table_schema', or 'source_type'.")lifecycle = data.get("lifecycle", 5)table_name += suffixprint(f"Processing {table_name}...")if drop_if_exists:print(f"Deleting {table_name}...")o.delete_table(table_name, if_exists=True)o.create_table(name=table_name, table_schema=table_schema, lifecycle=lifecycle, if_not_exists=True)if source_type == "local_file":file_path = data.get("file")if not file_path:raise ValueError(f"Dataset at index {index} with source_type 'local_file' is missing the 'file' key.")sep = data.get("sep", ",")pd_df = pd.read_csv(file_path, sep=sep)ODPSDataFrame(pd_df).persist(table_name, drop_table=True)elif source_type == 'records':records = data.get("records")if not records:raise ValueError(f"Dataset at index {index} with source_type 'records' is missing the 'records' key.")with o.get_table(table_name).open_writer() as writer:writer.write(records)else:raise ValueError(f"Unknown data set source_type: {source_type}")print(f"Processed {table_name} Done")prepare_data(o, data_sets, "_maxframe_demo", True)

這里我們新建 PyODPS 3節點 User_node2 來執行替換了密鑰信息后的上述示例代碼,等待運行成功
在這里插入圖片描述
查詢sales_maxframe_demo表和product_maxframe_demo表的數據,SQL命令如下

--查詢sales_maxframe_demo表
SELECT * FROM sales_maxframe_demo;

在這里插入圖片描述

--查詢product_maxframe_demo表數據
SELECT * FROM product_maxframe_demo;

在這里插入圖片描述
這里需要說明一下,我沒有執行結束,在執行的過程中,一直執行超時,不知道什么原因


Executing user script with PyODPS 0.12.1 (wrapper version: 0.12.1spawn)Processing product_maxframe_demo...
Deleting product_maxframe_demo.../opt/taobao/tbdpapp/pyodps/pyodpswrapper.py:1191: UserWarning: Global variable __doc__ you are about to set conflicts with pyodpswrapper or builtin variables. It might not be runnable with multiprocessing."It might not be runnable with multiprocessing." % key
2025-01-07 20:34:40,348 WARNING:urllib3.connectionpool:Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f48ac8fb198>, 'Connection to service.cn-beijing.maxcompute.aliyun.com timed out. (connect timeout=120)')': /api/tenants?curr_project=user_project_dev

總的來說

MaxFrame可以在分布式環境下使用與Pandas相同的API來分析數據,通過MaxFrame,您能夠以高于開源Pandas數十倍的性能在MaxCompute上快速完成數據分析和計算工作。MaxFrame兼容Pandas接口且自動進行分布式處理,在保證強大數據處理能力的同時,可以大幅度提高數據處理規模及計算效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97112.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97112.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97112.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[機械結構設計-48]:機械工程師的崗位要求

機械工程師的崗位要求涵蓋學歷、專業知識、技能水平、工作經驗、軟件應用、綜合能力、溝通協作、職業規范與持續學習等多個維度&#xff0c;具體如下&#xff1a;學歷要求&#xff1a;通常要求本科及以上學歷&#xff0c;專業背景為機械工程、自動化、材料工程等相關專業。部分…

3446. 按對角線進行矩陣排序

Problem: 3446. 按對角線進行矩陣排序 文章目錄思路解題過程復雜度Code思路 發現每條對角線行號減列號是一個定值。 設ki-jn&#xff0c;i0,jn-1時&#xff0c;k1&#xff1b;im-1&#xff0c;j0時&#xff0c;kmn-1。 解題過程 遍歷對角線&#xff0c;找出最小和最大列&#x…

瘋狂星期四文案網第53天運營日記

網站運營第53天&#xff0c;點擊觀站&#xff1a; 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 必應的關鍵詞排名還可以&#xff0c;自然流量過來的創新高了&#xff0c;這周沒有掘金大佬給我宣傳&#xff0c;全是自然流量過來的 今日…

【Docker基礎】Docker-compose進階配置:環境變量與配置隔離完全指南

目錄 前言 1 Docker-compose環境變量基礎 1.1 環境變量的作用與優勢 1.2 環境變量的作用范圍 2 .env文件的核心用法 2.1 .env文件基礎語法 2.2 變量引用與替換 2.3 多環境配置策略 3 高級配置技巧 3.1 環境變量優先級 3.2 條件配置與模板 3.3 安全實踐 4 案例&…

習題答案 |《數據結構(C語言版第4版)》人民郵電出版社,李云清楊慶紅等,2023年8月

李云清楊慶紅等&#xff0c;《數據結構&#xff08;C語言版第4版&#xff09;》&#xff0c;人民郵電出版社&#xff0c;2023年8月 上海電力大學2025年專升本上岸學長經驗分享&#xff08;普通考生&#xff09;-免費贈送25年電力考試真題&#xff01;&#xff01;&#xff01;…

Chrome緊急修復AI發現的ANGLE高危漏洞CVE-2025-9478

近日&#xff0c;谷歌為Chrome穩定版發布關鍵安全更新&#xff0c;修復了ANGLE&#xff08;支撐WebGL及其他渲染任務的圖形引擎&#xff09;中的釋放后重用&#xff08;use-after-free&#xff09;漏洞。該漏洞編號為CVE-2025-9478&#xff0c;于2025年8月11日被發現——發現者…

8.28作業

1.提示并輸入一個字符串&#xff0c;統計該字符中大寫、小寫字母個數、數字個數、空格個數以及其他字符個數#include <iostream>using namespace std;int main() {string buf;cout << "輸入字符串" << endl;getline(cin,buf);int capital 0,lower…

copy-to-clipboard 網站復制粘貼 三分鐘入門

目錄 一、介紹和安裝 &#xff08;1&#xff09;介紹 &#xff08;2&#xff09;安裝 二、示例 &#xff08;1&#xff09;示例效果演示 &#xff08;2&#xff09;示例視頻演示 &#xff08;3&#xff09;示例代碼 一、介紹和安裝 &#xff08;1&#xff09;介紹 copy…

Python 多版本環境治理理念驅動的系統架構設計——三維治理、四級隔離、五項自治 原則(路徑治理升級修訂 V 2.0 版)

Python 多版本環境治理理念驅動的系統架構設計 ——三維治理、四級隔離、五項自治 原則&#xff08;路徑治理升級修訂 V 2.0 版&#xff09; Python 多版本環境治理理念驅動的系統架構設計&#xff1a;三維治理、四級隔離、五項自治 原則 V1.0 版 &#x1f4da; 系列文章導航 …

Ubuntu Server 快速部署長安鏈:基于 Go 的智能合約實現商品溯源

文章目錄簡介智能合約語言智能合約上鏈管理開發環境準備長安鏈官網官方源碼倉庫官方文檔官方 Docker 鏡像倉庫部署管理平臺登錄管理平臺快速生成證書新建區塊鏈鏈配置文件訂閱長安鏈項目編譯打包&#xff08;商品溯源示例&#xff09;部署合約編輯合約上鏈管理生產商品運輸商品…

德克西爾氫氣探測器:工業安全守護核心

? ?引言&#xff1a;氫氣泄漏隱患下&#xff0c;誰來守住工業安全防線&#xff1f; 2024年某化工園區因氫氣管道閥門老化&#xff0c;泄漏氣體未及時被檢測&#xff0c;遇靜電引發小型爆炸&#xff0c;造成設備損毀與停產損失——這類事故在新能源、化工、冶金等依賴氫氣的…

電商高并發穩贏指南:ZKmall開源商城微服務架構的實戰拆解

在電商行業&#xff0c;高并發場景&#xff08;如秒殺活動、節日大促&#xff09;對系統穩定性的考驗尤為嚴峻。據阿里云 2024 年電商技術白皮書顯示&#xff0c;采用微服務架構的電商系統在峰值流量下的穩定性比單體架構高 4.2 倍&#xff0c;故障恢復時間縮短 75%。ZKmall 開…

搜維爾科技核心產品矩陣涵蓋從硬件感知到軟件渲染的全產品供應鏈

在虛擬現實&#xff08;VR&#xff09;技術加速滲透至人因工程、生物力學、擬態環境及XR仿真現實等多學科交叉領域的背景下&#xff0c;我司與恒摯科技展開交流合作&#xff0c;雙方將依托我司在動作捕捉、力反饋設備及實時渲染軟件等領域的全棧技術積累&#xff0c;共同開拓沉…

Python 前后端框架實戰:從選型到搭建簡易全棧應用

在全棧開發領域&#xff0c;Python憑借豐富的前后端框架生態&#xff0c;成為開發者快速構建應用的優選。本文將聚焦Python主流前后端框架的選型對比&#xff0c;并以“Flask&#xff08;后端&#xff09; Vue.js&#xff08;前端&#xff09;”組合為例&#xff0c;帶您實戰搭…

多版本并發控制MVCC

MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并發控制&#xff09;。是一個在數據庫管理系統中用于處理并發控制的核心技術。理解它對于深入掌握數據庫&#xff08;尤其是 InnoDB、PostgreSQL 等&#xff09;的工作原理至關重要。1. 什么是 MVCC&…

嵌入式第三十七天(TCP補充,應用層協議(HTTP))

一.TCP機制二.HTTP協議1.2.3.4.5.6.7.8.#ifndef _HEAD_H #define _HEAD_H#include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h>#endif#include "head.h"…

Elasticsearch核心配置詳解與優化

Elasticsearch 的核心配置文件主要用于控制節點行為、集群設置、資源分配和日志記錄等關鍵功能。主要配置文件通常位于 ES_HOME/config 目錄下&#xff0c;以下是三個最核心的配置文件及其詳細說明&#xff1a; 1. elasticsearch.yml 核心集群與節點配置 這是最重要的配置文件…

機器學習框架下:金價近3400關口波動,AI量化模型對PCE數據的動態監測與趨勢預測

摘要&#xff1a;本文通過AI多因子模型&#xff0c;結合宏觀經濟數據、政策動態及市場情緒因子&#xff0c;分析黃金價格波動機制及關鍵驅動要素。基于量化策略與自然語言處理技術&#xff0c;對美聯儲獨立性爭議、美債收益率曲線形態及PCE通脹數據等核心變量進行動態建模&…

【Redis#8】Redis 數據結構 -- Zset 類型

一、引言 定義&#xff1a;有序集合&#xff08;Zset&#xff09;是Redis中的一種數據結構&#xff0c;它結合了哈希表和跳躍列表的特性。每個 member 都有一個分數(score)&#xff0c;根據這個分數進行排序。 特點&#xff1a; member 不能重復&#xff0c;但分數可以相同&…

Postman 模擬mcp tool調用過程

文章目錄 初始化調用 mcp server使用modelcontextprotocol 的java sdk編寫 初始化 1.網頁訪問http://localhost:8090/sse,此頁面保持開啟,會不斷接收到sse事件. 會返回一個endpoint,例如/mcp/message?sessionId111 2.初始化請求,postman發送post請求 url:http://localhost:…