RedShift到MaxCompute迁移实践指导

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedShift到MaxCompute迁移实践指导相关的知识,希望对你有一定的参考价值。

简介: 本文主要介绍Amazon Redshift如何迁移到MaxCompute,主要从语法对比和数据迁移两方面介绍,由于Amazon Redshift和MaxCompute存在语法差异,这篇文章讲解了一下语法差异

1.概要

本文档详细介绍了Redshift和MaxCompute之间SQL语法的异同。这篇文档有助于加快sql任务迁移到MaxCompute。由于Redshift和MaxCompute之间语法存在很多差异,因此我们需要修改Redshift上编写的脚本,然后才能在MaxCompute中使用,因为服务之间的SQL方言不同。

2.迁移前RedShift于MaxCompute的各项对比差异

2.1.1数据类型对比及类型转化

类别

MaxCompute

建议转化成MaxCompute类型

Redshift

数值类型

smallint

Y

Y

Y

integer

N

int

Y

bigint

Y

int

Y

decimal

Y

Y

Y

numeric

N

decimal

Y

real

N

float

Y

double

Y

Y

Y

float

Y

float

Y

TINYINT

Y

smallint

N

字符类型

varchar(n)

Y

Y

Y

char(n)

Y

Y

Y

STRING

Y

text

N

string

Y

日期

TIMESTAMP

Y

Y

Y

TIMESTAMPTZ

N

Y

DATE

Y

Y

Y

TIME

N

Y

DateTime

Y

N

boolean 数据类型

boolean

Y

Y

Y

复杂数据类型

ARRAY

Y

Y

N

MAP

Y

Y

N

STRUCT

Y

Y

N

HLLSketch

N

Y

MaxCompoute数据类型参考2.0数据类型版本 - MaxCompute - 阿里云

2.1.2语法对比

MaxCompute没有schenma、group、库、存储过程的概念。只有project、表、分区,MaxCompute建表时没有自增序列 外键等,不支持指定编码默认utf-8,内部表不支持指定存储格式默认Aliorc

主要区别

表结构

不能修改分区列列名,只能修改分区列对应的值。

支持增加列,但是不支持删除列以及修改列的数据类

型。

SQL 常见问题

INSERT 语法上最直观的区别是:Insert into/overwrite 后面

有个关键字 Table。

数据插入表的字段映射不是根据 Select 的别名做的,而

是根据 Select 的字段的顺序和表里的字段的顺序

UPDATE/DELETE

只有事务表支持UPDATE/DELETE

join

Join 必须要用 on 设置关联条件,不支持笛卡尔积

触发器

不支持触发器、

创建外部函数

maxCompute没有外部函数

精度

DOUBLE 类型存在精度问题。 不建议在关联时候进行直接等号关联两

个 DOUBLE字段,建议把两个数做减

法,如果差距小于一个预设的值就认为

是相同,例如 abs(a1- a2) <

0.000000001。

目前产品上已经支持高精度的类型

DECIMAL。

日期

MaxCompute主要的日期类型是datetime(格式yyyy-mm-dd hh:mi:ss) timestamp date,datetime支持的内建函数更加丰富,建议日期转成datetime做运算,日期函数链接

存储过程

使用MaxCompute的pyodps修改

物化视图

要更新物化化视图中的数据,MaxCompute只能手动更新,不支持自动更新

redshift 支持在select语句中引用别名如

select money/100 as a ,round(money/100,3) from table

MaxCompute修改

select money/100 as a ,round(a,3) from table

2.1.3复合表达式

MaxCompute

REDAHIFT

+、-

Y

Y

^、|/、||/

Y

Y

*、/、%

Y

Y

@

N

Y

&、|、

Y

Y

||

Y

Y

#、~、<<、>>

使用shift函数替换

Y

2.1.4条件比较

MaxCompute

REDAHIFT

<> 或 !=

Y

Y

like

Y

Y

BETWEEN expression AND

Y

Y

IS [ NOT ] NULL

Y

Y

EXISTS

Y

Y

POSIX 运算符

N

Y

SIMILAR TO

N

Y

IN

Y

Y

正则 ~

Rlike

Y

~~

like

Y

2.1.5DDL语法

主要差异:

1.MaxCompute不支持主键自增和PRIMARY KEY

2.指定默认值default]不支持使用函数

3.decimal指定默认值不支持-1

语法

MaxCompute

REDSHIFT

CREATE TABLE—PRIMARY KEY

N

Y

CREATE TABLE—NOT NULL

Y

Y

CREATE TABLE—CLUSTER BY

Y

N

CREATE TABLE—EXTERNAL TABLE

Y(OSS, OTS, TDDL)

N

CREATE TABLE—TEMPORARY TABLE

N

Y

table_attributes

N(Mc内部表不需要添加属性)

Y

CREATE TABLE—AS

Y

Y

create materialized view

Y

Y

2.1.6DML语法差异

语法

MaxCompute

REDSHIFT

CTE

Y

Y

SELECT—into

N

Y

SELECT—recursive CTE

N

Y

SELECT—GROUP BY ROLL UP

Y

N

SELECT—GROUPING SET

Y

Y

SELECT—IMPLICT JOIN

Y

Y

SEMI JOIN

Y

N

SELEC TRANSFROM

Y

N

SELECT—corelated subquery

Y

Y

LATERAL VIEW

Y

Y

SET OPERATOR—UNION (disintct)

Y

Y

SET OPERATOR—INTERSECT

Y

Y

SET OPERATOR—MINUS/EXCEPT

Y

Y

INSERT INTO ... VALUES

Y

Y

INSERT INTO (ColumnList)

Y

Y

UPDATE … WHERE

Y(事务表支持)

Y

DELETE … WHERE

Y(事务表支持)

Y

ANALYTIC—reusable WINDOWING CLUSUE

Y

Y

ANALYTIC—CURRENT ROW

Y

Y

ANALYTIC—UNBOUNDED

Y

Y

ANALYTIC—RANGE …

Y

Y

WHILE DO

N

Y

VIEW WITH PARAMETERS

Y

N

select * into

N

Y

2.1.7内建函数对比

其他未列出的redshift函数不支持。

函数类型

MaxCompute

POSTGRESQL

在MaxCompute SQL中是否支持分区剪裁

日期函数

ADD_MES

CONVERT_TIMEZONE

DATE_CMP_TIMESTAMP

DATE_CMP_TIMESTAMPTZ

DATE_PART_YEAR

DATE_CMP

INTERVAL_CMP

+

SYSDATE

TIMEOFDAY

TIMESTAMP_CMP

TIMESTAMP_CMP_DATE

TIMESTAMP_CMP_TIMESTAMPTZ

TIMESTAMPTZ_CMP

TIMESTAMPTZ_CMP_DATE

TIMESTAMPTZ_CMP_TIMESTAMP

to_timestamp

TIMEZONE

DATEDIFF

DATEDIFF

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

DATE_ADD

DATEADD

  • MaxCompute模式下:不支持(建议使用DATEADD)。
  • Hive模式下:支持。

DATEPART

date_part

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

DATETRUNC

date_trunc

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

FROM_UNIXTIME

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

GETDATE

CURRENT_DATE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

ISDATE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

LASTDAY

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

TO_DATE

TO_DATE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

TO_CHAR

to_char

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

UNIX_TIMESTAMP

extract

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

WEEKDAY

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

WEEKOFYEAR

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

YEAR

extract

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

QUARTER

EXTRACT

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

MONTH

EXTRACT

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

DAY

EXTRACT

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

DAYOFMONTH

  • MaxCompute模式下:不支持。
  • Hive模式下:支持。

HOUR

EXTRACT

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

MINUTE

EXTRACT

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

ADD_MONTHS

运算符+

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

LAST_DAY

LAST_DAY

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

NEXT_DAY

NEXT_DAY

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

MONTHS_BETWEEN

MONTHS_BETWEEN

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

数学函数

exp

ATAN2

DEXP

DLOG1

DLOG10

ABS

ABS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ACOS

ACOS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ASIN

ASIN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ATAN

ATAN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CEIL

CEIL

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CONV

convert

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COS

COS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COSH

ACOS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COT

COT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

EXP

EXP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

FLOOR

FLOOR

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LN

LN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LOG

LOG

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

POW

power

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

RAND

random

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ROUND

ROUND

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SIN

SIN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SINH

asin

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SQRT

SQRT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TAN

TAN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TANH

atan

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TRUNC

TRUNC

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LOG2

LOG

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LOG10

LOG

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

BIN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

HEX

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

UNHEX

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

RADIANS

RADIANS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

DEGREES

DEGREES

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SIGN

SIGN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

E

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

PI

PI

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

FACTORIAL

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CBRT

CBRT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SHIFTLEFT

<<

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

SHIFTRIGHT

>>

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

SHIFTRIGHTUNSIGNED

>>>

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

窗口函数

CUME_DIST

FIRST_VALUE/LAST_VALUE

LISTAGG

NTH_VALUE

PERCENTILE_CONT

PERCENTILE_DISC

RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )

STDDEV_SAMP

VAR_SAMP | VARIANCE | VAR_POP

PERCENT_RANK

DENSE_RANK

DENSE_RANK

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

RANK

RANK

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LAG

LAG

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LEAD

LEAD

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

PERCENT_RANK

PERCENT_RANK

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ROW_NUMBER

ROW_NUMBER

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CLUSTER_SAMPLE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

NTILE

NTILE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

聚合函数

PERCENTILE_APPROX

APPROXIMATE PERCENTILE_DISC

LISTAGG

PERCENTILE_CONT

ANY_VALUE

ANY_VALUE

COUNT

COUNT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

AVG

AVG

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MAX

MAX

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MIN

MIN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MEDIAN

PERCENTILE_disc

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

STDDEV

STDDEV

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

STDDEV_SAMP

STDDEV_SAMP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SUM

SUM

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

WM_CONCAT

string_agg

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COLLECT_LIST

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COLLECT_SET

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

VARIANCE/VAR_POP

VARIANCE/VAR_POP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

VAR_SAMP

VAR_SAMP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COVAR_POP

COVAR_POP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COVAR_SAMP

COVAR_SAMP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

PERCENTILE

PERCENTILE_disc

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

字符串函数

||

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

BPCHARCMP

BTRIM

CHAR_LENGTH

CHARACTER_LENGTH

CHARINDEX

COLLATE

CRC32

DIFFERENCE

INITCAP

OCTETINDEX

OCTET_LENGTH

QUOTE_IDENT

QUOTE_LITERAL

POSITION

REPEAT

LEFT /RIGHT

STRPOS

STRTOL

CHAR_MATCHCOUNT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CHR

CHR

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CONCAT

CONCAT|array_concat

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

GET_JSON_OBJECT

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

INSTR

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

IS_ENCODING

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

KEYVALUE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LENGTH

LENGTH

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LENGTHB

LEN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MD5

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REGEXP_EXTRACT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REGEXP_INSTR

REGEXP_INSTR

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

REGEXP_REPLACE

REGEXP_REPLACE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REGEXP_SUBSTR

REGEXP_SUBSTR

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

REGEXP_COUNT

REGEXP_COUNT

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

SPLIT_PART

SPLIT_PART

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SUBSTR

SUBSTR

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SUBSTRING

SUBSTRING

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TOLOWER

LOWER

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TOUPPER

UPPER

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TRIM

TRIM

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LTRIM

LTRIM

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

RTRIM

RTRIM

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REVERSE

REVERSE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REPEAT

REPEAT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ASCII

ASCII

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CONCAT_WS

CONCAT_WS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LPAD

LPAD

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

RPAD

RPAD

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

REPLACE

REPLACE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SOUNDEX

SOUNDEX

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

SUBSTRING_INDEX

SUBSTRING_INDEX

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

TRANSLATE

TRANSLATE

  • MaxCompute模式下:不支持。
  • Hive模式下:不支持。

URL_DECODE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

URL_ENCODE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

CRC32

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

其他函数

CAST

CAST

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

COALESCE

COALESCE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

DECODE

DECODE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

GET_IDCARD_AGE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

GET_IDCARD_BIRTHDAY

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

GET_IDCARD_SEX

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

GREATEST

GREATEST

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ORDINAL

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

LEAST

LEAST

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MAX_PT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

UUID

uuid_generate_v1

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SAMPLE

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

IF

IF

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

CASE WHEN

CASE WHEN

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SPLIT

SPLIT

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

STR_TO_MAP

  • MaxCompute模式下:支持。
  • Hive模式下:不支持。

EXPLODE

split_to_array

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MAP

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MAP_KEYS

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

MAP_VALUES

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

NVL

NVL

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ARRAY

ARRAY

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SIZE

get_array_length

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

ARRAY_CONTAINS

@>

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

POSEXPLODE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

TRANS_ARRAY

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

INLINE

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

NAMED_STRUCT

  • MaxCompute模式下:支持。
  • Hive模式下:支持。

SUBARRAY

2.1.8 MaxCompute 产品特性

功能

MaxCompute 产品组件

特性介绍

数据存储

MaxCompute 表 (基于盘古

分布式存储)

MaxCompute 支持大规模计算存储,适用于

TB 以上规模的存 储及计算需求,最大可达 EB

级别。同一个 MaxCompute 项 目支持企业从

创业团队发展到独角兽的数据规模需求; 数据

分布式存储,多副本冗余,数据存储对外仅开放

表的 操作接口,不提供文件系统访问接口

MaxCompute 支持大规模计算存储,适用于

TB 以上规模的存 储及计算需求,最大可达 EB

级别。同一个 MaxCompute 项目支持企业从

创业团队发展到独角兽的数据规模需求;

数据分布式存储,多副本冗余,数据存储对外仅

开放表的操作接口,不提供文件系统访问接口;

自研数据存储结构,表数据列式存储,默认高度

压缩,后续将提供兼容 ORC的Ali-ORC存储格

式;

支持外表,将存储在OSS 对象存储、OTS表格

存储的数据映射为二维表;

支持Partition、Bucket 的分区、分桶存储;

更底层不是 HDFS,是阿里自研的盘古文件系

统,但可借助 HDFS 理解对应的表之下文件的

体系结构、任务并发机制使用时,存储与计算解

耦,不需要仅仅为了存储扩大不必要的计算资

源;

存储

Pangu

阿里自研分布式存储服务,类似 HDFS。

MaxCompute 对外目前只暴露表接口,不能直

接访问文件系统。

资源调度

Fuxi

阿里自研的资源调度系统,类似 Yarn

数据上传下载

Tunnel

Streaming Tunnel

不暴露文件系统,通过 Tunnel 进行批量数据上传下载

开发&诊断

Dataworks/Studio/Logview

配套的数据同步、作业开发、工作流编排调度、

作业运维及诊断工具。开源社区常见的

Sqoop、Kettle、Ozzie 等实现数据同步和调度

用户接口

CLT/SDK

统一的命令行工具和 JAVA/PYTHON SDK

SQL

MaxCompute SQL

TPC-DS 100%支持,同时语法高度兼容 Hive,

有Hive 背景,开发者直接上手,特别在大数据

规模下性能强大。

* 完全自主开发的 compiler,语言功能开发更

灵活,迭代快,语法语义检查更加灵活高效

* 基于代价的优化器,更智能,更强大,更适合

复杂的查询

* 基于LLVM 的代码生成,让执行过程更高效

* 支持复杂数据类型(array,map,struct)

* 支持Java、Python语言的UDF/UDAF/UDTF

* 语法:Values、CTE、SEMIJOIN、FROM倒

装、Subquery Operations 、 Set

Operations(UNION /INTERSECT /MINUS)、

SELECT TRANSFORM 、User Defined Type、

GROUPING SET(CUBE/rollup/GROUPING

SET)、脚本运行模式、参数化视图

* 支持外表(外部数据源+StorageHandler,支

持非结构化数据)

Spark

MaxCompute Spark

MaxCompute提供了Spark on MaxCompute

的解决方案,使 MaxCompute 提供兼容开源的

Spark 计算服务,让它在统一的计算资源和数据

集权限体系之上,提供 Spark 计算框架,支持用

户以熟悉的开发使用方式提交运行 Spark 作

业。

* 支持原生多版本 Spark 作业:

Spark1.x/Spark2.x作业都可运行;

* 开源系统的使用体验:Spark-submit 提交方

式,提供原生的 Spark WebUI供用户查看;

* 通过访问OSS、OTS、database 等外部数据

源,实现更复杂的 ETL 处理,支持对 OSS 非结

构化进行处理;

* 使用 Spark 面向 MaxCompute 内外部数据

开展机器学习, 扩展应用场景

机器学习

PAI

MaxCompute 内建支持的上百种机器学习算

法,目前 MaxCompute 的机器学习能力由 PAI

产品进行统一提供服务,同时 PAI提供了深度学

习框架、Notebook 开发环境、GPU计算资源、

模型在线部署的弹性预测服务。MaxCompute

的数据对PAI产品无缝集成。

数据接入

目前支撑通过 DTS或者 DataWorks数据集成功能

数据集成是稳定高效、弹性伸缩的数据同步平台,丰富的异构数据源之间高速稳定的数据移动及同步能力。支持实时任务和批任务写入MaxCompute

整体

不是孤立的功能,完整的企业

服务

不需要多组件集成、调优、定制,开箱即用

3、RedShift到MaxCompute迁移工具介绍

从数据库表导入到 Amazon S3

卸载数据 - Amazon Redshift

在线迁移上云服务

AWS S3 迁移教程 - 在线迁移服务 - 阿里云

将数据从OSS迁移至同区域的MaxCompute项目load命令

LOAD - MaxCompute - 阿里云

语法校验工具二选一

MaxCompute studio

认识MaxCompute Studio - MaxCompute - 阿里云

DataWorks sql节点

创建ODPS SQL节点 - DataWorks - 阿里云

4、迁移整体方案

数据库迁移主要包含以下内容

迁移实施计划:

序号

项目

预估时间

1

调研评估

1~2周

2

方案设计

1~2周

3

资源规划

1周

4

改造与测试验证

5~7周,需要根据复杂度评估

5

生成割接

1~2周

5、迁移详细方案

5.1. 现状分析及需求分析

5.2. 迁移方案设计

用户根据自身现有 RedShift数据

以上是关于RedShift到MaxCompute迁移实践指导的主要内容,如果未能解决你的问题,请参考以下文章

JSON数据从MongoDB迁移到MaxCompute最佳实践

JSON数据从MongoDB迁移到MaxCompute最佳实践

MMA安装及使用优化

MMA安装及使用优化

MaxCompute_2_MaxCompute数据迁移文档

使用MaxCompute LOAD命令批量导入OSS数据最佳实践—STS方式LOAD开启KMS加密OSS数据