Copiare dati da e verso il database di Azure per MySQL usando Azure Data FactoryCopy data to and from Azure Database for MySQL using Azure Data Factory

Questo articolo illustra come usare l'attività di copia in Azure Data Factory per copiare dati dal database di Azure per MySQL.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from Azure Database for MySQL. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.It builds on the copy activity overview article that presents a general overview of copy activity.

Questo connettore è specializzato per il servizio database di Azure per MySQL.This connector is specialized for Azure Database for MySQL service. Per copiare dati da un database MySQL generico situato in locale o nel cloud, usare il connettore MySQL.To copy data from generic MySQL database located on-premises or in the cloud, use MySQL connector.

Funzionalità supportateSupported capabilities

Questo connettore di database di Azure per MySQL è supportato per le attività seguenti:This Azure Database for MySQL connector is supported for the following activities:

È possibile copiare i dati dal database di Azure per MySQL a un qualsiasi archivio dati sink supportato.You can copy data from Azure Database for MySQL to any supported sink data store. In alternativa, è possibile copiare dati da qualsiasi archivio dati di origine supportato a database di Azure per MySQL.Or, you can copy data from any supported source data store to Azure Database for MySQL. Per un elenco degli archivi dati supportati come origini/sink dall'attività di copia, vedere la tabella relativa agli archivi dati supportati.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 offre un driver predefinito per consentire la connettività, pertanto non è necessario installare manualmente alcun driver usando questo connettore.Azure Data Factory provides a built-in driver to enable connectivity, therefore you don't need to manually install any driver using this connector.

IntroduzioneGetting started

È possibile usare l'attività di copia con una pipeline tramite uno degli strumenti o degli SDK seguenti.You can use one of the following tools or SDKs to use the copy activity with a pipeline. Per istruzioni dettagliate, selezionare un collegamento:Select a link for step-by-step instructions:

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà usate per definire entità di data factory specifiche in un connettore del database Azure per MySQL.The following sections provide details about properties that are used to define Data Factory entities specific to Azure Database for MySQL connector.

Proprietà del servizio collegatoLinked service properties

Per il servizio collegato del database di Azure per MySQL sono supportate le proprietà seguenti:The following properties are supported for Azure Database for MySQL linked service:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type deve essere impostata su: AzureMySqlThe type property must be set to: AzureMySql YesYes
connectionStringconnectionString Specifica le informazioni necessarie per connettersi all'istanza del database di Azure per MySQL.Specify information needed to connect to the Azure Database for MySQL instance.
Contrassegnare questo campo come SecureString per archiviare la chiave in modo sicuro in Data Factory.Mark this field as a SecureString to store it securely in Data Factory. È anche possibile inserire la password in Azure Key Vault ed eseguire lo spostamento forzato dei dati della configurazione password all'esterno della stringa di connessione.You can also put password in Azure Key Vault and pull the password configuration out of the connection string. Vedere gli esempi seguenti e l'articolo Archiviare le credenziali in Azure Key Vault per altri dettagli.Refer to the following samples and Store credentials in Azure Key Vault article with more details.
Yes
connectViaconnectVia Il runtime di integrazione da usare per la connessione all'archivio dati.The Integration Runtime to be used to connect to the data store. È possibile usare il runtime di integrazione di Azure o il runtime di integrazione self-hosted (se l'archivio dati si trova in una rete privata).You can use Azure Integration Runtime or Self-hosted Integration Runtime (if your data store is located in private network). Se non specificato, viene usato il runtime di integrazione di Azure predefinito.If not specified, it uses the default Azure Integration Runtime. NoNo

Una stringa di connessione tipica è 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>. Altre proprietà che è possibile impostare per il case:More properties you can set per your case:

ProprietàProperty DescrizioneDescription OpzioniOptions ObbligatoriaRequired
SSLModeSSLMode Questa opzione specifica se il driver usa la crittografia SSL e verifica la connessione a MySQL.This option specifies whether the driver uses SSL encryption and verification when connecting to MySQL. ad esempioE.g. SSLMode=<0/1/2/3/4> DISABLED (0) / PREFERRED (1) (impostazione predefinita) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4)DISABLED (0) / PREFERRED (1) (Default) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) NoNo
UseSystemTrustStoreUseSystemTrustStore Questa opzione specifica se usare o meno un certificato CA dall'archivio di attendibilità di sistema o da un file PEM specificato.This option specifies whether to use a CA certificate from the system trust store, or from a specified PEM file. ad esempioE.g. UseSystemTrustStore=<0/1>; Abilitato (1) / Disabilitato (0) (impostazione predefinita)Enabled (1) / Disabled (0) (Default) NoNo

Esempio:Example:

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

Esempio: archiviare la password in Azure Key VaultExample: store password in Azure Key Vault

{
    "name": "AzureDatabaseForMySQLLinkedService",
    "properties": {
        "type": "AzureMySql",
        "typeProperties": {
            "connectionString": {
                 "type": "SecureString",
                 "value": "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"
        }
    }
}

Proprietà del set di datiDataset properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo sui set di dati.For a full list of sections and properties available for defining datasets, see the datasets article. Questa sezione presenta un elenco delle proprietà supportate dal set di dati del database di Azure per MySQL.This section provides a list of properties supported by Azure Database for MySQL dataset.

Per copiare dati dal database di Azure per MySQL, impostare la proprietà type del set di dati su AzureMySqlTable.To copy data from Azure Database for MySQL, set the type property of the dataset to AzureMySqlTable. Sono supportate le proprietà seguenti:The following properties are supported:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type del set di dati deve essere impostata su: AzureMySqlTableThe type property of the dataset must be set to: AzureMySqlTable Yes
tableNametableName Nome della tabella nel database MySQL.Name of the table in the MySQL database. No (se nell'origine dell'attività è specificato "query")No (if "query" in activity source is specified)

EsempioExample

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

Proprietà dell'attività di copiaCopy activity properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline.For a full list of sections and properties available for defining activities, see the Pipelines article. Questa sezione presenta un elenco delle proprietà supportate dall'origine e dal sink del database di Azure per MySQL.This section provides a list of properties supported by Azure Database for MySQL source and sink.

Database di Azure per MySQL come origineAzure Database for MySQL as source

Per copiare dati da database di Azure per MySQL, nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:To copy data from Azure Database for MySQL, the following properties are supported in the copy activity source section:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type dell'origine di attività di copia deve essere impostata su: AzureMySqlSourceThe type property of the copy activity source must be set to: AzureMySqlSource YesYes
queryquery Usare la query SQL personalizzata per leggere i dati.Use the custom SQL query to read data. Ad esempio: "SELECT * FROM MyTable".For example: "SELECT * FROM MyTable". No (se nel set di dati è specificato "tableName")No (if "tableName" in dataset is specified)
queryCommandTimeoutqueryCommandTimeout Il tempo di attesa prima del timeout della richiesta di query. Il valore predefinito è 120 minuti (02:00:00)The wait time before the query request times out. Default is 120 minutes (02:00:00) NoNo

Esempio: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>"
            }
        }
    }
]

Database di Azure per MySQL come sinkAzure Database for MySQL as sink

Per copiare dati in database di Azure per MySQL, nella sezione sink dell'attività di copia sono supportate le proprietà seguenti:To copy data to Azure Database for MySQL, the following properties are supported in the copy activity sink section:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type del sink dell'attività di copia deve essere impostata su: AzureMySqlSinkThe type property of the copy activity sink must be set to: AzureMySqlSink Yes
preCopyScriptpreCopyScript Specificare una query SQL per l'attività di copia da eseguire prima di scrivere i dati nel database di Azure per MySQL in ogni esecuzione.Specify a SQL query for the copy activity to execute before writing data into Azure Database for MySQL in each run. È possibile usare questa proprietà per pulire i dati precaricati.You can use this property to clean up the preloaded data. NoNo
writeBatchSizewriteBatchSize Inserisce i dati nella tabella di database di Azure per MySQL quando la dimensione del buffer raggiunge writeBatchSize.Inserts data into the Azure Database for MySQL table when the buffer size reaches writeBatchSize.
Il valore consentito è Integer che rappresenta il numero di righe.Allowed value is integer representing number of rows.
No (il valore predefinito è 10.000)No (default is 10,000)
writeBatchTimeoutwriteBatchTimeout Tempo di attesa per l'operazione di inserimento batch da completare prima del timeout.Wait time for the batch insert operation to complete before it times out.
I valori consentiti sono un intervallo di tempo.Allowed values are Timespan. Ad esempio "00:30:00" (30 minuti).An example is 00:30:00 (30 minutes).
No (il valore predefinito è 00:00:30)No (default is 00:00:30)

Esempio: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
            }
        }
    }
]

Proprietà attività di ricercaLookup activity properties

Per informazioni dettagliate sulle proprietà, controllare l' attività di ricerca.To learn details about the properties, check Lookup activity.

Mapping dei tipi di dati per il database di Azure per MySQLData type mapping for Azure Database for MySQL

Quando si copiano dati dal database di Azure per MySQL, vengono usati i mapping seguenti tra i tipi di dati MySQL e i tipi di dati provvisori di 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. Vedere Mapping dello schema e del tipo di dati per informazioni su come l'attività di copia esegue il mapping dello schema di origine e del tipo di dati al sink.See Schema and data type mappings to learn about how copy activity maps the source schema and data type to the sink.

Tipo di dati del database di Azure per MySQLAzure Database for MySQL data type Tipo di dati provvisori di 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

Passaggi successiviNext steps

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia in Azure Data Factory, vedere gli archivi dati supportati.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.