本文介紹如何使用計算巢快速創建并使用MAPPIC服務的詳細操作。
功能介紹
MAPPIC是螞蟻數科面向海量數據和模型隱私保護的密態計算平臺,MAPPIC在計算巢上提供了體驗版本,您無需自行購置云主機,即可在計算巢上快速部署并體驗MAPPIC服務、實現運維監控,從而搭建您自己的隱私保護應用。
基礎能力包括:隱私保護AI/BI、TEE模式的大模型隱私保護推理、微調;同時我們兼容了多種數據和AI開源框架,如Spark、ipex-llm、PyTorch、DeepSpeed等。當然您也可以基于MAPPIC快速構建數據沙箱、可信數據空間等密態場景計算模式。
目前MAPPIC提供免費試用版本,歡迎大家申請試用,有任何問題歡迎進群交流。
實例規格(TB級數據規模推薦)
ACK集群規格
3臺ECS,且每臺ECS實例的規格為:4核32 G。
EPC:48 G;明文:48 G。
操作系統為:Alibaba Cloud Linux 2.1903 LTS 64位 (Hunting Beagle)。
實例規格:ecs.r7t.xlarge。
更多商業化規格配置參考,歡迎進釘釘群(69285014993)咨詢!
MySQL規格
版本 | 存儲容量 | CPU規格 | 最大連接數 | 時區 |
8.0 | 100 GB | 1核 2 GB | 2000 | 0 |
Redis規格
版本 | CPU規格 | 備注 |
5.0 | 1核 2 GB | 最低標準,可升級 |
部署流程
準備工作
在申請試用之前,您需要準備一個阿里云賬號,對ECS、VPC、ROS、ACK、REDIS、RDS等資源進行訪問和創建操作。
若您使用主賬號,可以直接創建服務實例。
若您使用RAM用戶創建服務實例,且是第一次使用阿里云計算巢,需要在創建服務實例前,對使用的RAM用戶的賬號添加相應資源的權限。更多信息,請參見為RAM用戶授權。
步驟一:獲取部署入口
您可以在阿里云的計算巢中通過MAPPIC關鍵字進行搜索,也可以單擊部署鏈接快速體驗。
步驟二:申請試用
在使用之前,請按照提示信息完成申請,在審核通過之后即可以創建服務。
步驟三:創建服務
進入服務實例創建界面,按照推薦的機器規格依次完成服務實例名、地域、付費類型、數據庫的賬號密碼、集群的配置信息和網絡的配置信息的填寫,并單擊下一步:確認訂單。
在確認訂單頁中,確認權限、基礎配置和賬單信息。確認無誤后,單擊立即創建。
說明若有缺少權限,建議申請完缺失的權限后,再進行服務的創建,否則可能造成資源創建失敗。
提交成功后,您可以單擊去列表查看按鈕,前往服務實例頁查看服務實例的創建信息。
服務實例的創建過程大約持續20分鐘,請耐心等待。
管理資源
服務實例創建完成后,您可以在服務詳情頁或服務實例頁單擊服務實例名稱進入服務實例詳情頁。
在服務實例詳情頁,單擊資源頁簽,您可以查看MySQL、Redis和ECS等實例信息,并進行維護。
快速體驗
確認服務部署結果。
登錄計算巢控制臺后,在左側導航欄中選擇我的服務,單擊服務名稱進入服務詳情頁,然后單擊服務實例頁簽即可查看當前所有的實例信息。
查看對外服務IP。
單擊服務實例名稱或ID,進入服務實例詳情頁,查看訪問IP地址。
默認定義(試用版本不支持修改)。
定義
描述
tenantId
租戶名稱:mappic_confidential_cloud_computing
配置用戶OSS地址(必須)。
將默認OSS地址為用戶自己的OSS地址。
修改屬性
spark_config
中的如下屬性。字段名稱
字段含義
ossEndpoint
用戶自己的OSS地址。
ossAccessKeyId
用戶自己OSS地址AK。
ossAccessKeySecret
用戶自己OSS地址SK。
修改屬性
oss_config
中的如下字段。字段名稱
字段含義
mainDevOssEp
用戶自己的OSS地址。
mainDevOssBucketName
執行計劃上傳的
bucketName
。mainDevOssFilePath
執行計劃上傳的路徑。
mainDevOssAccessKeyId
OSS的AK。
mainDevOssAccessKeySecret
OSS的SK。
mappicOssBucketName
日志上傳的
bucketName
mainDevOssLogFilePath
任務執行的日志存儲路徑。
mappicOssAccessKeyId
OSS的AK。
mappicOssAccessKeySecret
OSS的SK。
可以通過如下接口更新租戶OSS配置。
curl -X POST -d '{"tenantId": "mappic_confidential_cloud_computing","ossEndpoint": "xxxxxxxx","ossAccessKeyId": "xxxxxxx","ossAccessKeySecret": "xxxxxxx","mainDevOssEp": "xxxxxxx","mainDevOssBucketName": "xxxxxxx","mainDevOssFilePath": "xxxxxxx","mainDevOssAccessKeyId": "xxxxxxx","mainDevOssAccessKeySecret": "xxxxxxx","mappicOssBucketName": "xxxxxxx","mainDevOssLogFilePath": "xxxxxxx","mappicOssAccessKeyId": "xxxxxxx","mappicOssAccessKeySecret": "xxxxxxx"}' \ --header 'Content-Type: application/json' \ --header 'Accept: */*' \ --header 'Connection: keep-alive' \ 'http://對外服務ip:8889/mappic/tenant/oss/update'
接口接入。
如下的
tenantId
入參皆為上述中的租戶名稱:mappic_confidential_cloud_computing。可信應用初始化(必須執行)。
curl --location '對外服務ip:8889/api/antchain/installApp' \ --header 'Content-Type: application/json' \ --data '{ "tappId":"mappic-vic", "tappVersion":1 }' // 返回結果 {"filesName":null,"executeId":null,"executeMessage":"執行成功","failedReason":null,"successMessage":"app安裝成功","object":null}
創建元數據。
創建輸出表
curl --location --request POST '對外服務ip:8889/mappic/datameta' \ --header 'Content-Type: application/json' \ --header 'Accept: */*' \ --header 'Connection: keep-alive' \ --data '{ "tenantId": "mappic_confidential_cloud_computing", "tableMetas": [ { "tableName": "fred_test_table22", "instId": "bfaa0186c7914119bf23ed0f30b4d4b6", "encryptKey": null, "storageInfo": "oss://mappic-dev/endToEnd/fred_test_table22", "isEncrypted": false, "partitionPattern": null, "isTemp": false, "columnInfo": [{"columnName":"event_id","isEncrypted":false},{"columnName":"event_link_id","isEncrypted":false},{"columnName":"merchant_id","isEncrypted":false},{"columnName":"merchant_name","isEncrypted":false},{"columnName":"user_id","isEncrypted":false},{"columnName":"gmt_occur","isEncrypted":false},{"columnName":"acq_site_id","isEncrypted":false},{"columnName":"acq_site_name","isEncrypted":false},{"columnName":"acq_site_event_amount","isEncrypted":false},{"columnName":"acq_site_event_currency","isEncrypted":false},{"columnName":"pay_site_id","isEncrypted":false},{"columnName":"pay_site_name","isEncrypted":false},{"columnName":"pay_site_user_id","isEncrypted":false},{"columnName":"pay_site_event_amount","isEncrypted":false},{"columnName":"pay_site_event_currency","isEncrypted":false},{"columnName":"gn_payment_id","isEncrypted":false},{"columnName":"gn_event_amount","isEncrypted":false},{"columnName":"gn_site_user_id","isEncrypted":false},{"columnName":"payment_scenario","isEncrypted":false},{"columnName":"is_in_store_payment","isEncrypted":false},{"columnName":"campaign_id","isEncrypted":false},{"columnName":"campaign_type","isEncrypted":false},{"columnName":"campaign_name","isEncrypted":false},{"columnName":"campaign_status","isEncrypted":false},{"columnName":"begin_time","isEncrypted":false},{"columnName":"end_time","isEncrypted":false},{"columnName":"promo_amount","isEncrypted":false},{"columnName":"promo_currency","isEncrypted":false},{"columnName":"gn_promo_amount","isEncrypted":false},{"columnName":"promo_type","isEncrypted":false},{"columnName":"promo_source","isEncrypted":false},{"columnName":"promo_result","isEncrypted":false},{"columnName":"promo_stage","isEncrypted":false},{"columnName":"coupon_id","isEncrypted":false},{"columnName":"order_title","isEncrypted":false},{"columnName":"result_message","isEncrypted":false},{"columnName":"error_message","isEncrypted":false},{"columnName":"event_properties","isEncrypted":false},{"columnName":"refund_status","isEncrypted":false},{"columnName":"acq_payment_amt","isEncrypted":false},{"columnName":"pay_result","isEncrypted":false},{"columnName":"pay_result_message","isEncrypted":false},{"columnName":"refund_amt","isEncrypted":false},{"columnName":"order_succ","isEncrypted":false},{"columnName":"decision_rule_id","isEncrypted":false},{"columnName":"psp_decision","isEncrypted":false},{"columnName":"psp_riskinfo","isEncrypted":false},{"columnName":"play_id","isEncrypted":false},{"columnName":"apt_gn_site_user_id","isEncrypted":false},{"columnName":"dt","isEncrypted":false}] } ] }'
創建輸入表
curl --location --request POST 'http://對外服務ip:8889/mappic/datameta' \ --header 'Content-Type: application/json' \ --header 'Accept: */*' \ --header 'Connection: keep-alive' \ --data-raw '{ "tenantId": "mappic_confidential_cloud_computing", "tableMetas": [ { "tableName": "adm_ctu_app_gn_multi_data_collect_di", // 表名 "instId": "bfaa0186c7914119bf23ed0f30b4d4b6", // 機構id "encryptKey": null, "storageInfo": "xxxxx", "isEncrypted": false, "partitionPattern": null, "isTemp": false, "columnInfo": [ { "columnName":"event_id", "isEncrypted":false } ] } ] }'
提交任務,獲取任務實例。
curl --location 'http://對外服務ip:8889/mappic/task/template' \ --header 'Content-Type: application/json' \ --header 'Accept: */*' \ --header 'Connection: keep-alive' \ --data '{ "tenantId":"mappic_confidential_cloud_computing", "sql":"select * from adm_ctu_app_gn_multi_data_collect_di limit 1000", "config":{}, "inputTables":["bfaa0186c7914119bf23ed0f30b4d4b6.adm_ctu_app_gn_multi_data_collect_di"],// 機構id·表名的結構 "outputTable":"bfaa0186c7914119bf23ed0f30b4d4b6.fred_test_table22", "priorityLevel":1, "baseConfig":{ "name":"xxx", "instId":"bfaa0186c7914119bf23ed0f30b4d4b6", "jobId":"xxxx", "timestamp":"2023-11-14 11:28:30", "env":"DEV" } }'
查看執行情況。
方式一:通過接口查看。
任務日志的
taskInstanceId
需要輸入的是創建任務時返回的信息。curl --location 'localhost:8889/mappic/task/log?taskInstanceId=任務實例&tenantId=mappic_confidential_cloud_computing&logWindowSecs=1' // 查詢日志返回結果 { "errorCode":null, "errorMessage":null, "status":null, "data":{ "logPath":"xxxxxx" }, "success":true }
curl --location 'localhost:8889/mappic/task/detail?taskInstanceId=任務實例id&tenantId=mappic_confidential_cloud_computing&env=DEV' // 查詢任務詳情返回結果 { "errorCode":null, "errorMessage":null, "status":null, "data":{ "taskInstanceId":"你的實例id", "ossPath":"xxxx" }, "success":true }
curl --location 'localhost:8889/mappic/task/status/list' \ --header 'Content-Type: application/json' \ --data '{ "tenantId": "mappic_confidential_cloud_computing", "taskInstanceIds": ["任務的實例"] }' // 查詢任務狀態返回結果 { "errorCode":null, "errorMessage":null, "status":null, "data":{ "statusDetail":[ { "taskInstanceId":"xxxxxx", "status":"RUNNING", "startTime":"1715602501000", "currentTime":"1715603076530" } ] }, "success":true }
方式二:控制臺查看執行狀態。
根據任務實例ID查看任務容器標簽ID,即:
job_id
。SELECT a.id, a.`sql`,a.`status`,a.`request_id`,b.`status`,a.`input_tables`,a.`output_table`, b.`mytf_request_id`,a.`create_time`,b.`gmt_finish`,c.`job_id`,a.`spark_args` FROM `task_table` AS a LEFT JOIN `async_tapp_request` AS b ON a.`request_id`= b.`request_id` LEFT JOIN `request_task_relation_table` AS c ON b.`mytf_request_id`= c.`task_id` WHERE a.`sql` NOT LIKE "LOAD%" AND a.`instance_id` = "任務實例id" ORDER BY a.`id` DESC LIMIT 200;
查看ACK集群->點擊工作負載->容器組->切換命名空間為default->按標簽查詢。
查詢:
mss_job_id
= 查出來的job_id
(去除最后一個字符)。
網頁體驗(僅用于體驗非商業化版本)
登錄頁面。
登錄主頁。
密態數據分析場景。
數據提供方:
數據使用方:
更多平臺體驗鏈接進群(69285014993)聯系管理員@霖珂和@冬雪。
聯系我們
聯系郵箱:antchainmappic@service.alipay.com。
快速問題排查:可通過技術交流群和我們進行聯系。
釘釘群號:69285014993。