DataWorks OpenAPI 示例(元数据模块)

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 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);
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
1月前
|
消息中间件 分布式计算 DataWorks
DataWorks常见问题之查看数据地图模块总的存储大小失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
6月前
|
运维 搜索推荐 API
Dataphin 提供各模块对应的 OpenAPI
Dataphin 提供各模块对应的 OpenAPI
192 2
|
16天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之如何读取并管理元数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
JSON 安全 API
⚡什么是 OpenAPI,优势、劣势及示例
OpenAPI 是一个用于描述RESTful API的标准,它提供了一个接口,使得人和机器无需源代码或文档就能理解服务。它定义了API的结构,与语言无关,适用于REST API。OpenAPI始于Swagger项目,后来成为OpenAPI倡议的一部分,由Linux基金会管理,得到了众多公司的支持。OpenAPI流行的原因包括其语言无关性、可读性、社区支持和工具生态系统。它使用JSON格式,支持各种数据类型,并具有严格定义的结构。虽然有其他如RAML和API Blueprint的竞争格式,但OpenAPI的广泛采用使其成为行业标准。
|
1月前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之在DataWorks数据开发模块中一直显示“工作空间默认初始化中”,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
40 3
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之DataWorks基础属性:调度参数典型场景配置示例如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
36 0
|
1月前
|
分布式计算 DataWorks 数据处理
DataWorks产品使用合集之在DataWorks中管理MaxCompute模块的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
44 0
|
1月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之DataWorks中管理MaxCompute模块的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
SQL 存储 分布式计算
DataWorks常见问题之能否把元数据的库名表名同步
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之运行官方提供的示例报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks