AWS Data Pipeline não está mais disponível para novos clientes. Clientes existentes da AWS Data Pipeline pode continuar usando o serviço normalmente. Saiba mais
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Modelos do Amazon RDS para o Amazon Redshift
Estes dois modelos copiam tabelas MySQL do Amazon RDS para o Amazon Redshift usando um script de conversão, que cria uma tabela do Amazon Redshift usando o esquema da tabela de origem com as seguintes ressalvas:
-
Se uma chave de distribuição não for especificada, a primeira chave primária da tabela do Amazon RDS será definida como a chave de distribuição.
-
Você não pode ignorar uma coluna presente na tabela MySQL do Amazon RDS ao fazer uma cópia para o Amazon Redshift.
-
(Opcional) Você pode fornecer um MySQL do Amazon RDS para o mapeamento dos tipos de dados da coluna do Amazon Redshift como um dos parâmetros no modelo. Se isso for especificado, o script o usará para criar a tabela do Amazon Redshift.
Se o modo de inserção do Amazon Redshift de Overwrite_Existing
estiver sendo usado:
-
Se uma chave de distribuição não for fornecida, será usada uma chave primária na tabela MySQL do Amazon RDS.
-
Se houver chaves primárias compostas na tabela, a primeira será usada como a chave de distribuição, se a chave de distribuição não for fornecida. Somente a primeira chave composta é definida como a chave primária na tabela do Amazon Redshift.
-
Se uma chave de distribuição não for fornecida e não houver chave primária na tabela MySQL do Amazon RDS, ocorrerá falha na operação de cópia.
Para obter mais informações sobre o Amazon Redshift, consulte os seguintes tópicos:
-
Amazon Redshift cluster (Cluster do Amazon Redshift)
-
COPY do Amazon Redshift
-
Estilos de distribuição e exemplos DISTKEY
A seguinte tabela descreve como o script converte os tipos de dados:
Tipo de dados MySQL | Tipo de dados do Amazon Redshift | Observações |
---|---|---|
TINYINT, TINYINT (size) |
SMALLINT |
MySQL: de -128 a 127. O número máximo de dígitos pode ser especificado entre parênteses. Amazon Redshift: INT2. Número inteiro de dois bytes assinado |
TINYINT UNSIGNED, TINYINT (size) UNSIGNED |
SMALLINT |
MySQL: de 0 a 255 UNSIGNED. O número máximo de dígitos pode ser especificado entre parênteses. Amazon Redshift: INT2. Número inteiro de dois bytes assinado |
SMALLINT, SMALLINT(size) |
SMALLINT |
MySQL: de -32768 a 32767 normal. O número máximo de dígitos pode ser especificado entre parênteses. Amazon Redshift: INT2. Número inteiro de dois bytes assinado |
SMALLINT UNSIGNED, SMALLINT(size) UNSIGNED, |
INTEGER |
MySQL: de 0 a 65535 UNSIGNED*. O número máximo de dígitos pode ser especificado entre parênteses Amazon Redshift: INT4. Número inteiro de quatro bytes assinado |
MEDIUMINT, MEDIUMINT(size) |
INTEGER |
MySQL: de 388608 a 8388607. O número máximo de dígitos pode ser especificado entre parênteses Amazon Redshift: INT4. Número inteiro de quatro bytes assinado |
MEDIUMINT UNSIGNED, MEDIUMINT(size) UNSIGNED |
INTEGER |
MySQL: de 0 a 16777215. O número máximo de dígitos pode ser especificado entre parênteses Amazon Redshift: INT4. Número inteiro de quatro bytes assinado |
INT, INT(size) |
INTEGER |
MySQL: de 147483648 a 2147483647 Amazon Redshift: INT4. Número inteiro de quatro bytes assinado |
INT UNSIGNED, INT(size) UNSIGNED |
BIGINT |
MySQL: de 0 a 4294967295 Amazon Redshift: INT8. Número inteiro de oito bytes assinado |
BIGINT BIGINT(size) |
BIGINT |
Amazon Redshift: INT8. Número inteiro de oito bytes assinado |
BIGINT UNSIGNED BIGINT(size) UNSIGNED |
VARCHAR(20*4) |
MySQL: de 0 a 18446744073709551615 Amazon Redshift: Sem equivalente nativo. Por isso, usando char array. |
FLOAT FLOAT(size,d) FLOAT(size,d) UNSIGNED |
REAL |
O número máximo de dígitos pode ser especificado no parâmetro size. O número máximo de dígitos à direita da casa decimal é especificado no parâmetro d. Amazon Redshift: FLOAT4 |
DOUBLE(size,d) |
DOUBLE PRECISION |
O número máximo de dígitos pode ser especificado no parâmetro size. O número máximo de dígitos à direita da casa decimal é especificado no parâmetro d. Amazon Redshift: FLOAT8 |
DECIMAL(size,d) |
DECIMAL(size,d) |
Um DOUBLE armazenado como uma string, o que possibilita uma casa decimal fixa. O número máximo de dígitos pode ser especificado no parâmetro size. O número máximo de dígitos à direita da casa decimal é especificado no parâmetro d. Amazon Redshift: sem equivalente nativo. |
CHAR(size) |
VARCHAR(size*4) |
Mantém uma string de tamanho fixo, que pode conter letras, números e caracteres especiais. O tamanho fixo é especificado como o parâmetro entre parênteses. É possível armazenar até 255 caracteres. Lado direito preenchido com espaços. Amazon Redshift: o tipo de dados CHAR não dá suporte a caracteres multibyte, logo, VARCHAR é usado. O número máximo de bytes por caractere é 4 de acordo com RFC3629 |
VARCHAR(size) | VARCHAR(size*4) |
É possível armazenar até 255 caracteres. VARCHAR não dá suporte aos seguintes pontos de código UTF-8 inválidos: 0xD800 - 0xDFFF, (Sequências de bytes: ED A0 80 - ED BF BF), 0xFDD0 - 0xFDEF, 0xFFFE e 0xFFFF, (Sequências de bytes: EF B7 90 - EF B7 AF, EF BF BE, and EF BF BF) |
TINYTEXT | VARCHAR(255*4) | Mantém uma string com um tamanho máximo de 255 caracteres |
TEXT | VARCHAR(máximo) |
Mantém uma string com um tamanho máximo de 65.535 caracteres. |
MEDIUMTEXT | VARCHAR(máximo) |
De 0 a 16.777.215 caracteres |
LONGTEXT | VARCHAR(máximo) | De 0 a 4.294.967.295 caracteres |
BOOLEAN BOOL TINYINT(1) |
BOOLEAN |
MySQL: esses tipos são sinônimos para TINYINT (1) |
BINARY[(M)] | varchar(255) |
M é de 0 a 255 bytes, FIXED |
VARBINARY(M) | VARCHAR(máximo) |
0 a 65,535 bytes |
TINYBLOB | VARCHAR (255) | 0 a 255 bytes |
BLOB | VARCHAR(máximo) |
0 a 65,535 bytes |
MEDIUMBLOB | VARCHAR(máximo) |
0 a 16,777,215 bytes |
LONGBLOB | VARCHAR(máximo) |
0 a 4,294,967,295 bytes |
ENUM | VARCHAR(255*2) | O limite não está no tamanho da string enum literal, e sim na definição de tabela para o número de valores enum. |
SET | VARCHAR(255*2) | Como enum. |
DATE | DATE |
(YYYY-MM-DD) De "1000-01-01" a "9999-12-31" |
TIME | VARCHAR(10*4) |
(hh:mm:ss) De "-838:59:59" a "838:59:59" |
DATETIME | TIMESTAMP |
(YYYY-MM-DD hh:mm:ss) De 1000-01-01 00:00:00" a "9999-12-31 23:59:59" |
TIMESTAMP | TIMESTAMP |
(YYYYMMDDhhmmss) De 19700101000000 a 2037+ |
YEAR | VARCHAR(4*4) |
(YYYY) 1900 – 2155 |
Coluna SERIAL |
Geração de ID/Este atributo não é necessário para um data warehouse OLAP após a cópia da coluna. A palavra-chave SERIAL não é adicionada durante a conversão. |
Na verdade, SERIAL é uma entidade chamada SEQUENCE. Ela existe de maneira independente no restante da tabela. Coluna GENERATED BY DEFAULT equivale a: Nome CREATE SEQUENCE; tabela CREATE TABLE (coluna INTEGER NOT NULL DEFAULT nextval(name) ); |
Coluna BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE |
Geração de ID/Este atributo não é necessário para um data warehouse OLAP após a cópia da coluna. Dessa forma, a palavra-chave SERIAL não é adicionada durante a conversão. |
Na verdade, SERIAL é uma entidade chamada SEQUENCE. Ela existe de maneira independente no restante da tabela. Coluna GENERATED BY DEFAULT equivale a: Nome CREATE SEQUENCE; tabela CREATE TABLE (coluna INTEGER NOT NULL DEFAULT nextval(name) ); |
ZEROFILL | A palavra-chave ZEROFILL não é adicionada durante a conversão. |
INT UNSIGNED ZEROFILL NOT NULL ZEROFILL preenche o valor exibido do campo com zeros até a exibição da largura especificada na definição da coluna. Os valores maiores que a largura de exibição não são truncados. O uso de ZEROFILL também implica UNSIGNED. |