O DataWorks fornece o Amazon Redshift Reader e o Amazon Redshift Writer para ler e gravar dados em fontes de dados do Amazon Redshift. É possível configurar uma tarefa de sincronização para uma fonte de dados do Amazon Redshift usando a interface sem código ou o editor de código.
Versões compatíveis do Amazon Redshift
O Amazon Redshift usa o driver redshift-jdbc4.2 versão 2.1.0.1. Para obter mais informações sobre os recursos do driver, consulte Baixe uma versão do driver JDBC para o Amazon Redshift.
Mapeamentos de tipos de dados
A tabela a seguir descreve os mapeamentos entre os tipos de dados do Amazon Redshift e os tipos de dados SQL/Java. Para obter mais informações, consulte a documentação oficial do Amazon Redshift.
|
Tipo de dados do Amazon Redshift |
Tipo de dados SQL |
Tipo de dados Java |
|
BIGINT |
SQL_BIGINT |
LONG |
|
BOOLEAN |
SQL_BIT |
Boolean |
|
CHAR |
SQL_CHAR |
STRING |
|
DATE |
SQL_TYPE_DATE |
java.sql.Date |
|
DECIMAL |
SQL_NUMERIC |
BigDecimal |
|
DOUBLE PRECISION |
SQL_DOUBLE |
Double |
|
GEOMETRY |
SQL_ LONGVARBINARY |
byte[] |
|
INTEGER |
SQL_INTEGER |
INTEGER |
|
OID |
SQL_BIGINT |
LONG |
|
SUPER |
SQL_LONGVARCHAR |
STRING |
|
REAL |
SQL_REAL |
Float |
|
SMALLINT |
SQL_SMALLINT |
SHORT |
|
TEXT |
SQL_VARCHAR |
STRING |
|
TIME |
SQL_TYPE_TIME |
java.sql.Time |
|
TIMETZ |
SQL_TYPE_TIME |
java.sql.Time |
|
TIMESTAMP |
SQL_TYPE_ TIMESTAMP |
java.sql.Timestamp |
|
TIMESTAMPTZ |
SQL_TYPE_ TIMESTAMP |
java.sql.Timestamp |
|
VARCHAR |
SQL_VARCHAR |
STRING |
Preparativos para a sincronização de dados
Antes de sincronizar dados no DataWorks, estabeleça conexões de rede entre suas fontes de dados e um grupo de recursos sem servidor ou um grupo de recursos exclusivo do Data Integration para que o grupo de recursos possa acessar as fontes de dados por meio de uma rede interna. Recomendamos usar um grupo de recursos sem servidor para a sincronização de dados. Para obter informações sobre como estabelecer conexões de rede, consulte Network connectivity solutions.
Crie uma fonte de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária ao DataWorks seguindo as instruções em Data source configuration. Visualize as descrições dos parâmetros no console do DataWorks para entender o significado dos parâmetros ao adicionar uma fonte de dados.
Os principais parâmetros de uma fonte de dados do Amazon Redshift são:
JDBC URL: A string de conexão JDBC, incluindo o endereço IP, o número da porta, o banco de dados e os parâmetros de conexão. Há suporte a endereços IP públicos e privados. Se você usar um endereço IP público, garanta que o grupo de recursos do Data Integration possa acessar o host da sua instância do Amazon Redshift.
Username: O nome de usuário do seu banco de dados do Amazon Redshift.
Password: A senha para o nome de usuário especificado.
Desenvolva uma tarefa de sincronização de dados
Para obter informações sobre como acessar e configurar uma tarefa de sincronização, consulte os guias a seguir.
Configure uma tarefa de sincronização em lote para sincronizar dados de uma única tabela
Para obter mais informações sobre o procedimento de configuração, consulte Configure a batch synchronization task by using the codeless UI e Configure a batch synchronization task by using the code editor.
Para obter uma lista completa de parâmetros e um exemplo de script para o editor de código, consulte Appendix: Script examples and parameter descriptions.
Apêndice: Exemplos de script e descrições de parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote com o editor de código, configure os parâmetros relevantes no script de acordo com os requisitos unificados de formato de script. Para obter mais informações, consulte Script mode configuration. A seguir estão os parâmetros que você deve configurar para as fontes de dados ao usar o editor de código para uma tarefa de sincronização em lote.
Exemplo de script do Reader
{
"stepType": "redshift"
"parameter":
{
"datasource":"redshift_datasource",
"table": "redshift_table_name",
"where": "xxx=3",
"splitPk": "id",
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Reader",
"category": "reader"
}
Parâmetros do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
datasource |
O nome da fonte de dados. Deve corresponder ao nome da fonte de dados adicionada no DataWorks. |
Sim |
Nenhum valor padrão |
|
table |
O nome da tabela de origem de onde os dados serão lidos. |
Sim |
Nenhum valor padrão |
|
column |
As colunas a serem sincronizadas, separadas por vírgulas. Por exemplo, Para sincronizar todas as colunas, use um asterisco (). Por exemplo, |
Sim |
Nenhum valor padrão |
|
where |
A cláusula WHERE. A tarefa concatena os parâmetros column, table e where em uma instrução SQL para ler dados da tabela de origem. Para testes, defina este valor como limit 10. Para ler os dados gerados no dia atual, defina o parâmetro where como gmt_create > $bizdate.
|
Não |
Nenhum valor padrão |
|
splitPk |
A coluna usada para divisão de dados. Quando especificada, o sistema usa threads paralelas para sincronizar dados, o que melhora a eficiência. |
Não |
Nenhum valor padrão |
Exemplo de script do Writer
{
"stepType": "redshift",// The plugin name.
"parameter":
{
"postSql":["delete from XXX;"],
"preSql":["delete from XXX;"],
"datasource":"redshift_datasource",// The data source name.
"table": "redshift_table_name",// The table name.
"writeMode": "insert",
"batchSize": 2048,
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Writer",
"category": "writer"
}
Parâmetros do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
datasource |
O nome da fonte de dados, que deve corresponder ao nome configurado no DataWorks. |
Sim |
N/A |
|
table |
O nome da tabela de destino. |
Sim |
N/A |
|
column |
As colunas de destino nas quais os dados serão gravados, separadas por vírgulas. Por exemplo, Para gravar em todas as colunas em ordem, use um asterisco (). Por exemplo, |
Sim |
N/A |
|
preSql |
Uma instrução SQL a ser executada antes do início da tarefa de sincronização. Por exemplo, para limpar dados antigos da tabela de destino. Especifique uma instrução na interface sem código ou várias instruções no editor de código. |
Não |
N/A |
|
postSql |
Uma instrução SQL a ser executada após a conclusão da tarefa de sincronização. Por exemplo, para adicionar um carimbo de data e hora. Especifique uma instrução na interface sem código ou várias instruções no editor de código. |
Não |
N/A |
|
batchSize |
O número de registros a serem gravados por lote. |
Não |
2048 |
|
writeMode |
O modo de gravação. Apenas |
Não |
insert |