Copiar dados do Amazon Redshift usando o Azure Data FactoryCopy data from Amazon Redshift using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como usar a atividade de cópia no Azure Data Factory para copiar dados de um Amazon Redshift.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from an 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.It builds on the copy activity overview article that presents a general overview of copy activity.

Funcionalidades com suporteSupported capabilities

Este conector do Amazon redshift tem suporte para as seguintes atividades:This Amazon Redshift connector is supported for the following activities:

Você pode copiar dados do Amazon Redshift para qualquer repositório de dados de coletor com suporte.You can copy data from Amazon Redshift to any supported sink data store. Para obter uma lista de armazenamentos de dados com suporte como origens/coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.For a list of data stores that are supported as sources/sinks by the copy activity, see the Supported data stores table.

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.Specifically, this Amazon Redshift connector supports retrieving data from Redshift using query or built-in Redshift UNLOAD support.

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.To achieve the best performance when copying large amounts of data from Redshift, consider using the built-in Redshift UNLOAD through Amazon S3. Consulte a seção Usar UNLOAD para copiar dados do Amazon Redshift para obter detalhes.See Use UNLOAD to copy data from Amazon Redshift section for details.

Pré-requisitosPrerequisites

IntroduçãoGetting started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

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.The following sections provide details about properties that are used to define Data Factory entities specific to Amazon Redshift connector.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte para o serviço vinculado do Amazon Redshift:The following properties are supported for Amazon Redshift linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como: AmazonRedshiftThe type property must be set to: AmazonRedshift SimYes
Servidorserver Endereço IP ou nome do host do servidor Amazon Redshift.IP address or host name of the Amazon Redshift server. SimYes
portaport O número da porta TCP usada pelo servidor Amazon Redshift para ouvir conexões de cliente.The number of the TCP port that the Amazon Redshift server uses to listen for client connections. Não, o padrão é 5439No, default is 5439
Banco de Dadosdatabase Nome do banco de dados do Amazon Redshift.Name of the Amazon Redshift database. SimYes
Nome de Usuáriousername Nome de usuário que tem acesso ao banco de dados.Name of user who has access to the database. SimYes
passwordpassword Senha para a conta de usuário.Password for the user account. Marque este campo como uma SecureString para armazená-la com segurança no Data Factory ou faça referência a um segredo armazenado no Azure Key Vault.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. SimYes
connectViaconnectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados.The Integration Runtime to be used to connect to the data store. 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).You can use Azure Integration Runtime or Self-hosted Integration Runtime (if your data store is located in private network). Se não for especificado, ele usa o Integration Runtime padrão do Azure.If not specified, it uses the default Azure Integration Runtime. NãoNo

Exemplo:Example:

{
    "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 dadosDataset properties

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.For a full list of sections and properties available for defining datasets, see the datasets article. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Amazon Redshift.This section provides a list of properties supported by Amazon Redshift dataset.

Para copiar dados do Amazon redshift, há suporte para as seguintes propriedades:To copy data from Amazon Redshift, the following properties are supported:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do conjunto de conjuntos deve ser definida como: AmazonRedshiftTableThe type property of the dataset must be set to: AmazonRedshiftTable SimYes
esquemaschema Nome do esquema.Name of the schema. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)
tabelatable Nome da tabela.Name of the table. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)
tableNametableName Nome da tabela com esquema.Name of the table with schema. Essa propriedade é compatível com versões anteriores.This property is supported for backward compatibility. Use schema e table para uma nova carga de trabalho.Use schema and table for new workload. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)

ExemploExample

{
    "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.If you were using RelationalTable typed dataset, it is still supported as-is, while you are suggested to use the new one going forward.

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines.For a full list of sections and properties available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades com suporte pela fonte do Amazon Redshift.This section provides a list of properties supported by Amazon Redshift source.

Amazon Redshift como fonteAmazon Redshift as source

Para copiar dados do Amazon Redshift, defina o tipo de fonte na atividade de cópia como AmazonRedshiftSource.To copy data from Amazon Redshift, set the source type in the copy activity to AmazonRedshiftSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:The following properties are supported in the copy activity source section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type da fonte da atividade de cópia deve ser definida como: AmazonRedshiftSourceThe type property of the copy activity source must be set to: AmazonRedshiftSource SimYes
Consultaquery Utiliza a consulta personalizada para ler os dados.Use the custom query to read data. Por exemplo: select * from MyTable.For example: select * from MyTable. Não (se "tableName" no conjunto de dados for especificado)No (if "tableName" in dataset is specified)
redshiftUnloadSettingsredshiftUnloadSettings Grupo de propriedades ao usar UNLOAD do Amazon Redshift.Property group when using Amazon Redshift UNLOAD. NãoNo
s3LinkedServiceNames3LinkedServiceName 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".Refers to an Amazon S3 to-be-used as an interim store by specifying a linked service name of "AmazonS3" type. Sim se estiver usando UNLOADYes if using UNLOAD
bucketNamebucketName Indique o bucket S3 para armazenar os dados intermediários.Indicate the S3 bucket to store the interim data. Se não for fornecido, o serviço Data Factory o gerará automaticamente.If not provided, Data Factory service generates it automatically. Sim se estiver usando UNLOADYes if using UNLOAD

Exemplo: fonte Amazon Redshift na atividade de cópia usando UNLOADExample: Amazon Redshift source in copy activity using 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.Learn more on how to use UNLOAD to copy data from Amazon Redshift efficiently from next section.

Usar UNLOAD para copiar dados do Amazon RedshiftUse UNLOAD to copy data from 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).UNLOAD is a mechanism provided by Amazon Redshift, which can unload the results of a query to one or more files on Amazon Simple Storage Service (Amazon S3). É a maneira recomendada pela Amazon para copiar um conjunto de dados grande do Redshift.It is the way recommended by Amazon for copying large data set from Redshift.

Exemplo: copiar dados do Amazon redshift para o Azure Synapse Analytics usando UNLOAD, cópia preparada e polybaseExample: copy data from Amazon Redshift to Azure Synapse Analytics using UNLOAD, staged copy and PolyBase

Para este caso de uso de exemplo, a atividade de cópia descarrega dados do Amazon redshift para o Amazon S3 conforme configurado em "redshiftUnloadSettings" e, em seguida, copia dados do Amazon S3 para o blob do Azure, conforme especificado em "stagingSettings", use por último o polybase para carregar dados no Azure Synapse Analytics.For this sample use case, copy activity unloads data from Amazon Redshift to Amazon S3 as configured in "redshiftUnloadSettings", and then copy data from Amazon S3 to Azure Blob as specified in "stagingSettings", lastly use PolyBase to load data into Azure Synapse Analytics. Todos os formatos provisórios são adequadamente tratados pela atividade de cópia.All the interim format is handled by copy activity properly.

Fluxo de trabalho de cópia do redshift para o Azure Synapse Analytics

"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 RedshiftData type mapping for 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 do Azure Data Factory.When copying data from Amazon Redshift, the following mappings are used from Amazon Redshift data types to Azure Data Factory interim data types. 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.See Schema and data type mappings to learn about how copy activity maps the source schema and data type to the sink.

Tipo de dados do Amazon RedshiftAmazon Redshift data type Tipo de dados provisório do Data FactoryData factory interim data type
bigintBIGINT Int64Int64
BOOLEANBOOLEAN StringString
CHARCHAR StringString
DATEDATE DateTimeDateTime
DECIMALDECIMAL DecimalDecimal
DOUBLE PRECISIONDOUBLE PRECISION DoubleDouble
INTEGERINTEGER Int32Int32
realREAL SingleSingle
SMALLINTSMALLINT Int16Int16
TEXTTEXT StringString
timestampTIMESTAMP DateTimeDateTime
VARCHARVARCHAR StringString

Pesquisar propriedades de atividadeLookup activity properties

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.To learn details about the properties, check Lookup activity.

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores pela atividade de cópia no Azure Data Factory, consulte Armazenamentos de dados com suporte.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.