Schema是MaxCompute介於專案和表、資源、函數之間的概念,對錶、資源、函數進行進一步歸類。本文為您介紹Schema的基本操作。
前提條件:準備運行環境
PyODPS支援在DataWorks的PyODPS節點或本地PC環境中運行,運行前您需先選擇運行工具並準備好運行環境。
使用DataWorks:建立好PyODPS 2節點或PyODPS 3節點,詳情請參見通過DataWorks使用PyODPS。
使用本地PC環境:安裝好PyODPS並初始化ODPS入口對象。
基本操作
當前MaxCompute Schema功能還在公測中,如果您需要使用的話,請提交新功能測試申請同時提供UID和Project名稱。
提交新功能測試申請後,MaxCompute將對Project進行升級,目前此升級流程日常只安排在每周一和每周四進行,提交申請後請耐心等待。升級後將在Project內建立名稱為DEFAULT的Schema,以及會將UID對應租戶的Schema文法開關開啟,同時您可以自訂建立Schema並進行操作使用。
如果您剛使用MaxCompute,未建立過專案,則可以在MaxCompute控制台左側導覽列選擇租戶管理 > 租戶屬性,在租戶屬性頁面開啟租戶級Schema文法開關,這樣您建立的專案都是支援Schema功能的專案。
建立Schema。
schema = o.create_schema("**schema_name**") print(schema)
刪除Schema。
schema = o.delete_schema("**schema_name**")
列舉所有Schema。
for schema in o.list_schema(): print(schema)
在開啟Schema後,MaxCompute入口對象預設操作的MaxCompute對象都位於名為
DEFAULT
的Schema下。為操作其他Schema下的對象,需要在建立入口對象時指定Schema。樣本如下:# 確保 ALIBABA_CLOUD_ACCESS_KEY_ID 環境變數設定為使用者 Access Key ID, # ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境變數設定為使用者 Access Key Secret, # 不建議直接使用 Access Key ID / Access Key Secret 字串 o = ODPS( os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='<your-default-project>', endpoint='<your-end-point>', schema='<your-schema-name>', )
參數說明:
參數名稱
描述
your-default-project
專案名稱。
your-end-point
MaxCompute服務的串連地址。您需要根據建立MaxCompute專案時選擇的地區以及網路連接方式配置Endpoint。各地區及網路對應的Endpoint值,請參見Endpoint。
重要如果Endpoint配置有誤,會出現無法訪問錯誤,請務必仔細確認。
your-schema-name
Schema名稱。
為不同對象的操作方法指定
schema
參數。樣本如下:#列舉test_schema下所有的表 for table in o.list_tables(schema='**schema_name**'): print(table)
在執行SQL時,指定預設Schema。樣本如下:
o.execute_sql("SELECT * FROM dual", default_schema="**schema_name**")