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 ${[业务板块]}.[逻辑表名]")