Copiar dados de e para o Azure Database para MySQL usando o Azure Data FactoryCopy data to and from Azure Database for MySQL 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 Banco de Dados do Azure para MySQL.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from Azure Database for MySQL. 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.

Esse conector é especializado para o serviço de banco de dados do Azure para MySQL.This connector is specialized for Azure Database for MySQL service. Para copiar dados do banco de dado do MySQL genérico localizado localmente ou na nuvem, use o conector do MySQL.To copy data from generic MySQL database located on-premises or in the cloud, use MySQL connector.

Funcionalidades com suporteSupported capabilities

Esse conector do banco de dados do Azure para MySQL tem suporte para as seguintes atividades:This Azure Database for MySQL connector is supported for the following activities:

Você pode copiar dados do Banco de Dados do Azure para MySQL para qualquer armazenamento de dados de coletor com suporte.You can copy data from Azure Database for MySQL to any supported sink data store. Ou então, você pode copiar dados de qualquer armazenamento de dados de origem com suporte para o Azure Database para MySQL.Or, you can copy data from any supported source data store to Azure Database for MySQL. 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.

Azure Data Factory fornece um driver interno para habilitar a conectividade, portanto, não é necessário instalar manualmente qualquer driver usando esse conector.Azure Data Factory provides a built-in driver to enable connectivity, therefore you don't need to manually install any driver using this connector.

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 Banco de Dados do Azure para MySQL.The following sections provide details about properties that are used to define Data Factory entities specific to Azure Database for MySQL connector.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte no serviço vinculado do Banco de Dados do Azure para MySQL:The following properties are supported for Azure Database for MySQL linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A tipo da propriedade deve ser definida como: AzureMySqlThe type property must be set to: AzureMySql SimYes
connectionStringconnectionString Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para MySQL.Specify information needed to connect to the Azure Database for MySQL instance.
Você também pode colocar uma senha no Azure Key Vault e extrair a configuração password da cadeia de conexão.You can also put password in Azure Key Vault and pull the password configuration out of the connection string. Confira os exemplos a seguir e o artigo Armazenar credenciais no Azure Key Vault com mais detalhes.Refer to the following samples and Store credentials in Azure Key Vault article with more details.
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

Uma cadeia de conexão válida é Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>.A typical connection string is Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>. Mais propriedades que podem ser definidas para seu caso:More properties you can set per your case:

PropriedadeProperty DescriçãoDescription OpçõesOptions ObrigatórioRequired
SSLModeSSLMode Esta opção especifica se o driver usa criptografia e verificação TLS ao se conectar ao MySQL.This option specifies whether the driver uses TLS encryption and verification when connecting to MySQL. Por ex.:E.g. SSLMode=<0/1/2/3/4> DESATIVADO (0) / PREFERENCIAL (1) (padrão) / NECESSÁRIO (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4)DISABLED (0) / PREFERRED (1) (Default) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) NãoNo
UseSystemTrustStoreUseSystemTrustStore Esta opção especifica se deve usar um certificado de autoridade de certificação do repositório de confiança de sistema ou de um arquivo PEM especificado.This option specifies whether to use a CA certificate from the system trust store, or from a specified PEM file. Por ex.:E.g. UseSystemTrustStore=<0/1>; Ativado (1) / Desativado (0) (Padrão)Enabled (1) / Disabled (0) (Default) NãoNo

Exemplo:Example:

{
    "name": "AzureDatabaseForMySQLLinkedService",
    "properties": {
        "type": "AzureMySql",
        "typeProperties": {
            "connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: armazenar a senha no Azure Key VaultExample: store password in Azure Key Vault

{
    "name": "AzureDatabaseForMySQLLinkedService",
    "properties": {
        "type": "AzureMySql",
        "typeProperties": {
            "connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "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 Banco de Dados do Azure para MySQL.This section provides a list of properties supported by Azure Database for MySQL dataset.

Para copiar dados de/para o Banco de Dados do Azure para MySQL, defina o tipo da propriedade do conjunto de dados como AzureMySqlTable.To copy data from Azure Database for MySQL, set the type property of the dataset to AzureMySqlTable. Há suporte para as seguintes propriedades:The following properties are supported:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype O tipo da propriedade do conjunto de dados deve ser definida como: AzureMySqlTableThe type property of the dataset must be set to: AzureMySqlTable SimYes
tableNametableName Nome da tabela no banco de dados MySQL.Name of the table in the MySQL database. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)

ExemploExample

{
    "name": "AzureMySQLDataset",
    "properties": {
        "type": "AzureMySqlTable",
        "linkedServiceName": {
            "referenceName": "<Azure MySQL linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "tableName": "<table name>"
        }
    }
}

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 origem e pelo coletor do banco de dados do Azure para MySQL.This section provides a list of properties supported by Azure Database for MySQL source and sink.

Banco de Dados do Azure para MySQL como fonteAzure Database for MySQL as source

Para copiar dados do Azure Database para MySQL, há suporte para as seguintes propriedades na seção origem da atividade de cópia:To copy data from Azure Database for MySQL, 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: AzureMySqlSourceThe type property of the copy activity source must be set to: AzureMySqlSource SimYes
Consultaquery Utiliza a consulta SQL personalizada para ler os dados.Use the custom SQL 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)
queryCommandTimeoutqueryCommandTimeout O tempo de espera antes que a solicitação de consulta expire. O padrão é 120 minutos (02:00:00)The wait time before the query request times out. Default is 120 minutes (02:00:00) NãoNo

Exemplo:Example:

"activities":[
    {
        "name": "CopyFromAzureDatabaseForMySQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure MySQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureMySqlSource",
                "query": "<custom query e.g. SELECT * FROM MyTable>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Banco de dados do Azure para MySQL como coletorAzure Database for MySQL as sink

Para copiar dados para o banco de dado do Azure para MySQL, há suporte para as seguintes propriedades na seção coletor de atividade de cópia:To copy data to Azure Database for MySQL, the following properties are supported in the copy activity sink section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do coletor da atividade de cópia deve ser definida como: AzureMySqlSinkThe type property of the copy activity sink must be set to: AzureMySqlSink SimYes
preCopyScriptpreCopyScript Especifique uma consulta SQL para que a atividade de cópia seja executada antes de gravar dados no banco de dado do Azure para MySQL em cada execução.Specify a SQL query for the copy activity to execute before writing data into Azure Database for MySQL in each run. Você pode usar essa propriedade para limpar os dados previamente carregados.You can use this property to clean up the preloaded data. NãoNo
writeBatchSizewriteBatchSize Insere os dados na tabela do Azure Database para MySQL quando o tamanho do buffer atinge writeBatchSize.Inserts data into the Azure Database for MySQL table when the buffer size reaches writeBatchSize.
O valor permitido é um inteiro que representa o número de linhas.Allowed value is integer representing number of rows.
Não (o padrão é 10.000)No (default is 10,000)
writeBatchTimeoutwriteBatchTimeout Tempo de espera para a operação de inserção em lotes ser concluída antes de atingir o tempo limite.Wait time for the batch insert operation to complete before it times out.
Os valores permitidos são período.Allowed values are Timespan. Um exemplo é 00:30:00 (30 minutos).An example is 00:30:00 (30 minutes).
Não (o padrão é 00:00:30)No (default is 00:00:30)

Exemplo:Example:

"activities":[
    {
        "name": "CopyToAzureDatabaseForMySQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure MySQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureMySqlSink",
                "preCopyScript": "<custom SQL script>",
                "writeBatchSize": 100000
            }
        }
    }
]

Pesquisar propriedades de atividadeLookup activity properties

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

Mapeamento do tipo de dados do Banco de Dados do Azure para MySQLData type mapping for Azure Database for MySQL

Ao copiar dados do Banco de Dados do Azure para MySQL, os seguintes mapeamentos são usados de tipos de dados do MySQL para tipos de dados provisórios do Azure Data Factory.When copying data from Azure Database for MySQL, the following mappings are used from MySQL 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.

Tipos de dados de Banco de Dados do Azure para MySQLAzure Database for MySQL data type Tipo de dados provisório do Data FactoryData factory interim data type
bigint Int64
bigint unsigned Decimal
bit Boolean
bit(M), M>1 Byte[]
blob Byte[]
bool Int16
char String
date Datetime
datetime Datetime
decimal Decimal, String
double Double
double precision Double
enum String
float Single
int Int32
int unsigned Int64
integer Int32
integer unsigned Int64
long varbinary Byte[]
long varchar String
longblob Byte[]
longtext String
mediumblob Byte[]
mediumint Int32
mediumint unsigned Int64
mediumtext String
numeric Decimal
real Double
set String
smallint Int16
smallint unsigned Int32
text String
time TimeSpan
timestamp Datetime
tinyblob Byte[]
tinyint Int16
tinyint unsigned Int16
tinytext String
varchar String
year Int32

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.