O DataWorks oferece o Amazon Redshift Reader e o Amazon Redshift Writer para ler e gravar dados em fontes de dados do Amazon Redshift. Configure uma tarefa de sincronização para uma fonte de dados do Amazon Redshift usando a interface visual sem código ou o editor de código.
Versões compatíveis do Amazon Redshift
O Amazon Redshift usa o redshift-jdbc4.2 Driver 2.1.0.1. Para obter mais informações sobre os recursos do driver, consulte Configurar uma versão de 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 dado do Amazon Redshift |
Tipo de dado SQL |
Tipo de dado 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 as fontes de dados e um serverless resource group ou um grupo de recursos exclusivo do Data Integration. Isso permite que o grupo de recursos acesse as fontes de dados pela rede interna. Recomendamos usar um grupo de recursos serverless para a sincronização de dados. Para saber como estabelecer essas conexões, 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 seguindo as instruções em Data source management. Visualize as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma fonte de dados.
Os principais parâmetros de uma fonte de dados do Amazon Redshift são:
JDBC URL: string de conexão JDBC que inclui endereço IP, número da porta, banco de dados e parâmetros de conexão. Endereços IP públicos e privados são compatíveis. Se você usar um IP público, garanta que o grupo de recursos de integração de dados possa acessar o host onde a instância do Amazon Redshift está localizada.
Username: nome de usuário do banco de dados do Amazon Redshift.
Password: senha do nome de usuário especificado.
Desenvolver uma tarefa de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de 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 detalhes 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 a 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 scripts 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, defina os parâmetros relevantes no script conforme os requisitos unificados de formato de script. Para obter mais informações, consulte Script mode configuration. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados durante a configuração de uma tarefa de sincronização em lote via editor de código.
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 |
Nome da fonte de dados. Deve corresponder exatamente ao nome da fonte de dados adicionada no DataWorks. |
Sim |
Sem valor padrão |
|
table |
Nome da tabela de origem de onde os dados serão lidos. |
Sim |
Sem valor padrão |
|
column |
Colunas a sincronizar, separadas por vírgulas. Exemplo: Para sincronizar todas as colunas, use um asterisco (). Exemplo: |
Sim |
Sem valor padrão |
|
where |
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 |
Sem valor padrão |
|
splitPk |
Coluna usada para fragmentação de dados. Quando especificada, o sistema usa threads paralelas para sincronizar os dados, o que aumenta a eficiência. |
Não |
Sem 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 |
Nome da fonte de dados. Deve corresponder ao nome configurado no DataWorks. |
Sim |
N/A |
|
table |
Nome da tabela de destino. |
Sim |
N/A |
|
column |
Colunas de destino nas quais os dados serão gravados, separadas por vírgulas. Exemplo: Para gravar em todas as colunas sequencialmente, use um asterisco (*). Exemplo: |
Sim |
N/A |
|
preSql |
Instrução SQL executada antes do início da tarefa de sincronização. Por exemplo, limpe dados antigos da tabela de destino. Especifique uma instrução na interface visual sem código ou várias instruções no editor de código. |
Não |
N/A |
|
postSql |
Instrução SQL executada após a conclusão da tarefa de sincronização. Por exemplo, adicione um carimbo de data/hora. Especifique uma instrução na interface visual sem código ou várias instruções no editor de código. |
Não |
N/A |
|
batchSize |
Número de registros a gravar por lote. |
Não |
2048 |
|
writeMode |
Modo de gravação. Apenas |
Não |
insert |