DataWorks OpenAPI 示例(元数据模块)

本文涉及的产品
DataWorks独享数据集成资源组,8核16GB 1个月
大数据开发治理平台 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);
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
运维 分布式计算 监控
DataWorks智能监控模块介绍|学习笔记
快速学习 DataWorks 智能监控模块介绍
410 0
DataWorks智能监控模块介绍|学习笔记
|
数据采集 SQL 分布式计算
DataWorks数据质量模块介绍|学习笔记
快速学习 DataWorks 数据质量模块介绍
379 0
|
存储 分布式计算 DataWorks
DataWorks数据安全能力模块介绍及最佳实践 | 《一站式大数据开发治理DataWorks使用宝典》
阿里云DataWorks结合各引擎为企业提供一站式开箱即用的安全能力,这些能力可以覆盖《数据安全能力成熟度模型 GB/T37988—2019》(DSMM)中所述的几个重要的数据安全过程:传输、存储、处理、交换、通用等。
2148 0
DataWorks数据安全能力模块介绍及最佳实践 | 《一站式大数据开发治理DataWorks使用宝典》
|
数据采集 SQL 存储
DataWorks数据分析模块 | 《一站式大数据开发治理DataWorks使用宝典》
什么是数据分析?如下图所示,该图描述了数据、信息与情报的关系。我们从外界环境中采集数据,环境可能是软件环境,比如业务系统中的日志数据,也可能是硬件环境,比如采集传感器数据。采集来的原始数据的价值密度通常是比较低的,通过加工、处理、萃取后会得到更有价值的信息,对这个信息进一步的分析与生产,就得到了情报。 总的来说,数据分析是以挖掘有价值的信息并用结论支撑决策为目的,对数据进行探查、清洗、转换和建模的过程。数据分析能够使决策更科学,并帮助企业实现更有效的运营。
1248 0
DataWorks数据分析模块 | 《一站式大数据开发治理DataWorks使用宝典》
|
数据采集 运维 分布式计算
DataWorks OpenAPI 数据开发治理实战系列
DataWorks作为飞天大数据平台操作系统,历经11年发展,形成了涵盖数据集成、数据开发、数据治理、数据服务的一站式大数据开发治理平台。很多企业用户在使用产品的过程中希望他们的本地服务能够和阿里云上的DataWorks服务进行交互,从而提升企业大数据处理的效率,减少人工操作和运维工作,降低数据风险和企业成本,现在DataWorks开放OpenAPI能力满足企业的定制化需求。 DataWorks OpenAPI涵盖租户、元数据、数据开发、运维中心、数据质量、数据服务等DataWorks核心能力,企业版和旗舰版分别赠送100万次/月、1000万次/月的免费调用额度。
959 0
DataWorks OpenAPI 数据开发治理实战系列
|
消息中间件 存储 运维
DataWorks OpenAPI企业开发实战-运维监控大屏
本文将会介绍如何通过使用DataWorks OpenAPI、DataWorks开放元数据、DataWorks开放事件消息三大利器搭建企业自己的DataWorks运维大屏。其中DataWorks OpenAPI已经面向所有企业开放商业化,而DataWorks开放元数据、DataWorks开放事件消息还在邀测中。
1552 0
DataWorks OpenAPI企业开发实战-运维监控大屏
|
运维 DataWorks 大数据
DataWorks OpenAPI-表结构变更时触发任务变更
随着大数据在企业内部使用越来越广泛,很多业务落地慢慢的都依赖大数据的产出结果做为基础,业务的发展遍地开花产生了越来越多的任务,这些任务之间相互依赖也就越来越复杂,慢慢的超过人为可视、可梳理范围;当上游的数据口径发生变更的时候,对下游业务的影响就会形成放射性,影响难以预料,这时候就急需有一种功能来辅助我们的运维人员一起梳理出整个受影响的业务范围,以防数据口径不一致引起资损、或提供错误的数据导致决策失误。
4243 0
DataWorks OpenAPI-表结构变更时触发任务变更
|
分布式计算 DataWorks BI
DataWorks OpenAPI实现数据资产分布和排行分析
3.1 资产总览: odps项目数量, 表数量,分区表数量,表总大小 3.2 资产分布 按工作空间划分、按所有者划分 3.2(b) 资产分布 按工作空间(名称)划分、按所有者(nick)划分
1896 0
DataWorks OpenAPI实现数据资产分布和排行分析
|
存储 DataWorks 算法
依赖DataWorks OpenAPI补数据实现圈人
从2020年10月份起DataWorks为企业版提供了API的能力,我们可以根据现有的API能力打通应用与离线数据加工,从而让大数据能直接为在线应用服务,本篇文章使用圈人功能做一个简单的介绍实现;
1905 0
依赖DataWorks OpenAPI补数据实现圈人
|
数据采集 运维 DataWorks
提效神器,DataWorks OpenAPI开放!
工欲善其数,必先利其器。通过DataWorks OpenAPI 功能,可以快速进行批量操作与系统集成对接,助您显著提升数据开发效率!(DataWorks OpenAPI限企业版及以上版本使用)
1823 0
提效神器,DataWorks OpenAPI开放!
相关产品
大数据开发治理平台 DataWorks
推荐文章
更多