DLA支持MaxCompute(ODPS)数据源

简介: DLA支持MaxCompute(ODPS)数据源 1. 概述 支持功能包括: MaxCompute(ODPS)的数据查询,目前复杂数据类型以字符串形式返回; 一条命令同步对应project下的所有表。

DLA支持MaxCompute(ODPS)数据源

1. 概述

支持功能包括:

  • MaxCompute(ODPS)的数据查询,目前复杂数据类型以字符串形式返回;
  • 一条命令同步对应project下的所有表。

不支持数据回流ODPS。

其他说明:

  • 基于MaxCompute tunnel拉取数据;
  • 通过在查询中指定WHERE <分区列> = <分区key>的形式进行分区过滤(裁剪),避免全表扫描数据,目前支持如下一些形式进行分区过滤(裁剪):

    • WHERE <分区列> = <分区key>
    • WHERE <分区列> = <分区key1> OR <分区列> = <分区key2> ...
    • WHERE <分区列> IN (<分区key1>, <分区key2>, ...)
    • 如果是多级分区,必须写明所有级别的分区过滤条件,并匹配,如: WHERE <一级分区列> = <一级分区key> AND <二级分区列> = <二级分区key> ...
  • 不提供分区过滤,或者分区过滤条件不匹配实际分区的,会全表扫描数据;
  • MaxCompute默认对project的tunnel访问有总体并发quota控制,DLA默认对单次查询控制tunnel并发1000。

2. 步骤

2.1 DLA中创建对应ODPS project的schema

CREATE SCHEMA <schema_name> WITH DBPROPERTIES (
  catalog = 'odps',
  location = 'http://dt.<region>.maxcompute.aliyun-inc.com',
  endpoint = 'http://service.cn.maxcompute.aliyun-inc.com/api',
  project = '<odps_project_name>',
  USER = '<access_key>',
  PASSWORD = '<access_secret>'
)

其中:

  • schema_name为DLA中的定义的schema名;
  • location为对应ODPS中的tunnel endpoint;

  • endpoint为对应ODPS中的endpoint;

  • odps_project_name为目标ODPS的项目名;
  • access_key为访问ODPS的云账号access key;
  • access_secret为访问ODPS的云账号access secret。

2.2 同步ODPS project下的表信息

msck repair database <schema_name>

执行上述命令,同步<schema_name>对应的ODPS project下的所有表,EXTERNAL TABLE(外表)不会被同步(注意:ODPS project下的表是分区表时,分区列会被作为普通列创建在DLA中的表列定义中,按顺序排在最后)。

仅仅需要上述两个步骤,就可以在DLA中:

  • 对ODPS表进行查询;
  • 使用INSERT from SELECT将ODPS数据回流到其他数据源。

到目前(2019年6月)为止,DLA支持的云上数据源情况如下:

image.png

3. 建表操作

除了上述2中的MSCK REPAIR DATABASE的全量元数据表同步机制之外,也可以单表进行建表操作,避免映射ODPS project下的全部表。

3.1 非分区表

ODPS中project下的非分区表对应的CREATE TABLE语句:

CREATE TABLE IF NOT EXISTS bank_data
(
 age             BIGINT COMMENT '年龄',
 job             STRING COMMENT '工作类型',
 marital         STRING COMMENT '婚否',
 education       STRING COMMENT '教育程度',
 default         STRING COMMENT '是否有信用卡',
 housing         STRING COMMENT '房贷',
 loan            STRING COMMENT '贷款',
 contact         STRING COMMENT '联系途径',
 month           STRING COMMENT '月份',
 day_of_week     STRING COMMENT '星期几',
 duration        STRING COMMENT '持续时间',
 campaign        BIGINT COMMENT '本次活动联系的次数',
 pdays           DOUBLE COMMENT '与上一次联系的时间间隔',
 previous        DOUBLE COMMENT '之前与客户联系的次数',
 poutcome        STRING COMMENT '之前市场活动的结果',
 emp_var_rate    DOUBLE COMMENT '就业变化速率',
 cons_price_idx  DOUBLE COMMENT '消费者物价指数',
 cons_conf_idx   DOUBLE COMMENT '消费者信心指数',
 euribor3m       DOUBLE COMMENT '欧元存款利率',
 nr_employed     DOUBLE COMMENT '职工人数',
 y               BIGINT COMMENT '是否有定期存款'
);

则在DLA中,用上述2.1中的步骤创建的schema下,创建对应project下的表(仅仅是多了一个EXTERNAL关键字,注意:表名和列名必须相同,如果遇到关键字,请用``引起来,比如下面的default列):

CREATE EXTERNAL TABLE IF NOT EXISTS bank_data
(
 age             BIGINT COMMENT '年龄',
 job             STRING COMMENT '工作类型',
 marital         STRING COMMENT '婚否',
 education       STRING COMMENT '教育程度',
 `default`         STRING COMMENT '是否有信用卡',
 housing         STRING COMMENT '房贷',
 loan            STRING COMMENT '贷款',
 contact         STRING COMMENT '联系途径',
 month           STRING COMMENT '月份',
 day_of_week     STRING COMMENT '星期几',
 duration        STRING COMMENT '持续时间',
 campaign        BIGINT COMMENT '本次活动联系的次数',
 pdays           DOUBLE COMMENT '与上一次联系的时间间隔',
 previous        DOUBLE COMMENT '之前与客户联系的次数',
 poutcome        STRING COMMENT '之前市场活动的结果',
 emp_var_rate    DOUBLE COMMENT '就业变化速率',
 cons_price_idx  DOUBLE COMMENT '消费者物价指数',
 cons_conf_idx   DOUBLE COMMENT '消费者信心指数',
 euribor3m       DOUBLE COMMENT '欧元存款利率',
 nr_employed     DOUBLE COMMENT '职工人数',
 y               BIGINT COMMENT '是否有定期存款'
);

3.2 分区表

ODPS project下的表是分区表时,分区列会被作为普通列创建在DLA中的表列定义中,按顺序排在最后。例如,ODPS project下的分区表对应的CREATE TABLE语句:

CREATE TABLE IF NOT EXISTS part_datatype_test_complex (
  int_test int,
  bigint_test bigint,
  double_test double,
  string_test string,
  datetime_test datetime,
  boolean_test boolean,
  array_test array<INT>,
  map_test map<string, string>,
  struct_test_1 struct<x:INT, y:INT>,
  struct_test_2 struct<x:string, y:string>
)
partitioned by (pt bigint, region string);

到目前(2019年6月)为止,还不支持在DLA中直接用复杂类型映射ODPS的复杂类型,可以先把复杂类型用字符串类型映射,对应的CREATE TABLE语句为:

CREATE EXTERNAL TABLE IF NOT EXISTS part_datatype_test_complex (
  int_test int,
  bigint_test bigint,
  double_test double,
  string_test string,
  datetime_test datetime,
  boolean_test boolean,
  array_test string,
  map_test string,
  struct_test_1 string,
  struct_test_2 string,
  pt bigint,
  region string
)
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
2月前
|
存储 分布式计算 大数据
【赵渝强老师】阿里云大数据存储计算服务:MaxCompute
阿里云MaxCompute是快速、全托管的TB/PB级数据仓库解决方案,提供海量数据存储与计算服务。支持多种计算模型,适用于大规模离线数据分析,具备高安全性、低成本、易用性强等特点,助力企业高效处理大数据。
109 0
|
3月前
|
存储 缓存 分布式计算
OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
MaxCompute直读OSS外部表优化方案,解决传统ETL架构中数据同步延迟高、传输成本大、维护复杂等问题。通过存储格式优化(ORC/Parquet)、分区剪枝、谓词下推与元数据缓存等技术,显著提升查询性能并降低成本。结合冷热数据分层与并发控制策略,实现高效数据分析。
|
3月前
|
人工智能 分布式计算 大数据
构建AI时代的大数据基础设施-MaxCompute多模态数据处理最佳实践
本文介绍了大数据与AI一体化架构的演进及其实现方法,重点探讨了Data+AI开发全生命周期的关键步骤。文章分析了大模型开发中的典型挑战,如数据管理混乱、开发效率低下和运维管理困难,并提出了解决方案。同时,详细描述了MaxCompute在构建AI时代数据基础设施中的作用,包括其强大的计算能力、调度能力和易用性特点。此外,还展示了MaxCompute在多模态数据处理中的应用实践以及具体客户案例,最后提供了体验MaxFrame解决方案的方式。
377 2
|
11月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
1210 1
|
11月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
165 0
|
6月前
|
存储 分布式计算 运维
课时6:阿里云MaxCompute:轻松玩转大数据
阿里云MaxCompute是全新的大数据计算服务,提供快速、完全托管的PB级数据仓库解决方案。它拥有高效的压缩存储技术、强大的计算能力和丰富的用户接口,支持SQL查询、机器学习等高级分析。MaxCompute兼容多种计算模型,开箱即用,具备金融级安全性和灵活的数据授权功能,帮助企业节省成本并提升效率。
190 0
|
11月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
218 0
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
SQL 存储 分布式计算
MaxCompute 入门:大数据处理的第一步
【8月更文第31天】在当今数字化转型的时代,企业和组织每天都在产生大量的数据。有效地管理和分析这些数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个用于处理海量数据的大规模分布式计算服务。它提供了强大的存储能力以及丰富的数据处理功能,让开发者能够快速构建数据仓库、实时报表系统、数据挖掘等应用。本文将介绍 MaxCompute 的基本概念、架构,并演示如何开始使用这一大数据处理平台。
1638 0

热门文章

最新文章