Dataphin PyODPS是基于MaxCompute PyODPS開發的Dataphin Python版本的SDK。在Dataphin中使用Python時,您可以使用Dataphin PyODPS安全地訪問Dataphin項目內存儲在MaxCompute的數據。
背景信息
Dataphin PyODPS依賴于MaxCompute的 PyODPS。
前提條件
在使用Dataphin PyODPS前,請確認您已將Dataphin計算引擎設置為MaxCompute。具體操作請參見使用MaxCompute作為元倉計算引擎進行元倉初始化。
使用限制
僅計算引擎為MaxCompute的Dataphin支持Dataphin PyODPS。
獲取待操作數據對象的權限
申請邏輯表權限,詳情請參見申請、續期和交還表權限。
申請物理表權限,詳情請參見申請、續期和交還表權限。
上傳資源到Python任務所在的項目,并提交或發布至生產環境。具體操作,請參見上傳資源及引用。
需要在Python任務所在的項目內創建函數,并提交或發布至生產環境。具體操作,請參見新建用戶自定義函數。
使用說明
Dataphin PyODPS安裝包已內置在Dataphin中,您可以在Dataphin中直接調用。詳細說明如下:
當前,Dataphin支持的PyODPS包括項目空間、表、資源和函數。MaxCompute的其他PyODPS暫時不支持直接在Dataphin上調用。
在Dataphin上調用PyODPS時,與直接在MaxCompute上調用,命令執行上基本一致。詳細說明如下表所示。
PyODPS
是否一致
備注
SQL
不一致
在Dataphin中使用PyODPS訪問項目內的表時,需要在表名稱前加項目或業務板塊的信息,詳細說明如下:
訪問物理表的SQL語句格式為
${Dataphin項目英文名}.物理表名
。例如,Dataphin中有項目ProjectA,則Dataphin自動生成項目變量${ProjectA}。ProjectA內有一張物理表TableA,則您可以使用
${ProjectA}.TableA
來引用這張表。動態變量${ProjectA}在開發環境執行時默認被替換為Project A_dev,在生產環境執行時默認被替換為ProjectA。當然您也可以直接指定開發項目(ProjectA_dev)或生產項目(ProjectA)。訪問邏輯表的SQL語句格式為
${Dataphin業務板塊英文名}.邏輯表名
。例如,Dataphin中有業務板塊LD_BizUnitA,則Dataphin自動生成業務板塊變量${LD_BizUnit A}。業務板塊LD_BizUnitA內有一張邏輯表DimTableA。您可以使用
${LD_BizUnitA}.DimTableA
來引用這張表,該變量在開發環境執行時默認被替換為LD_BizUnitA_dev,在生產環境執行時默認被替換為LD_BizUnitA。當然您也可以直接指定開發項目(LD_BizUnitA_dev)或生產項目(LD_BizUnitA)。
表
一致
不支持跨Dataphin項目訪問存儲在MaxCompute的數據對象,也就是支持訪問當前Python任務所在的Dataphin項目內存儲在MaxCompute的數據對象。
例如,當前Python任務所在的項目英文名為ProjectB,如果您執行
odps.get_project(‘Test_Project')
,則會報以下錯誤。Exception: Dataphin odps client auth check failed, not allow to operate project Test_Project
項目空間
資源
函數
操作過程中有無權限的報錯時,您需要獲取對應數據對象的權限。具體操作,請參見獲取待操作數據對象的權限。
使用示例
from dataphin import odps
odps.execute_sql("select * from ${[業務板塊]}.[邏輯表名]")