日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RedShift到MaxCompute迁移实践指导

發(fā)布時(shí)間:2024/8/23 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RedShift到MaxCompute迁移实践指导 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介:?本文主要介紹Amazon Redshift如何遷移到MaxCompute,主要從語(yǔ)法對(duì)比和數(shù)據(jù)遷移兩方面介紹,由于Amazon Redshift和MaxCompute存在語(yǔ)法差異,這篇文章講解了一下語(yǔ)法差異

1.概要

本文檔詳細(xì)介紹了Redshift和MaxCompute之間SQL語(yǔ)法的異同。這篇文檔有助于加快sql任務(wù)遷移到MaxCompute。由于Redshift和MaxCompute之間語(yǔ)法存在很多差異,因此我們需要修改Redshift上編寫的腳本,然后才能在MaxCompute中使用,因?yàn)榉?wù)之間的SQL方言不同。

2.遷移前RedShift于MaxCompute的各項(xiàng)對(duì)比差異

2.1.1數(shù)據(jù)類型對(duì)比及類型轉(zhuǎn)化

類別

MaxCompute

建議轉(zhuǎn)化成MaxCompute類型

Redshift

數(shù)值類型

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 數(shù)據(jù)類型

boolean

Y

Y

Y

復(fù)雜數(shù)據(jù)類型

ARRAY

Y

Y

N

MAP

Y

Y

N

STRUCT

Y

Y

N

HLLSketch

N

Y

MaxCompoute數(shù)據(jù)類型參考2.0數(shù)據(jù)類型版本 - MaxCompute - 阿里云

2.1.2語(yǔ)法對(duì)比

MaxCompute沒(méi)有schenma、group、庫(kù)、存儲(chǔ)過(guò)程的概念。只有project、表、分區(qū),MaxCompute建表時(shí)沒(méi)有自增序列 外鍵等,不支持指定編碼默認(rèn)utf-8,內(nèi)部表不支持指定存儲(chǔ)格式默認(rèn)Aliorc

主要區(qū)別

表結(jié)構(gòu)

不能修改分區(qū)列列名,只能修改分區(qū)列對(duì)應(yīng)的值。

支持增加列,但是不支持刪除列以及修改列的數(shù)據(jù)類

型。

SQL 常見問(wèn)題

INSERT 語(yǔ)法上最直觀的區(qū)別是:Insert into/overwrite 后面

有個(gè)關(guān)鍵字 Table。

數(shù)據(jù)插入表的字段映射不是根據(jù) Select 的別名做的,而

是根據(jù) Select 的字段的順序和表里的字段的順序

UPDATE/DELETE

只有事務(wù)表支持UPDATE/DELETE

join

Join 必須要用 on 設(shè)置關(guān)聯(lián)條件,不支持笛卡爾積

觸發(fā)器

不支持觸發(fā)器、

創(chuàng)建外部函數(shù)

maxCompute沒(méi)有外部函數(shù)

精度

DOUBLE 類型存在精度問(wèn)題。 不建議在關(guān)聯(lián)時(shí)候進(jìn)行直接等號(hào)關(guān)聯(lián)兩

個(gè) DOUBLE字段,建議把兩個(gè)數(shù)做減

法,如果差距小于一個(gè)預(yù)設(shè)的值就認(rèn)為

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

0.000000001。

目前產(chǎn)品上已經(jīng)支持高精度的類型

DECIMAL。

日期

MaxCompute主要的日期類型是datetime(格式y(tǒng)yyy-mm-dd hh:mi:ss) timestamp date,datetime支持的內(nèi)建函數(shù)更加豐富,建議日期轉(zhuǎn)成datetime做運(yùn)算,日期函數(shù)鏈接

存儲(chǔ)過(guò)程

使用MaxCompute的pyodps修改

物化視圖

要更新物化化視圖中的數(shù)據(jù),MaxCompute只能手動(dòng)更新,不支持自動(dòng)更新

redshift 支持在select語(yǔ)句中引用別名如

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復(fù)合表達(dá)式

MaxCompute

REDAHIFT

+、-

Y

Y

^、|/、||/

Y

Y

*、/、%

Y

Y

@

N

Y

&、|、

Y

Y

||

Y

Y

#、~、<<、>>

使用shift函數(shù)替換

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 運(yùn)算符

N

Y

SIMILAR TO

N

Y

IN

Y

Y

正則 ~

Rlike

Y

~~

like

Y

2.1.5DDL語(yǔ)法

主要差異:

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

2.指定默認(rèn)值default]不支持使用函數(shù)

3.decimal指定默認(rèn)值不支持-1

語(yǔ)法

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內(nèi)部表不需要添加屬性)

Y

CREATE TABLE—AS

Y

Y

create materialized view

Y

Y

2.1.6DML語(yǔ)法差異

語(yǔ)法

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(事務(wù)表支持)

Y

DELETE … WHERE

Y(事務(wù)表支持)

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內(nèi)建函數(shù)對(duì)比

其他未列出的redshift函數(shù)不支持。

函數(shù)類型

MaxCompute

POSTGRESQL

在MaxCompute SQL中是否支持分區(qū)剪裁

日期函數(shù)

無(wú)

ADD_MES

無(wú)

CONVERT_TIMEZONE

無(wú)

DATE_CMP_TIMESTAMP

無(wú)

DATE_CMP_TIMESTAMPTZ

無(wú)

DATE_PART_YEAR

無(wú)

DATE_CMP

無(wú)

INTERVAL_CMP

無(wú)

+

無(wú)

SYSDATE

無(wú)

TIMEOFDAY

無(wú)

TIMESTAMP_CMP

無(wú)

TIMESTAMP_CMP_DATE

無(wú)

TIMESTAMP_CMP_TIMESTAMPTZ

無(wú)

TIMESTAMPTZ_CMP

無(wú)

TIMESTAMPTZ_CMP_DATE

無(wú)

TIMESTAMPTZ_CMP_TIMESTAMP

無(wú)

to_timestamp

無(wú)

TIMEZONE

DATEDIFF

DATEDIFF

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

DATE_ADD

DATEADD

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

DATEPART

date_part

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

DATETRUNC

date_trunc

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

FROM_UNIXTIME

無(wú)

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

GETDATE

CURRENT_DATE

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

ISDATE

無(wú)

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

LASTDAY

無(wú)

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

TO_DATE

TO_DATE

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

TO_CHAR

to_char

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

UNIX_TIMESTAMP

extract

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

WEEKDAY

無(wú)

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

WEEKOFYEAR

無(wú)

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

YEAR

extract

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

QUARTER

EXTRACT

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

MONTH

EXTRACT

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

DAY

EXTRACT

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

DAYOFMONTH

無(wú)

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

HOUR

EXTRACT

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

MINUTE

EXTRACT

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

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

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

ADD_MONTHS

運(yùn)算符+

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

LAST_DAY

LAST_DAY

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

NEXT_DAY

NEXT_DAY

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

MONTHS_BETWEEN

MONTHS_BETWEEN

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

數(shù)學(xué)函數(shù)

無(wú)

exp

無(wú)

ATAN2

無(wú)

DEXP

無(wú)

DLOG1

無(wú)

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

無(wú)

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

HEX

無(wú)

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

UNHEX

無(wú)

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

RADIANS

RADIANS

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

DEGREES

DEGREES

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

SIGN

SIGN

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

E

無(wú)

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

PI

PI

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

FACTORIAL

無(wú)

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

CBRT

CBRT

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

SHIFTLEFT

<<

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

SHIFTRIGHT

>>

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

SHIFTRIGHTUNSIGNED

>>>

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

窗口函數(shù)

無(wú)

CUME_DIST

無(wú)

FIRST_VALUE/LAST_VALUE

無(wú)

LISTAGG

無(wú)

NTH_VALUE

無(wú)

PERCENTILE_CONT

無(wú)

PERCENTILE_DISC

無(wú)

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

無(wú)

STDDEV_SAMP

無(wú)

VAR_SAMP | VARIANCE | VAR_POP

無(wú)

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

無(wú)

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

NTILE

NTILE

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

聚合函數(shù)

PERCENTILE_APPROX

APPROXIMATE PERCENTILE_DISC

無(wú)

LISTAGG

無(wú)

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

無(wú)

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

COLLECT_SET

無(wú)

  • 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模式下:支持。

字符串函數(shù)

無(wú)

||

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

無(wú)

BPCHARCMP

無(wú)

BTRIM

無(wú)

CHAR_LENGTH

無(wú)

CHARACTER_LENGTH

無(wú)

CHARINDEX

無(wú)

COLLATE

無(wú)

CRC32

無(wú)

DIFFERENCE

無(wú)

INITCAP

無(wú)

OCTETINDEX

無(wú)

OCTET_LENGTH

無(wú)

QUOTE_IDENT

無(wú)

QUOTE_LITERAL

無(wú)

POSITION

無(wú)

REPEAT

無(wú)

LEFT /RIGHT

無(wú)

STRPOS

無(wú)

STRTOL

CHAR_MATCHCOUNT

無(wú)

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

CHR

CHR

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

CONCAT

CONCAT|array_concat

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

GET_JSON_OBJECT

無(wú)

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

INSTR

無(wú)

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

IS_ENCODING

無(wú)

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

KEYVALUE

無(wú)

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

LENGTH

LENGTH

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

LENGTHB

LEN

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

MD5

無(wú)

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

REGEXP_EXTRACT

無(wú)

  • 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

無(wú)

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

URL_ENCODE

無(wú)

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

CRC32

無(wú)

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

其他函數(shù)

CAST

CAST

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

COALESCE

COALESCE

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

DECODE

DECODE

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

GET_IDCARD_AGE

無(wú)

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

GET_IDCARD_BIRTHDAY

無(wú)

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

GET_IDCARD_SEX

無(wú)

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

GREATEST

GREATEST

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

ORDINAL

無(wú)

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

LEAST

LEAST

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

MAX_PT

無(wú)

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

UUID

uuid_generate_v1

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

SAMPLE

無(wú)

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

IF

IF

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

CASE WHEN

CASE WHEN

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

SPLIT

SPLIT

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

STR_TO_MAP

無(wú)

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

EXPLODE

split_to_array

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

MAP

無(wú)

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

MAP_KEYS

無(wú)

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

MAP_VALUES

無(wú)

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

NVL

NVL

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

ARRAY

ARRAY

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

SIZE

get_array_length

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

ARRAY_CONTAINS

@>

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

POSEXPLODE

無(wú)

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

TRANS_ARRAY

無(wú)

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

INLINE

無(wú)

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

NAMED_STRUCT

無(wú)

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

無(wú)

SUBARRAY

2.1.8 MaxCompute 產(chǎn)品特性

功能

MaxCompute 產(chǎn)品組件

特性介紹

數(shù)據(jù)存儲(chǔ)

MaxCompute 表 (基于盤古

分布式存儲(chǔ))

MaxCompute 支持大規(guī)模計(jì)算存儲(chǔ),適用于

TB 以上規(guī)模的存 儲(chǔ)及計(jì)算需求,最大可達(dá) EB

級(jí)別。同一個(gè) MaxCompute 項(xiàng) 目支持企業(yè)從

創(chuàng)業(yè)團(tuán)隊(duì)發(fā)展到獨(dú)角獸的數(shù)據(jù)規(guī)模需求; 數(shù)據(jù)

分布式存儲(chǔ),多副本冗余,數(shù)據(jù)存儲(chǔ)對(duì)外僅開放

表的 操作接口,不提供文件系統(tǒng)訪問(wèn)接口

MaxCompute 支持大規(guī)模計(jì)算存儲(chǔ),適用于

TB 以上規(guī)模的存 儲(chǔ)及計(jì)算需求,最大可達(dá) EB

級(jí)別。同一個(gè) MaxCompute 項(xiàng)目支持企業(yè)從

創(chuàng)業(yè)團(tuán)隊(duì)發(fā)展到獨(dú)角獸的數(shù)據(jù)規(guī)模需求;

數(shù)據(jù)分布式存儲(chǔ),多副本冗余,數(shù)據(jù)存儲(chǔ)對(duì)外僅

開放表的操作接口,不提供文件系統(tǒng)訪問(wèn)接口;

自研數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),表數(shù)據(jù)列式存儲(chǔ),默認(rèn)高度

壓縮,后續(xù)將提供兼容 ORC的Ali-ORC存儲(chǔ)格

式;

支持外表,將存儲(chǔ)在OSS 對(duì)象存儲(chǔ)、OTS表格

存儲(chǔ)的數(shù)據(jù)映射為二維表;

支持Partition、Bucket 的分區(qū)、分桶存儲(chǔ);

更底層不是 HDFS,是阿里自研的盤古文件系

統(tǒng),但可借助 HDFS 理解對(duì)應(yīng)的表之下文件的

體系結(jié)構(gòu)、任務(wù)并發(fā)機(jī)制使用時(shí),存儲(chǔ)與計(jì)算解

耦,不需要僅僅為了存儲(chǔ)擴(kuò)大不必要的計(jì)算資

源;

存儲(chǔ)

Pangu

阿里自研分布式存儲(chǔ)服務(wù),類似 HDFS。

MaxCompute 對(duì)外目前只暴露表接口,不能直

接訪問(wèn)文件系統(tǒng)。

資源調(diào)度

Fuxi

阿里自研的資源調(diào)度系統(tǒng),類似 Yarn

數(shù)據(jù)上傳下載

Tunnel

Streaming Tunnel

不暴露文件系統(tǒng),通過(guò) Tunnel 進(jìn)行批量數(shù)據(jù)上傳下載

開發(fā)&診斷

Dataworks/Studio/Logview

配套的數(shù)據(jù)同步、作業(yè)開發(fā)、工作流編排調(diào)度、

作業(yè)運(yùn)維及診斷工具。開源社區(qū)常見的

Sqoop、Kettle、Ozzie 等實(shí)現(xiàn)數(shù)據(jù)同步和調(diào)度

用戶接口

CLT/SDK

統(tǒng)一的命令行工具和 JAVA/PYTHON SDK

SQL

MaxCompute SQL

TPC-DS 100%支持,同時(shí)語(yǔ)法高度兼容 Hive,

有Hive 背景,開發(fā)者直接上手,特別在大數(shù)據(jù)

規(guī)模下性能強(qiáng)大。

* 完全自主開發(fā)的 compiler,語(yǔ)言功能開發(fā)更

靈活,迭代快,語(yǔ)法語(yǔ)義檢查更加靈活高效

* 基于代價(jià)的優(yōu)化器,更智能,更強(qiáng)大,更適合

復(fù)雜的查詢

* 基于LLVM 的代碼生成,讓執(zhí)行過(guò)程更高效

* 支持復(fù)雜數(shù)據(jù)類型(array,map,struct)

* 支持Java、Python語(yǔ)言的UDF/UDAF/UDTF

* 語(yǔ)法:Values、CTE、SEMIJOIN、FROM倒

裝、Subquery Operations 、 Set

Operations(UNION /INTERSECT /MINUS)、

SELECT TRANSFORM 、User Defined Type、

GROUPING SET(CUBE/rollup/GROUPING

SET)、腳本運(yùn)行模式、參數(shù)化視圖

* 支持外表(外部數(shù)據(jù)源+StorageHandler,支

持非結(jié)構(gòu)化數(shù)據(jù))

Spark

MaxCompute Spark

MaxCompute提供了Spark on MaxCompute

的解決方案,使 MaxCompute 提供兼容開源的

Spark 計(jì)算服務(wù),讓它在統(tǒng)一的計(jì)算資源和數(shù)據(jù)

集權(quán)限體系之上,提供 Spark 計(jì)算框架,支持用

戶以熟悉的開發(fā)使用方式提交運(yùn)行 Spark 作

業(yè)。

* 支持原生多版本 Spark 作業(yè):

Spark1.x/Spark2.x作業(yè)都可運(yùn)行;

* 開源系統(tǒng)的使用體驗(yàn):Spark-submit 提交方

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

* 通過(guò)訪問(wèn)OSS、OTS、database 等外部數(shù)據(jù)

源,實(shí)現(xiàn)更復(fù)雜的 ETL 處理,支持對(duì) OSS 非結(jié)

構(gòu)化進(jìn)行處理;

* 使用 Spark 面向 MaxCompute 內(nèi)外部數(shù)據(jù)

開展機(jī)器學(xué)習(xí), 擴(kuò)展應(yīng)用場(chǎng)景

機(jī)器學(xué)習(xí)

PAI

MaxCompute 內(nèi)建支持的上百種機(jī)器學(xué)習(xí)算

法,目前 MaxCompute 的機(jī)器學(xué)習(xí)能力由 PAI

產(chǎn)品進(jìn)行統(tǒng)一提供服務(wù),同時(shí) PAI提供了深度學(xué)

習(xí)框架、Notebook 開發(fā)環(huán)境、GPU計(jì)算資源、

模型在線部署的彈性預(yù)測(cè)服務(wù)。MaxCompute

的數(shù)據(jù)對(duì)PAI產(chǎn)品無(wú)縫集成。

數(shù)據(jù)接入

目前支撐通過(guò) DTS或者 DataWorks數(shù)據(jù)集成功能

數(shù)據(jù)集成是穩(wěn)定高效、彈性伸縮的數(shù)據(jù)同步平臺(tái),豐富的異構(gòu)數(shù)據(jù)源之間高速穩(wěn)定的數(shù)據(jù)移動(dòng)及同步能力。支持實(shí)時(shí)任務(wù)和批任務(wù)寫入MaxCompute

整體

不是孤立的功能,完整的企業(yè)

服務(wù)

不需要多組件集成、調(diào)優(yōu)、定制,開箱即用

3、RedShift到MaxCompute遷移工具介紹

從數(shù)據(jù)庫(kù)表導(dǎo)入到 Amazon S3

卸載數(shù)據(jù) - Amazon Redshift

在線遷移上云服務(wù)

AWS S3 遷移教程 - 在線遷移服務(wù) - 阿里云

將數(shù)據(jù)從OSS遷移至同區(qū)域的MaxCompute項(xiàng)目load命令

LOAD - MaxCompute - 阿里云

語(yǔ)法校驗(yàn)工具二選一

MaxCompute studio

認(rèn)識(shí)MaxCompute Studio - MaxCompute - 阿里云

DataWorks sql節(jié)點(diǎn)

創(chuàng)建ODPS SQL節(jié)點(diǎn) - DataWorks - 阿里云

4、遷移整體方案

數(shù)據(jù)庫(kù)遷移主要包含以下內(nèi)容

遷移實(shí)施計(jì)劃:

序號(hào)

項(xiàng)目

預(yù)估時(shí)間

1

調(diào)研評(píng)估

1~2周

2

方案設(shè)計(jì)

1~2周

3

資源規(guī)劃

1周

4

改造與測(cè)試驗(yàn)證

5~7周,需要根據(jù)復(fù)雜度評(píng)估

5

生成割接

1~2周

5、遷移詳細(xì)方案

5.1. 現(xiàn)狀分析及需求分析

5.2. 遷移方案設(shè)計(jì)

用戶根據(jù)自身現(xiàn)有 RedShift數(shù)據(jù)量、QPS、TPS 等性能指標(biāo)、高可用需求和未來(lái)業(yè)務(wù)增長(zhǎng)需求,制定合理化的遷移方案。

5.3. 資源規(guī)劃

用戶需要準(zhǔn)備好 MaxCompute 的相關(guān)環(huán)境,同時(shí)獲取到對(duì)應(yīng)需要使用的遷移工具。遷移工具的相關(guān)內(nèi)容請(qǐng)參考《 RedShift到MaxCompute遷移工具介紹 》 章節(jié)。

5.4. 改造及測(cè)試驗(yàn)證

5.4.1. 改造

遷移工具可以利用MaxCompute studio(或者DataWorks新建sql節(jié)點(diǎn))客戶端語(yǔ)法校驗(yàn),新建一個(gè)sql文件,如圖不支持的語(yǔ)法會(huì)報(bào)紅

MaxCompute Studio安裝文檔認(rèn)識(shí)MaxCompute Studio - MaxCompute - 阿里云

5.4.1.1. 建表

在RedShift中獲取表列表和表字段定義,按照Maxcompute支持的字段值進(jìn)行轉(zhuǎn)換,對(duì)于有update和delete語(yǔ)句的表必須建成Transactional表

類型轉(zhuǎn)化參考《數(shù)據(jù)類型對(duì)比及類型轉(zhuǎn)化》章節(jié)

建表語(yǔ)法

--創(chuàng)建新表。

create [external] table [if not exists]

[( ?[not null] [default ] [comment ], ...)]

[comment ]

[partitioned by ( ?[comment ], ...)]

--用于創(chuàng)建聚簇表時(shí)設(shè)置表的Shuffle和Sort屬性。

[clustered by | range clustered by ( [, , ...]) [sorted by ( [asc | desc] [, ?[asc | desc] ...])] into ?buckets]

--僅限外部表。

[stored by StorageHandler]

--僅限外部表。

[with serdeproperties (options)]

--僅限外部表。

[location ]

--指定表為Transactional表,后續(xù)可以對(duì)該表執(zhí)行更新或刪除表數(shù)據(jù)操作,但是Transactional表有部分使用限制,請(qǐng)根據(jù)需求創(chuàng)建。

[tblproperties("transactional"="true")] ?

[lifecycle ];

--基于已存在的表創(chuàng)建新表并復(fù)制數(shù)據(jù),但不復(fù)制分區(qū)屬性。

create table [if not exists] ?[lifecycle ] as ;

--基于已存在的表創(chuàng)建具備相同結(jié)構(gòu)的新表但不復(fù)制數(shù)據(jù)。

create table [if not exists] ?like ?[lifecycle ];

說(shuō)明:

? 表名與列名均對(duì)大小寫不敏感。

? 在創(chuàng)建表時(shí),如果不指定 if not exists選項(xiàng)而存在同名表,則返回報(bào)錯(cuò);若指定此選項(xiàng),則無(wú)論是否存在同名表,即使原表結(jié)構(gòu)與要?jiǎng)?chuàng)建的目標(biāo)表結(jié)構(gòu)不一致, 均返回成功。已存在的同名表的元信息不會(huì)被改動(dòng)。

? 表名、列名中不能有特殊字符,只能用英文的 a-z、A-Z 及數(shù)字和下劃線(_),

且以字母開頭,名稱的長(zhǎng)度不超過(guò) 128 字節(jié)。

?tblproperties("transactional"="true"):可選(有update和delete語(yǔ)句必須設(shè)置)。設(shè)置表為Transactional表。后續(xù)可以對(duì)Transactional表執(zhí)行update、delete操作實(shí)現(xiàn)行級(jí)更新或刪除數(shù)據(jù)。更多信息,請(qǐng)參見更新或刪除數(shù)據(jù)(UPDATE | DELETE)。

? Partitioned by 指定表的分區(qū)字段,目前僅支持 string類型。分區(qū)值不可以有雙字節(jié)字符(如中文),必須是以英文字母 a-z、A-Z開始后可跟字母數(shù)字,名稱的長(zhǎng)度不超過(guò) 128 字節(jié)。允許的字符包括:空格、冒號(hào)(:)、下劃線(_)、美元符$)、井號(hào)(#)、點(diǎn)(.)、感嘆號(hào)(!)和@,出現(xiàn)其他字符行為未定義, 例如:“\t”、“\n”、“/”等。當(dāng)利用分區(qū)字段對(duì)表進(jìn)行分區(qū)時(shí),新增分區(qū)、更新分區(qū)內(nèi)數(shù)據(jù)和讀取分區(qū)數(shù)據(jù)均不需要做全表掃描,可以提高處理效率。

? 注釋內(nèi)容是長(zhǎng)度不超過(guò) 1024 字節(jié)的有效字符串。

? lifecycle 指明此表的生命周期,單位:天。create table like 語(yǔ)句不會(huì)復(fù)制源表

的生命周期屬性。

? 理論上源表分區(qū)最多只能 6 級(jí),但考慮極限存儲(chǔ)的分區(qū)膨脹方式,請(qǐng)盡可能少用

分區(qū)。

? 一個(gè)表允許的分區(qū)個(gè)數(shù)支持按照具體的 project 配置,默認(rèn) 60000 個(gè)。

? 在create table ... as select ...語(yǔ)句中,如果在 select 子句中使用常量作為列的

值,建議指定列的名字。

? 如果希望源表和目標(biāo)表具有相同的表結(jié)構(gòu),可以嘗試使用 create table ... like 操

作。

5.4.1.1.1建表具體案例

  • 列名雙引號(hào)要去掉
  • 形如BIGINT primary key identity(1,1)主鍵?增列要去掉,只保留默認(rèn)值default 1
  • numeric數(shù)據(jù)類型要轉(zhuǎn)為decimal
  • 形如::character varying,'1900/01/01'::text這種,兩個(gè)冒號(hào)及后?內(nèi)容要?jiǎng)h除,MC不?持
  • 形如"n_car_no" numeric DEFAULT -1::numeric,MC不?持默認(rèn)值為-1,需要去掉
  • 形如"ts_req_time" timestamp without time zone DEFAULT to_timestamp('1900/00/00 00:00:00'::text, 'YYYY-MM-DD HH24:MI:SS.MS'::text),需要去掉timezone,并改為timestamp DEFAULT timestamp "1900-01-01 00:00:00"
  • 形如INTERLEAVED SORTKEY(vc_trans_id),MC不?持交錯(cuò)排序列功能,可以考慮替換為 zorder。
  • MC不?持時(shí)區(qū)time zone,有關(guān)time zone的需要?jiǎng)h除。
  • 物化視圖修改去掉 AUTO REFRESH YES,同時(shí)MaxCompute物化視圖不支持窗口函數(shù)
  • 5.4.1.2. SQL 遷移

    SQL 遷移實(shí)際上就是根據(jù) Oracle 和MaxCompute 兩者間 SQL 的差異進(jìn)行轉(zhuǎn)化,將RedShift中的 SQL 轉(zhuǎn)化成 MaxCompute 中的 SQL,從而使 SQL 可用。具體的 SQL間差異請(qǐng)參考《遷移前RedShift于MaxCompute的各項(xiàng)對(duì)比差異》 章節(jié)中的相關(guān)內(nèi)容

    5.4.1.2.1 SQL 遷移 具體案例

    DML語(yǔ)句

    1.執(zhí)行updae或者delet的語(yǔ)句需要?jiǎng)?chuàng)建事務(wù)表("transactional"="true")

    2. 形如COMMENT ON column atzc_dev_dw.t_com_fact_auto_pay_gw_trans_pay_gw."n_trans_amt" is 'dml';給列添加 注釋,需要改為MC?持的語(yǔ)法alter table ?change column ?comment '';

    DQL語(yǔ)句

    問(wèn)題現(xiàn)象

    遷移指導(dǎo)

    cte(with)語(yǔ)句

    with語(yǔ)句寫在insert into下面語(yǔ)法解析報(bào)錯(cuò)

    with語(yǔ)句移動(dòng)到insert into上面


    with a as ( with b as () ) 嵌套使用

    MC不支持嵌套的with 需要將with拿出來(lái)

    with a as () , b as ()

    類型轉(zhuǎn)化

    redshift都使用的是 ::

    如:a::date


    ?

    使用cast(a as date)

    正常匹配

    redshift使用的是?~

    使用rlike替換

    group by

    redshift group by中的整型常量會(huì)被當(dāng)做select的列序號(hào)處理

    如:group by 1,2.

    SQL語(yǔ)句設(shè)置了屬性,即set odps.sql.groupby.position.alias=true;一起提交

    類型轉(zhuǎn)化 ::

    redshift ::代表類型轉(zhuǎn)化

    使用cast函數(shù)轉(zhuǎn)化

    數(shù)據(jù)類型

    varchar

    需要指定位數(shù)varchar(100)或者直接指定string

    decimal 類型常量1

    改成1bd

    smallint 常量

    1s

    join

    join的不等值

    mc不支持普通join不等值表達(dá)式,可以使用mapjoin

    內(nèi)建函數(shù)

    RedShift

    MaxCompute

    RS舉例

    MC舉例

    多行注釋/* xxxxx */

    框選所需注釋內(nèi)容,ctrl+/,進(jìn)行注釋

    DATEADD( datepart, interval, {date|time|timetz|timestamp} )

    datetime dateadd(date|datetime|timestamp <date>, bigint <delta>, string <datepart>)

    dateadd(day,1,f.dt_date)

    dateadd(f.dt_date,1,'dd')

    DATEDIFF ( datepart, {date|time|timetz|timestamp}, {date|time|time|timestamp} )

    bigint datediff(date|datetime|timestamp <date1>, date|datetime|timestamp <date2>, string <datepart>)

    datediff(min,a,b)

    datediff(b,a,'mi')

    current_date-n/current_date+n

    dateadd(GETDATE(),n)

    dateadd可以加減時(shí)間,getdate可以獲取當(dāng)前時(shí)間

    current_date-1

    dateadd(GETDATE(),1,'dd')

    類型轉(zhuǎn)化 ::

    cast轉(zhuǎn)

    a::date

    cast(a as date)

    正則 ~

    rlike

    日期加減current_date+30

    date_add(current_date(),30)

    CEILING 或 CEIL 函數(shù)用于將數(shù)字向上舍入到下一個(gè)整數(shù)。

    ceil

    select ceiling(commission)

    select ceil(1.1);

    TO_TIMETAMP 將時(shí)間戳字符串轉(zhuǎn)換為時(shí)間標(biāo)記

    bigint unix_timestamp(datetime <date>)

    to_timestamp('1900/00/00 00:00:00'as string, 'YYYY-MM-DD HH24:MI:SS.MS'as string)

    unix_timestamp(cast ("1900-00-00 00:00:00" as datetime))

    dateadd按指定的時(shí)間間隔遞增日期、時(shí)間、時(shí)間或時(shí)間戳值

    datetime dateadd(date|datetime|timestamp <date>, bigint <delta>, string <datepart>)

    dateadd(month,-6,a.dt_end_date)

    dateadd(a.dt_end_date,-6,"mm")

    LISTAGG 聚合函數(shù)根據(jù) ORDER BY 表達(dá)式對(duì)該組的行進(jìn)行排序,然后將值串聯(lián)成一個(gè)字符串

    wm_concat(string <separator>, string <colname>)

    listagg(remark)

    wm_Concat(",",remark)

    CURRENT_DATE獲取當(dāng)前日期

    CURRENT_DATE()

    MaxCompute需要添加括號(hào)

    EXTRACT(week from $1)提取函數(shù)從 TIMESTAMP 值或表達(dá)式

    weekofyear()

    EXTRACT(weekday from $1) 和 extract(DOW from $1)

    weekday($1)

    DATEPART(WEEKDAY,T3.dt_report)

    WEEKDAY(cast(T3.dt_report as DATETIME))

    LEN 函數(shù)返回一個(gè)整數(shù),表示輸入字符串中的字符的數(shù)量

    bigint length(string <str>)

    len

    length

    LOWER 函數(shù)返回與輸入字符串具有相同數(shù)據(jù)類型的字符串

    tolower(string <source>)

    lower

    CONVERT ( TIMESTAMP, id_card_back_overdue)

    函數(shù)將值從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型

    轉(zhuǎn)為cast()

    CONVERT ( TIMESTAMP, id_card_back_overdue)

    cast(id_card_back_overdue as TIMESTAMP)

    sysdate返回當(dāng)前會(huì)話時(shí)區(qū)(默認(rèn)為 UTC)中的當(dāng)前日期和時(shí)間

    getdate()

    返回DATETIME ‘2017-11-11 00:00:00’

    charindex()

    返回指定子字符串在字符串中的位置

    INSTR()

    charindex('fish', 'dogfish')

    instr('dogfish','fish')

    left()這些函數(shù)返回指定數(shù)量的位于字符串最左側(cè)

    substr()

    right()這些函數(shù)返回指定數(shù)量的位于字符串最右側(cè)

    reverse(substr(reverse()))

    DATE_TRUNC 函數(shù)根據(jù)您指定的日期部分(如小時(shí)、周或月)截?cái)鄷r(shí)間戳表達(dá)式或文字

    date_trunc('month')

    datetrunc(,'month')

    json_extract_path_text

    函數(shù)返回鍵:Value對(duì)引用 JSON 字符串中的一系列路徑元素

    改為get_json_object寫法get_json_object(content,'$.DeviceID')

    根據(jù)key路徑獲取json字符串的value

    json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}','f4', 'f6')
    返回 ‘star’

    json_extract_array_element_text

    使用atzc_dev_dw.json_extract_array_element_text

    根據(jù)索引返回?cái)?shù)組元素

    json_extract_array_element_text('[111,112,113]', 2)
    返回 ‘113’

    POSITION返回指定子字符串在字符串中的位置

    改成:instr

    BTRIM?函數(shù)通過(guò)刪除前導(dǎo)空格和尾隨空格或刪除

    TRIM

    maxCompute只能刪除左右空格不能刪除指定位置空格,刪除指定位置需要自己寫udf實(shí)現(xiàn)

    date_part()從表達(dá)式中提取日期部分值

    datepart()

    mod()

    函數(shù)返回一個(gè)數(shù)字結(jié)果

    $1%$2

    ~~

    like

    date_part(w,time)

    weekofyear()

    4.4.1.2存儲(chǔ)過(guò)程遷移

    建議改成臨時(shí)表或者pyodps的方式

    5.4.2數(shù)據(jù)遷移

    序號(hào)

    描述

    將Amazon Redshift數(shù)據(jù)導(dǎo)出至Amazon S3數(shù)據(jù)湖(簡(jiǎn)稱S3)。

    通過(guò)對(duì)象存儲(chǔ)服務(wù)OSS的在線遷移上云服務(wù),將數(shù)據(jù)從S3遷移至OSS。

    將數(shù)據(jù)從OSS遷移至同區(qū)域的MaxCompute項(xiàng)目中,并校驗(yàn)數(shù)據(jù)完整性和正確性。

    數(shù)據(jù)遷移參考文檔:

    Amazon Redshift數(shù)據(jù)遷移至MaxCompute - MaxCompute - 阿里云

    5.4.3. 測(cè)試驗(yàn)證

    目前RedShift到MaxCompute 遷移的數(shù)據(jù)測(cè)試驗(yàn)證工作,還沒(méi)有工具可以支持,需要

    自行編寫腳本工具完成,常用校驗(yàn)方案有如下幾種:

    ? 表結(jié)構(gòu)校驗(yàn),從 RedShift和MaxCompute 分別導(dǎo)出數(shù)據(jù)表列及類型定義后計(jì)算

    md5 進(jìn)行校驗(yàn)

    ? 數(shù)據(jù)表行數(shù)比對(duì),執(zhí)行 SQL 語(yǔ)句分別在 RedShift和MaxCompute 統(tǒng)計(jì)相同表的

    數(shù)據(jù)行數(shù)進(jìn)行逐行比對(duì)

    ? 數(shù)據(jù)全量校驗(yàn),一般用于核心表且數(shù)據(jù)量較小的校驗(yàn)場(chǎng)景,導(dǎo)出全量數(shù)據(jù)計(jì)算

    md5 進(jìn)行校驗(yàn),或全量數(shù)據(jù)分段計(jì)算 md5 進(jìn)行校驗(yàn)

    ? 數(shù)據(jù)抽樣校驗(yàn),一般用于核心大表的數(shù)據(jù)校驗(yàn)場(chǎng)景,按一定抽樣規(guī)則從源和目標(biāo)

    抽取數(shù)據(jù)進(jìn)行校驗(yàn)。

    原文鏈接

    本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

    ?

    總結(jié)

    以上是生活随笔為你收集整理的RedShift到MaxCompute迁移实践指导的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩人妻无码精品久久久不卡 | 琪琪色综合网 | 国产a视频免费观看 | 久久4| 成人手机av | 免费福利在线视频 | 蜜桃9999| 日韩免费小视频 | 五月激情婷婷丁香 | 欧美精品一区二区三区在线 | 国产一区在线免费 | a级性生活视频 | 69xx免费视频 | 91在线网| 免费超碰在线 | 一级黄色在线播放 | 中文字字幕在线 | 欧美在线视频不卡 | 中文字幕观看av | 免费福利在线观看 | 欧美极品少妇xxxxⅹ免费视频 | 成人综合婷婷国产精品久久 | 牛牛精品一区 | 天堂在线观看视频 | 国产精品高潮呻吟久久久 | www.youjizz.com国产 | 免费日批网站 | 国产激情一区二区三区视频免樱桃 | 日本一二三视频 | caoporn免费在线 | www.玖玖玖 | 麻豆tv在线 | 岛国av一区 | 男人看的网站 | a天堂在线观看 | 久久视 | 97人妻精品一区二区三区免费 | 精品欧美一区二区久久久久 | 日日射日日操 | 岛国av一区| 黄色片网站免费看 | 日韩伦理一区二区三区 | 美少妇av | 精品欧美一区二区精品少妇 | 日本在线播放 | 国产黄在线播放 | 欧美一区二区激情 | 波多野结衣中文一区 | 免费精品视频 | 美女三级黄色片 | 国产乱码一区二区三区在线观看 | 亚洲1页 | 亚洲av毛片基地 | 999精品| 日韩黄色免费电影 | 精品欧美一区二区在线观看 | 亚洲午夜精品久久久久久人妖 | 狠狠入 | 国精产品一区一区三区有限公司杨 | 色哟哟国产 | 性欧美久久 | 久久精品无码专区免费 | 中国免费黄色 | 欧美乱操| 高清一区二区 | 国产亚洲精品熟女国产成人 | 日韩麻豆 | 三日本三级少妇三级99 | 极品福利视频 | 毛片大全 | 激情第四色 | 91精品国产日韩91久久久久久 | 五月天综合色 | 国产美女无遮挡永久免费 | 午夜视频1000 | 国产精品一区二区白浆 | 九九热最新 | 主人性调教le百合sm | 一区二区精品 | 精品福利影院 | 第一页国产| 视频区小说区图片区 | 蜜臀人妻四季av一区二区不卡 | 暴操白虎| 中文不卡在线 | 午夜免费网 | 五月天久久久 | 在线免费你懂的 | 亚洲精品在线播放视频 | 黑人操欧美人 | 成人动漫一区 | 我和岳m愉情xxxⅹ视频 | 日韩不卡一区二区三区 | 老头把女人躁得呻吟 | 免费的黄色网 | 高清一二三区 | 午夜激情福利 | 欧美一级特黄aaaaaa | 亚洲欧美色图 |