DataWorks OpenAPI 示例(元数据模块)

简介: DataWorks OpenAPI 示例

以下demo内容已经较老,大家使用API建议移步官方API文档:https://help.aliyun.com/document_detail/173915.html
有详细的demo代码和线上调试功能

DataWorks OpenAPI 元数据demo

Client初始化

 String region = "cn-shanghai"; IClientProfile profile = DefaultProfile.getProfile(region, "xxx", "xxx"); DefaultProfile.addEndpoint(region,"dataworks-public", String.format("dataworks.%s.aliyuncs.com", region)); IAcsClient client = new DefaultAcsClient(profile);

GetMetaDBInfo

  • 获取odps引擎详情
 GetMetaDBInfoRequest request = new GetMetaDBInfoRequest(); //odps app guid,格式 odps.{projectName} request.setAppGuid("odps.project1"); //类型为odps request.setDataSourceType("odps"); GetMetaDBInfoResponse res = client.getAcsResponse(request); GetMetaDBInfoResponse.Data data = res.getData();
  • 获取emr库详情
 GetMetaDBInfoRequest request = new GetMetaDBInfoRequest(); request.setDataSourceType("emr"); //emr 集群id request.setClusterId("C-C206DE8CACxxxxx"); //emr db名称 request.setDatabaseName("default"); GetMetaDBInfoResponse res = client.getAcsResponse(request); GetMetaDBInfoResponse.Data data = res.getData();

ListMetaDB

  • 获取emr 数据库列表
 ListMetaDBRequest request = new ListMetaDBRequest(); //数据类型 request.setDataSourceType("emr"); //dataworks 项目id request.setProjectId(110L); request.setPageSize(1); request.setPageNum(10); ListMetaDBResponse res = client.getAcsResponse(request); //总条数 res.getDatabaseInfo().getTotalCount(); //数据 res.getDatabaseInfo().getDbList();

GetMetaDBTableList

  • 获取odps引擎关联表
 GetMetaDBTableListRequest request = new GetMetaDBTableListRequest(); //app guid request.setAppGuid("odps.project1"); request.setDataSourceType("odps"); //第1页 request.setPageNumber(1); //每页大小 request.setPageSize(10); GetMetaDBTableListResponse res = client.getAcsResponse(request); //数据总大小 Long totalCount = res.getData().getTotalCount(); //当前页数据列表 List<GetMetaDBTableListResponse.Data.TableEntityListItem> tableEntityListItems = res.getData().getTableEntityList();
  • 获取emr 数据库下的表
 GetMetaDBTableListRequest request = new GetMetaDBTableListRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CAC0xxxxx"); //emr 数据库名称 request.setDatabaseName("default"); GetMetaDBTableListResponse res = client.getAcsResponse(request); //数据总大小 Long totalCount = res.getData().getTotalCount(); //当前页数据列表 List<GetMetaDBTableListResponse.Data.TableEntityListItem> tableEntityListItems = res.getData().getTableEntityList();

CheckMetaTable

  • 检查odps表是否存在
 CheckMetaTableRequest request = new CheckMetaTableRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //资源类型 request.setDataSourceType("odps"); CheckMetaTableResponse res = client.getAcsResponse(request); //表是否存在 Boolean exists = res.getData();
  • 检查emr表是否存在
 CheckMetaTableRequest request = new CheckMetaTableRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); CheckMetaTableResponse res = client.getAcsResponse(request);

CheckMetaPartition

  • 检查odps分区是否存在
 CheckMetaPartitionRequest request = new CheckMetaPartitionRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //资源类型 request.setDataSourceType("odps"); //分区 request.setPartition("dt_time=20200419"); CheckMetaPartitionResponse res = client.getAcsResponse(request); //分区是否存在 Boolean exists = res.getData();
  • 检查emr分区是否存在
 CheckMetaPartitionRequest request = new CheckMetaPartitionRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); request.setPartition("ds=202001"); CheckMetaPartitionResponse res = client.getAcsResponse(request); //分区是否存在 Boolean exists = res.getData();

SearchMetaTables

  • 搜索odps表
 SearchMetaTablesRequest request = new SearchMetaTablesRequest(); //odps app guid,格式 odps.{projectName} request.setAppGuid("odps.p1"); request.setDataSourceType("odps"); //表类型,0:table, 1:view 默认全部 request.setEntityType(0); //关键字 request.setKeyword("test"); //分页 request.setPageNumber(1); request.setPageSize(10); SearchMetaTablesResponse res = client.getAcsResponse(request); //数据总条数 Long totalCount = res.getData().getTotalCount(); //当前页表列表 res.getData().getDataEntityList();
  • 搜索emr表
 SearchMetaTablesRequest request = new SearchMetaTablesRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); request.setKeyword("test"); request.setPageNumber(1); request.setPageSize(10); SearchMetaTablesResponse res = client.getAcsResponse(request); //数据总条数 Long totalCount = res.getData().getTotalCount(); //当前页表列表 res.getData().getDataEntityList();

GetMetaTableBasicInfo

  • 获取odps表基本信息
 GetMetaTableBasicInfoRequest request = new GetMetaTableBasicInfoRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //资源类型 request.setDataSourceType("odps"); GetMetaTableBasicInfoResponse res = client.getAcsResponse(request); //表数据 GetMetaTableBasicInfoResponse.Data info = res.getData();
  • 获取emr表基础信息
 GetMetaTableBasicInfoRequest request = new GetMetaTableBasicInfoRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); GetMetaTableBasicInfoResponse res = client.getAcsResponse(request); //表数据 GetMetaTableBasicInfoResponse.Data info = res.getData();

GetMetaTableColumn

  • 获取odps column列表
 GetMetaTableColumnRequest request = new GetMetaTableColumnRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //资源类型 request.setDataSourceType("odps"); //分页 request.setPageNum(1); request.setPageSize(10); GetMetaTableColumnResponse res = client.getAcsResponse(request); //数据总条数 Long totalCount = res.getData().getTotalCount(); //当前页数据列表 List<GetMetaTableColumnResponse.Data.ColumnListItem> columnList = res.getData().getColumnList(); 
  • 获取emr表column信息
 GetMetaTableColumnRequest request = new GetMetaTableColumnRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); request.setPageNum(1); request.setPageSize(10); GetMetaTableColumnResponse res = client.getAcsResponse(request); //数据总条数 Long totalCount = res.getData().getTotalCount(); //当前页数据列表 List<GetMetaTableColumnResponse.Data.ColumnListItem> columnList = res.getData().getColumnList();

GetMetaTablePartition

  • 获取odps表分区
 GetMetaTablePartitionRequest request = new GetMetaTablePartitionRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //资源类型 request.setDataSourceType("odps"); //分页 request.setPageNumber(1); request.setPageSize(10); GetMetaTablePartitionResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //分区列表 res.getData().getDataEntityList();
  • 获取emr表分区
 GetMetaTablePartitionRequest request = new GetMetaTablePartitionRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); request.setPageNumber(1); request.setPageSize(10); GetMetaTablePartitionResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //分区列表 res.getData().getDataEntityList();

GetMetaTableOutput

  • 获取odps表输出
 GetMetaTableOutputRequest request = new GetMetaTableOutputRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //output开始时间 request.setStartDate("2020-05-27"); //output结束时间 request.setEndDate("2020-06-12"); request.setPageNumber(1); request.setPageSize(10); GetMetaTableOutputResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //输出列表 res.getData().getDataEntityList();

GetMetaTableChangeLog

  • 获取odps表变更信息
 GetMetaTableChangeLogRequest request = new GetMetaTableChangeLogRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //开始时间,格式yyyy-MM-dd HH:mm:ss request.setStartDate("2020-01-01 01:01:00"); //格式yyyy-MM-dd HH:mm:ss request.setEndDate("2020-01-02 01:01:00"); /** * 类型: * CREATE_TABLE * ALTER_TABLE * DROP_TABLE * ADD_PARTITION * DROP_PARTITION * ALTER_OWNER_ID * ALTER_LIFE_CYCLE_TIME */ request.setChangeType("CREATE_TABLE"); //对象 类型 TABLE,PARTITION request.setObjectType("TABLE"); //分页 request.setPageNumber(1); request.setPageSize(10); GetMetaTableChangeLogResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //数据 res.getData().getDataEntityList();

GetMetaTableIntroWiki

  • 获取wiki
 GetMetaTableIntroWikiRequest request = new GetMetaTableIntroWikiRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); //wiki版本 request.setWikiVersion(1L); GetMetaTableIntroWikiResponse res = client.getAcsResponse(request); //数据 res.getData();

GetMetaTableLineage

  • 获取odps表血缘
 GetMetaTableLineageRequest request = new GetMetaTableLineageRequest(); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); request.setDataSourceType("odps"); //方向,up:上游 down:下游 request.setDirection("up"); //每页大小 request.setPageSize(10); //下一页的起始key,null的时候从最开始查询 String nextPrimaryKey = null; //是否有下一页 Boolean hasNext = false; List<GetMetaTableLineageResponse.Data.DataEntityListItem> dataEntityListItems = new ArrayList<>(); do { //分页起始key,返回数据中获取 request.setNextPrimaryKey(nextPrimaryKey); GetMetaTableLineageResponse res = client.getAcsResponse(request); List<GetMetaTableLineageResponse.Data.DataEntityListItem> items = res.getData().getDataEntityList(); dataEntityListItems.addAll(items); //是否有下一页 hasNext = res.getData().getHasNext(); //下一页起始key nextPrimaryKey = res.getData().getNextPrimaryKey(); } while(hasNext);
  • 获取emr表血缘
 GetMetaTableLineageRequest request = new GetMetaTableLineageRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); //下一次请求开始id,参考 GetMetaTableLineageResponse.getData().getNextPrimaryKey() request.setDirection("up"); request.setPageSize(10); //下一页的起始key,null的时候从最开始查询 String nextPrimaryKey = null; //是否有下一页 Boolean hasNext = false; List<GetMetaTableLineageResponse.Data.DataEntityListItem> dataEntityListItems = new ArrayList<>(); do { //分页起始key,返回数据中获取 request.setNextPrimaryKey(nextPrimaryKey); GetMetaTableLineageResponse res = client.getAcsResponse(request); List<GetMetaTableLineageResponse.Data.DataEntityListItem> items = res.getData().getDataEntityList(); dataEntityListItems.addAll(items); //是否有下一页 hasNext = res.getData().getHasNext(); //下一页起始key nextPrimaryKey = res.getData().getNextPrimaryKey(); } while(hasNext);

GetMetaColumnLineage

  • 获取odps字段血缘
 GetMetaColumnLineageRequest request = new GetMetaColumnLineageRequest(); //column guid,格式 odps.{projectName}.{tableName}.{columnName} request.setColumnGuid("odps.project1.t1"); request.setDataSourceType("odps"); //方向,up:上游 down:下游 request.setDirection("down"); //分页 request.setPageNum(1); request.setPageSize(10); GetMetaColumnLineageResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //数据 res.getData().getDataEntityList();
  • 获取emr字段血缘
 GetMetaColumnLineageRequest request = new GetMetaColumnLineageRequest(); //数据类型 request.setDataSourceType("emr"); //emr集群id request.setClusterId("C-C206DE8CXXXXXXX"); //emr 数据库名称 request.setDatabaseName("default"); //表名称 request.setTableName("table1"); request.setDirection("up"); request.setColumnName("eid"); request.setPageNum(1); request.setPageSize(10); GetMetaColumnLineageResponse res = client.getAcsResponse(request); //数据总条数 res.getData().getTotalCount(); //数据 res.getData().getDataEntityList();

CreateMetaCategory

  • 创建类目
 CreateMetaCategoryRequest request = new CreateMetaCategoryRequest(); //类目名称 request.setName("test1"); //注释 request.setComment("test"); //父类目id,0表示没有父类目 request.setParentId(0L); CreateMetaCategoryResponse res = client.getAcsResponse(request); //生成的类目id res.getData().getCategoryId()

UpdateMetaCategory

  • 更新类目
 UpdateMetaCategoryRequest request = new UpdateMetaCategoryRequest(); request.setCategoryId(53664L); request.setName("t93233"); request.setComment("the com"); UpdateMetaCategoryResponse res = client.getAcsResponse(request); //是否成功 res.getData();

DeleteMetaCategory

  • 删除类目
 DeleteMetaCategoryRequest request = new DeleteMetaCategoryRequest(); request.setCategoryId(53664L); DeleteMetaCategoryResponse res = client.getAcsResponse(request); //是否成功 res.getData();

GetMetaCategory

  • 获取子类目列表
 GetMetaCategoryRequest request = new GetMetaCategoryRequest(); //父类目id request.setParentCategoryId(0L); request.setPageNum(1); request.setPageSize(10); GetMetaCategoryResponse res = client.getAcsResponse(request); //总数据 res.getData().getTotalCount(); //数据列表 res.getData().getDataEntityList();

GetMetaTableListByCategory

  • 获取类目关联表
 GetMetaTableListByCategoryRequest request = new GetMetaTableListByCategoryRequest(); request.setCategoryId(53664L); request.setPageNumber(1); request.setPageSize(10); GetMetaTableListByCategoryResponse res = client.getAcsResponse(request);

AddToMetaCategory

  • 增加类目、表关联
 AddToMetaCategoryRequest request = new AddToMetaCategoryRequest(); request.setCategoryId(53664L); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); AddToMetaCategoryResponse res = client.getAcsResponse(request);

DeleteFromMetaCategory

  • 删除类目、表关联
 DeleteFromMetaCategoryRequest request = new DeleteFromMetaCategoryRequest(); request.setCategoryId(53642L); //odps table guid,格式odps.{projectName}.{tableName} request.setTableGuid("odps.project1.t1"); DeleteFromMetaCategoryResponse res = client.getAcsResponse(request);
相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
消息中间件 分布式计算 DataWorks
DataWorks常见问题之查看数据地图模块总的存储大小失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之新建项目的元数据的sql报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
157 0
|
资源调度 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python UDF(User-Defined Function)来引用第三方模块
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL 运维 DataWorks
DataWorks产品使用合集之如何通过OpenAPI获取SQL任务每次提交的SQL变更内容
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
存储 JSON 分布式计算
DataWorks操作报错合集之在处理元数据存储时发生报错:ODPS-0010000,该如何处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
JSON 安全 API
⚡什么是 OpenAPI,优势、劣势及示例
OpenAPI 是一个用于描述RESTful API的标准,它提供了一个接口,使得人和机器无需源代码或文档就能理解服务。它定义了API的结构,与语言无关,适用于REST API。OpenAPI始于Swagger项目,后来成为OpenAPI倡议的一部分,由Linux基金会管理,得到了众多公司的支持。OpenAPI流行的原因包括其语言无关性、可读性、社区支持和工具生态系统。它使用JSON格式,支持各种数据类型,并具有严格定义的结构。虽然有其他如RAML和API Blueprint的竞争格式,但OpenAPI的广泛采用使其成为行业标准。
|
SQL DataWorks 安全
DataWorks产品使用合集之在进行数据查询和数据处理时,如何通过数据建模与开发模块来创建和管理SQL脚本
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之无法在表管理模块搜索到ODPS的表,一般是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之在DataWorks数据开发模块中一直显示“工作空间默认初始化中”,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
216 3
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之跑python3脚本,已按照文档安装上模块,提示找不到模块,是什么问题
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
103 0

相关产品

  • 大数据开发治理平台 DataWorks
  • 下一篇