Copiar dados do Amazon Redshift usando o Azure Data Factory ou o Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory e do Azure Synapse Analytics para copiar dados de um Amazon Redshift. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Funcionalidades com suporte
Há suporte para este conector do Amazon Redshift nos seguintes recursos:
Funcionalidades com suporte | IR |
---|---|
Atividade de cópia (origem/-) | ① ② |
Atividade de pesquisa | ① ② |
① Runtime de integração do Azure ② Runtime de integração auto-hospedada
Para obter uma lista de armazenamentos de dados que têm suporte como fontes ou coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.
Especificamente, este conector do Amazon Redshift dá suporte a recuperação de dados do Redshift usando a consulta ou o suporte interno a UNLOAD do Redshift.
O conector dá suporte às versões do Windows incluídas nesse artigo.
Dica
Para obter o melhor desempenho ao copiar grandes quantidades de dados do Redshift, considere o uso de UNLOAD do Redshift interno por meio do Amazon S3. Consulte a seção Usar UNLOAD para copiar dados do Amazon Redshift para obter detalhes.
Pré-requisitos
- Se você estiver copiando dados para um armazenamento de dados local usando o Integration Runtime auto-hospedado, conceda ao Integration Runtime (use o endereço IP do computador) o acesso ao cluster do Amazon Redshift. Veja Autorizar o acesso ao cluster para obter instruções.
- Se você estiver copiando dados para um armazenamento de dados do Azure, veja Intervalos de IP do data center do Azure para obter os endereços IP de computação e os intervalos de SQL usados pelos data centers do Azure.
Introdução
Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:
- A ferramenta Copiar Dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- PowerShell do Azure
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado ao Amazon Redshift com a interface do usuário
Use as etapas abaixo para criar um serviço vinculado ao Amazon Redshift na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, clique em Novo:
Pesquise Amazon e selecione o conector do Amazon Redshift.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes da configuração do conector
As seções que se seguem fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas ao conector do Amazon Redshift.
Propriedades do serviço vinculado
As propriedades a seguir têm suporte para o serviço vinculado do Amazon Redshift:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type deve ser definida como: AmazonRedshift | Sim |
Servidor | Endereço IP ou nome do host do servidor Amazon Redshift. | Sim |
porta | O número da porta TCP usada pelo servidor Amazon Redshift para ouvir conexões de cliente. | Não, o padrão é 5439 |
Banco de Dados | Nome do banco de dados do Amazon Redshift. | Sim |
Nome de Usuário | Nome de usuário que tem acesso ao banco de dados. | Sim |
password | Senha para a conta de usuário. Marque este campo como um SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. | Sim |
connectVia | O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Você pode usar o Integration Runtime do Azure ou o Integration Runtime auto-hospedado (se o armazenamento de dados estiver localizado em uma rede privada). Se não for especificado, ele usa o Integration Runtime padrão do Azure. | Não |
Exemplo:
{
"name": "AmazonRedshiftLinkedService",
"properties":
{
"type": "AmazonRedshift",
"typeProperties":
{
"server": "<server name>",
"database": "<database name>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Amazon Redshift.
Para copiar dados do Amazon Redshift, há suporte para as seguintes propriedades:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type do conjunto de dados precisa ser definida como: AmazonRedshiftTable | Sim |
esquema | Nome do esquema. | Não (se "query" na fonte da atividade for especificada) |
tabela | Nome da tabela. | Não (se "query" na fonte da atividade for especificada) |
tableName | Nome da tabela com esquema. Essa propriedade é compatível com versões anteriores. Use schema e table para uma nova carga de trabalho. |
Não (se "query" na fonte da atividade for especificada) |
Exemplo
{
"name": "AmazonRedshiftDataset",
"properties":
{
"type": "AmazonRedshiftTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Amazon Redshift linked service name>",
"type": "LinkedServiceReference"
}
}
}
Se você estava usando o conjunto de dados com tipos RelationalTable
, ele ainda tem suporte como está, mas é recomendável usar o novo de agora em diante.
Propriedades da atividade de cópia
Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte do Amazon Redshift.
Amazon Redshift como fonte
Para copiar dados do Amazon Redshift, defina o tipo de fonte na atividade de cópia como AmazonRedshiftSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type da fonte da atividade de cópia deve ser definida como: AmazonRedshiftSource | Sim |
Consulta | Utiliza a consulta personalizada para ler os dados. Por exemplo: select * from MyTable. | Não (se "tableName" no conjunto de dados for especificado) |
redshiftUnloadSettings | Grupo de propriedades ao usar UNLOAD do Amazon Redshift. | Não |
s3LinkedServiceName | Refere-se a um Amazon S3 que será usado como um repositório provisório especificando um nome de serviço vinculado do tipo "AmazonS3". | Sim se estiver usando UNLOAD |
bucketName | Indique o bucket S3 para armazenar os dados intermediários. Se não for fornecido, o sistema o gerará automaticamente. | Sim se estiver usando UNLOAD |
Exemplo: fonte Amazon Redshift na atividade de cópia usando UNLOAD
"source": {
"type": "AmazonRedshiftSource",
"query": "<SQL query>",
"redshiftUnloadSettings": {
"s3LinkedServiceName": {
"referenceName": "<Amazon S3 linked service>",
"type": "LinkedServiceReference"
},
"bucketName": "bucketForUnload"
}
}
Saiba mais sobre como usar o UNLOAD para copiar dados do Amazon Redshift com eficiência na próxima seção.
Usar UNLOAD para copiar dados do Amazon Redshift
UNLOAD é um mecanismo fornecido pelo Amazon Redshift, que pode descarregar os resultados de uma consulta para um ou mais arquivos no Amazon S3 (Serviço de Armazenamento Simples da Amazon). É a maneira recomendada pela Amazon para copiar um conjunto de dados grande do Redshift.
Exemplo: copiar dados do Amazon Redshift para o Azure Synapse Analytics usando UNLOAD, a cópia em etapas e o PolyBase
Neste exemplo de caso de uso, a atividade Copy descarrega os dados do Amazon Redshift para o Amazon S3 conforme configurado em "redshiftUnloadSettings" e copia os dados do Amazon S3 para o Blob do Azure conforme especificado em "stagingSettings". Por fim, ela usa o PolyBase para carregar os dados no Azure Synapse Analytics. Todos os formatos provisórios são adequadamente tratados pela atividade de cópia.
"activities":[
{
"name": "CopyFromAmazonRedshiftToSQLDW",
"type": "Copy",
"inputs": [
{
"referenceName": "AmazonRedshiftDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "AzureSQLDWDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AmazonRedshiftSource",
"query": "select * from MyTable",
"redshiftUnloadSettings": {
"s3LinkedServiceName": {
"referenceName": "AmazonS3LinkedService",
"type": "LinkedServiceReference"
},
"bucketName": "bucketForUnload"
}
},
"sink": {
"type": "SqlDWSink",
"allowPolyBase": true
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": "AzureStorageLinkedService",
"path": "adfstagingcopydata"
},
"dataIntegrationUnits": 32
}
}
]
Mapeamento de tipo de dados para o Amazon Redshift
Ao copiar dados do Amazon Redshift, os seguintes mapeamentos são usados de tipos de dados do Amazon Redshift para tipos de dados provisórios usados internamente com o serviço. Consulte Mapeamentos de tipo de dados e esquema para saber mais sobre como a atividade de cópia mapeia o tipo de dados e esquema de origem para o coletor.
Tipo de dados do Amazon Redshift | Tipo de dados provisório do serviço |
---|---|
bigint | Int64 |
BOOLEAN | String |
CHAR | String |
DATE | Datetime |
DECIMAL | Decimal |
DOUBLE PRECISION | Double |
INTEGER | Int32 |
real | Único |
SMALLINT | Int16 |
TEXT | String |
timestamp | Datetime |
VARCHAR | String |
Pesquisar propriedades de atividade
Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.
Conteúdo relacionado
Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.