Dataphin PyODPS是基于MaxCompute PyODPS开发的Dataphin Python版本的SDK。在Dataphin中使用Python时,您可以使用Dataphin PyODPS安全地访问Dataphin项目内存储在MaxCompute的数据。
背景信息
Dataphin PyODPS依赖于MaxCompute的 PyODPS。
前提条件
在使用Dataphin PyODPS前,请确认您已将Dataphin计算引擎设置为MaxCompute。具体操作请参见设置Dataphin实例的计算引擎。
使用限制
仅计算引擎为MaxCompute的Dataphin支持Dataphin PyODPS。
获取待操作数据对象的权限
- 申请逻辑表权限,详情请参见申请、续期和交还表权限。
- 申请物理表权限,详情请参见申请、续期和交还表权限。
- 上传资源到Python任务所在的项目,并提交或发布至生产环境。具体操作,请参见创建资源。
- 需要在Python任务所在的项目内创建函数,并提交或发布至生产环境。具体操作,请参见Python UDF或Java UDF最佳实践。
使用说明
- 当前,Dataphin支持的PyODPS包括项目空间、表、SQL、资源和函数。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
项目空间 资源 函数 - 访问物理表的SQL语句格式为
使用示例
from dataphin import odps
odps.execute_sql("select * from ${[业务板块]}.[逻辑表名]")