Schema
Schema是MaxCompute介于項(xiàng)目和表、資源、函數(shù)之間的概念,對表、資源、函數(shù)進(jìn)行進(jìn)一步歸類。本文為您介紹Schema的基本操作。
前提條件:準(zhǔn)備運(yùn)行環(huán)境
PyODPS支持在DataWorks的PyODPS節(jié)點(diǎn)或本地PC環(huán)境中運(yùn)行,運(yùn)行前您需先選擇運(yùn)行工具并準(zhǔn)備好運(yùn)行環(huán)境。
使用DataWorks:創(chuàng)建好PyODPS 2節(jié)點(diǎn)或PyODPS 3節(jié)點(diǎn),詳情請參見通過DataWorks使用PyODPS。
使用本地PC環(huán)境:安裝好PyODPS并初始化ODPS入口對象。
基本操作
當(dāng)前MaxCompute Schema功能還在公測中,如果您需要使用的話,請?zhí)峤恍鹿δ軠y試申請同時提供UID和Project名稱,詳情請參見新功能測試申請。
提交新功能測試申請后,MaxCompute將對Project進(jìn)行升級,目前此升級流程日常只安排在每周一和每周四進(jìn)行,提交申請后請耐心等待。升級后將在Project內(nèi)新建名稱為DEFAULT的Schema,以及會將UID對應(yīng)租戶的Schema語法開關(guān)打開,同時您可以自定義創(chuàng)建Schema并進(jìn)行操作使用。
創(chuàng)建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入口對象默認(rèn)操作的MaxCompute對象都位于名為
DEFAULT
的Schema下。為操作其他Schema下的對象,需要在創(chuàng)建入口對象時指定Schema。示例如下:# 確保 ALIBABA_CLOUD_ACCESS_KEY_ID 環(huán)境變量設(shè)置為用戶 Access Key ID, # ALIBABA_CLOUD_ACCESS_KEY_SECRET 環(huán)境變量設(shè)置為用戶 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>', )
參數(shù)說明:
參數(shù)名稱
描述
your-default-project
項(xiàng)目名稱。
your-end-point
MaxCompute服務(wù)的連接地址。您需要根據(jù)創(chuàng)建MaxCompute項(xiàng)目時選擇的地域以及網(wǎng)絡(luò)連接方式配置Endpoint。各地域及網(wǎng)絡(luò)對應(yīng)的Endpoint值,請參見Endpoint。
重要如果Endpoint配置有誤,會出現(xiàn)無法訪問錯誤,請務(wù)必仔細(xì)確認(rèn)。
your-schema-name
Schema名稱。
為不同對象的操作方法指定
schema
參數(shù)。示例如下:#列舉test_schema下所有的表 for table in o.list_tables(schema='**schema_name**'): print(table)
在執(zhí)行SQL時,指定默認(rèn)Schema。示例如下:
o.execute_sql("SELECT * FROM dual", default_schema="**schema_name**")