Copiare dati da MariaDB usando Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Questo articolo illustra come usare l'attività di copia in una pipeline di Azure Data Factory o Synapse Analytics per copiare dati da MariaDB. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.

Funzionalità supportate

Questo connettore MariaDB è supportato per le funzionalità seguenti:

Funzionalità supportate IR
attività Copy (source/-) (1) (2)
Attività Lookup (1) (2)

(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted

Per un elenco degli archivi dati supportati come origini/sink dall'attività di copia, vedere la tabella relativa agli archivi dati supportati.

Il servizio fornisce un driver predefinito per abilitare la connettività, pertanto non è necessario installare manualmente alcun driver usando questo connettore.

Questo connettore supporta attualmente MariaDB versione 10.x, 11.x nella versione consigliata del driver da 2 a 10.0 per la versione legacy del driver.

Prerequisiti

Se l'archivio dati si trova all'interno di una rete locale, una rete virtuale di Azure o un cloud privato virtuale di Amazon, è necessario configurare un runtime di integrazione self-hosted per connettersi.

Se l'archivio dati è un servizio dati cloud gestito, è possibile usare Azure Integration Runtime. Se l'accesso è limitato agli indirizzi IP approvati nelle regole del firewall, è possibile aggiungere indirizzi IP del runtime di integrazione di Azure all'elenco elementi consentiti.

È anche possibile usare la funzionalità di runtime di integrazione della rete virtuale gestita in Azure Data Factory per accedere alla rete locale senza installare e configurare un runtime di integrazione self-hosted.

Per altre informazioni sui meccanismi di sicurezza di rete e sulle opzioni supportate da Data Factory, vedere strategie di accesso ai dati.

Introduzione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato a MariaDB usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato a MariaDB nell'interfaccia utente di portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:

  2. Cercare Maria e selezionare il connettore MariaDB.

    Screenshot del connettore MariaDB.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Screenshot della configurazione del servizio collegato per MariaDB.

Dettagli di configurazione di Connessione or

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di data factory specifiche per il connettore MariaDB.

Proprietà del servizio collegato

Se si usa la versione consigliata del driver, per il servizio collegato MariaDB sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su MariaDB
driverVersion Versione del driver quando si seleziona la versione del driver consigliata. Il valore è v2.
server Nome del server MariaDB.
port Numero di porta da connettere al server MariaDB. No
database Nome del database MariaDB.
username Nome utente.
password Password per il nome utente. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro. In alternativa, fare riferimento a un segreto archiviato in Azure Key Vault.
connectVia Il runtime di integrazione da usare per la connessione all'archivio dati. Per altre informazioni, vedere la sezione Prerequisiti. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. No

Esempio:

{
    "name": "MariaDBLinkedService",
    "properties": {
        "type": "MariaDB",
        "typeProperties": {
            "server": "<server>",
            "port": "<port>",
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "driverVersion": "v2"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Esempio: archiviare la password in Azure Key Vault

{
    "name": "MariaDBLinkedService",
    "properties": {
        "type": "MariaDB",
        "typeProperties": {
            "server": "<server>",
            "port": "<port>",
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            },
            "driverVersion": "v2"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Se si usa la versione del driver legacy, sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su MariaDB
connectionString Una stringa di connessione ODBC per la connessione a MariaDB.
È anche possibile inserire la password in Azure Key Vault ed eseguire lo spostamento forzato dei dati della configurazione pwd all'esterno della stringa di connessione. Vedere gli esempi seguenti e l'articolo Archiviare le credenziali in Azure Key Vault per altri dettagli.
connectVia Il runtime di integrazione da usare per la connessione all'archivio dati. Per altre informazioni, vedere la sezione Prerequisiti. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. No

Esempio:

{
    "name": "MariaDBLinkedService",
    "properties": {
        "type": "MariaDB",
        "typeProperties": {
            "connectionString": "Server=<host>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo sui set di dati. Questa sezione presenta un elenco delle proprietà supportate dal set di dati di MariaDB.

Per copiare dati da MariaDB, impostare la proprietà type del set di dati su MariaDBTable. Non sono presenti proprietà aggiuntive specifiche del tipo in questo tipo di set di dati.

Esempio

{
    "name": "MariaDBDataset",
    "properties": {
        "type": "MariaDBTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MariaDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dall'origine MariaDB.

MariaDB come origine

Per copiare dati da MariaDB, impostare il tipo di origine nell'attività di copia su MariaDBSource. Nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type dell'origine dell'attività di copia deve essere impostata su MariaDBSource
query Usare la query SQL personalizzata per leggere i dati. Ad esempio: "SELECT * FROM MyTable". No (se nel set di dati è specificato "tableName")

Esempio:

"activities":[
    {
        "name": "CopyFromMariaDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MariaDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MariaDBSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Mapping dei tipi di dati per MariaDB

Quando si copiano dati da MariaDB, i mapping seguenti vengono usati dai tipi di dati MariaDB ai tipi di dati provvisori usati internamente dal servizio. 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.

Tipo di dati MariaDB Tipo di dati del servizio provvisorio Tipo di dati del servizio provvisorio (per la versione del driver legacy)
bigint Int64 Int64
bigint unsigned Decimal Decimal
bit(1) UInt64 Boolean
bit(M), M>1 UInt64 Byte[]
blob Byte[] Byte[]
bool Boolean
Se TreatTinyAsBoolean=false, viene mappato come SByte. TreatTinyAsBoolean è true per impostazione predefinita )
Int16
char String String
date Datetime Datetime
datetime Datetime Datetime
decimal Decimal Decimal, String
double Double Double
double precision Double Double
enum String String
float Single Single
int Int32 Int32
int unsigned Int64 Int64
integer Int32 Int32
integer unsigned Int64 Int64
JSON String -
long varbinary Byte[] Byte[]
long varchar String String
longblob Byte[] Byte[]
longtext String String
mediumblob Byte[] Byte[]
mediumint Int32 Int32
mediumint unsigned Int64 Int64
mediumtext String String
numeric Decimal Decimal
real Double Double
set String String
smallint Int16 Int16
smallint unsigned Int32 Int32
text String String
time TimeSpan TimeSpan
timestamp Datetime Datetime
tinyblob Byte[] Byte[]
tinyint SByte Int16
tinyint unsigned Int16 Int16
tinytext String String
varchar String String
year Int Int

Proprietà dell'attività Lookup

Per altre informazioni sulle proprietà, vedere Attività Lookup.

Aggiornare la versione del driver MariaDB

Ecco i passaggi che consentono di aggiornare la versione del driver MariaDB:

  1. Nella pagina Modifica servizio collegato selezionare Consigliato in Versione driver e configurare il servizio collegato facendo riferimento alle proprietà del servizio collegato.

  2. Il mapping dei tipi di dati per il servizio collegato MariaDB più recente è diverso da quello per la versione legacy. Per informazioni sul mapping dei tipi di dati più recente, vedere Mapping dei tipi di dati per MariaDB.

  3. La versione più recente del driver v2 supporta più versioni di MariaDB. Per altre informazioni, vedere Funzionalità supportate.

La tabella seguente illustra le differenze di mapping dei tipi di dati tra il connettore MariaDB usando la versione consigliata del driver e l'uso della versione del driver legacy.

Tipo di dati MariaDB Tipo di dati del servizio provvisorio (con la versione del driver consigliata) Tipo di dati del servizio provvisorio (con la versione del driver legacy)
bit(1) UInt64 Booleano
bit(M), M>1 UInt64 Byte[]
bool Booleano Int16
JSON String Byte[]

Per un elenco degli archivi dati supportati come origini e sink dall'attività di copia, vedere archivi dati supportati.