Vai al contenuto principale Passa a contenuto complementare

MySQL:

Questa sezione spiega come configurare la connettività a una destinazione MySQL utilizzando il connettore Destinazione MySQL. È possibile utilizzare MySQL come database di destinazione solo in un'attività di replica. Prima di potersi connettere a una destinazione MySQL, è necessario configurare Autorizzazioni richieste nel database. Se ci si connette a un MySQL tramite Gateway di Data Movement, è necessario anche installare il driver come descritto in Configurazione del driver.

Per informazioni sulle limitazioni e per considerazioni sull'utilizzo del connettore MySQL, vedere Limiti e considerazioni.

Impostazione delle proprietà di connessione

Questa sezione descrive le proprietà di connessione disponibili. Tutte le proprietà sono obbligatorie se non diversamente indicato.

Destinazione dati

  • Gateway dati: Selezionare il Gateway di Data Movement che verrà utilizzato per testare la connessione alla destinazione MySQL. Questo dovrebbe essere lo stesso gateway utilizzato per accedere alla sorgente dati.

    Nota informatica
    • Richiede Gateway di Data Movement 2023.5.10 o versione successiva.
    • Inoltre, è necessario installare il driver appropriato sul computer Gateway di Data Movement. Per dettagli, vedere Configurazione del driver qui sotto.

  • Provider di servizi cloud: Scegliere una delle seguenti opzioni in base alle necessità:

    • Per MySQL in loco, MariaDB, Amazon Aurora o il database Microsoft Azure Database per MySQL - Flexible Server.

    • Per Amazon RDS per MariaDB o Amazon RDS per MySQL.

    • Per Google Cloud SQL per MySQL.

    • Per Microsoft Azure Database per MySQL.

  • Server: il nome host o l'indirizzo IP del computer su cui è installato il database MySQL.

  • Porta: la porta da utilizzare durante la connessione al database. L'impostazione predefinita è 3306.

Proprietà dell'account

User Name e Password: il nome utente e la password di un utente autorizzato ad accedere al database MySQL Server.

Proprietà del database

  • Target Database Type: Scegliere una delle seguenti opzioni elencate di seguito.
    • Specific database: quando questa opzione è selezionata, tutti gli schemi di origine verranno caricati nel Database specificato.
    • Multiple databases: quando questa opzione è selezionata, ogni schema di origine verrà caricato nel database corrispondente. Inoltre, per impostazione predefinita, tutte le Tabelle di controllo verranno effettuare la replica in un nuovo schema denominato attrep_control. Per maggiori informazioni sulle Tabelle di controllo, vedere Tabelle di controllo.
  • Max file size (KB): selezionare o digitare le dimensioni massime (in KB) di un file CSV prima di caricarlo in un database di destinazione MySQL. Il valore predefinito è 32000 KB.
  • Parallel load threads: se si aumenta il numero di thread, è possibile migliorare le prestazioni quando si caricano dati sul database di destinazione MySQL. Notare che se si imposta un gran numero di thread, questi potrebbero avere un effetto avverso sulle prestazioni del database, poiché per ogni thread è richiesta una connessione separata.

Proprietà interne

Le proprietà interne servono per casi d'uso speciali e pertanto non vengono visualizzate nella finestra di dialogo. Gli utenti devono utilizzarle solo se indicato dal Supporto di Qlik.

Usare i pulsanti Crea nuovo e Annulla a destra del campo per aggiungere o rimuovere proprietà in base alle esigenze.

Nome

Il nome visualizzato per la connessione.

Prerequisiti

Autorizzazioni richieste

All'utente specificato nelle impostazioni del connettore devono essere concessi i seguenti permessi:

  • Accesso all'account MySQL
  • Autorizzazioni di lettura/scrittura nel database MySQL
  • Le seguenti autorizzazioni per ogni schema di destinazione interessato nella replica:
    • ALTER
    • CREATE
    • CREATE TEMPORARY TABLES
    • DELETE
    • DROP
    • INSERT
    • SELECT
    • UPDATE

Configurazione del driver

Questa sezione descrive come installare il driver richiesto. Il processo prevede l'esecuzione di uno script che scarica, installa e configura automaticamente il driver richiesto. È inoltre possibile eseguire script per aggiornare e disinstallare il driver secondo le necessità.

  • Assicurarsi che Python 3.6.x o versione successiva sia installato sul server del gateway di Spostamento dati.

    Python è preinstallato nella maggior parte delle distribuzioni Linux. È possibile verificare quale versione di Python è installata sul sistema, eseguendo il seguente comando:

    python3 --version

Per scaricare e installare driver:

  1. Sul computer gateway Spostamento dati, cambiare la directory di lavoro in:

    opt/qlik/gateway/movement/drivers/bin

  2. Eseguire il comando seguente:

    Sintassi:

    ./install mysql

    Se non è possibile scaricare driver (a causa di restrizioni di accesso o problemi tecnici), verrà visualizzato un messaggio con le istruzioni su dove scaricare il driver e copiarlo sul computer gateway Spostamento dati. Una volta completata l'operazione, eseguire nuovamente il comando install mysql.

    Altrimenti, verrà visualizzato l'EULA del driver.

  3. Effettuare una delle seguenti operazioni:

    • Premere ripetutamente [Invio] per scorrere lentamente l'EULA.
    • Premere ripetutamente la barra spaziatrice per scorrere rapidamente l'EULA.
    • Premere q per uscire dal testo della licenza e visualizzare le opzioni di accettazione dell'EULA.
  4. Effettuare una delle seguenti operazioni:

    • Digitare "y" e premere [Invio] per accettare l'EULA e avviare l'installazione.
    • Digitare "n" e premere [Invio] per rifiutare l'EULA e uscire dall'installazione.
    • Digitare "v" e premere [Invio] per visualizzare nuovamente l'EULA.

  5. Il driver verrà installato.

Eseguire il comando aggiorna se si desidera disinstallare le versioni precedenti del driver prima di installare il driver fornito.

Per scaricare e aggiornare driver:

  1. Sul computer gateway Spostamento dati, cambiare la directory di lavoro in:

    opt/qlik/gateway/movement/drivers/bin

  2. Eseguire il comando seguente:

    Sintassi:

    ./update mysql

    Se non si riesce a scaricare il driver (a causa di restrizioni di accesso o problemi tecnici), verrà visualizzato un messaggio con le istruzioni su dove scaricare il driver e copiarlo sul computer gateway Spostamento dati. Una volta completata l'operazione, eseguire nuovamente il comando update mysql.

    Altrimenti, verrà visualizzato l'EULA del driver.

  3. Effettuare una delle seguenti operazioni:

    • Premere ripetutamente [Invio] per scorrere lentamente l'EULA.
    • Premere ripetutamente la barra spaziatrice per scorrere rapidamente l'EULA.
    • Premere q per uscire dal testo della licenza e visualizzare le opzioni di accettazione dell'EULA.
  4. Effettuare una delle seguenti operazioni:

    • Digitare "y" e premere [Invio] per accettare l'EULA e avviare l'installazione.
    • Digitare "n" e premere [Invio] per rifiutare l'EULA e uscire dall'installazione.
    • Digitare "v" e premere [Invio] per rivedere l'EULA dall'inizio.
  5. Il vecchio driver verrà disinstallato e il nuovo driver verrà installato.

Eseguire il comando di disinstallazione se si desidera disinstallare il driver.

Per disinstallare il driver:

  1. interrompere tutte le attività configurate per utilizzare il connettore.

  2. Sul computer gateway Spostamento dati, cambiare la directory di lavoro in:

    opt/qlik/gateway/movement/drivers/bin

  3. Eseguire il comando seguente:

    Sintassi:

    ./uninstall mysql

    Il driver verrà disinstallato.

Installazione manuale del driver

Si consiglia di tentare l'installazione manuale di driver nel caso in cui l'installazione automatizzata non venissa completata.

Dopo aver installato Gateway di Data Movement, scaricare il driver mysql-connector-odbc-<version>.x86_64.rpm. È possibile trovare un collegamento di download diretto alla versione supportata in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Una volta completato il download, copiare il file RPM nel computer Gateway di Data Movement.

Quindi, sul server di gateway di Data Movement, aprire un prompt della shell e procedere come segue:

  1. Arrestare il servizio gateway di Data Movement:

    sudo systemctl stop repagent

  2. Facoltativamente, confermare che il servizio è stato interrotto:

    sudo systemctl status repagent

    Lo stato dovrebbe essere il seguente:

    Active: inactive (dead) since <timestamp> ago

  3. Installare il driver sulla macchina gateway di Data Movement.
  4. Modifica la directory di lavoro in <gateway di Data Movement_Install_Dir>/bin.

  5. Copia la posizione del driver nel file site_arep_login.sh:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh

    Questo aggiungerà il driver a "LD_LIBRARY_PATH" e aggiornerà la sua posizione nel file site_arep_login.sh.

  6. Facoltativamente, conferma che la posizione del driver è stata copiata:

    cat site_arep_login.sh
  7. Assicurarsi che il file /etc/odbcinst.ini contenga una voce per MySQL, come nell'esempio seguente:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. Avviare il servizio gateway di Data Movement:

    sudo systemctl start repagent

  9. Facoltativamente, confermare che il servizio si è avviato:

    sudo systemctl status repagent

    Lo stato dovrebbe essere il seguente:

    Active: active (running) since <timestamp> ago

Limiti e considerazioni

Le seguenti limitazioni si applicano quando si utilizza MySQL come una destinazione per la replica:

  • Quando si effettua la replica su un database MariaDB di destinazione, se il valore DATETIME è impostato su zero, è necessario definire una trasformazione che sostituisca DATETIME con valori validi. Ad esempio:

    replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')

    Nota informaticaQuesta limitazione non si applica al database Microsoft Azure per MySQL.
  • Dovuto al modo di operare di MySQL, quando si caricano i dati su una destinazione MySQL durante un'attività di caricamento completo, gli errori chiave duplicati non verranno segnalati nei registri.
  • Quando si aggiorna il valore di una colonna al valore esistente, le righe zero interessate vengono restituite da MySQL (a differenza di Oracle e Microsoft SQL Server, che eseguono l'aggiornamento di una riga).

    Viene quindi generata una voce in attrep_apply_exceptions Control Table con il seguente avviso:

    Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.

  • A causa di un problema con MySQL 5.7 (risolto nella versione 8.0), i caratteri multibyte non possono essere inseriti nelle colonne TEXT quando il caricamento completo utilizza file CSV. Di conseguenza, se l'endpoint di destinazione è MySQL 5.7 e una tabella replicata contiene colonne TEXT con caratteri UTF-8 multibyte, la tabella di destinazione potrebbe essere vuota.

     

    Soluzione:

    Nelle impostazioni del connettore, impostare il parametro interno loadUsingCSV su FALSE. Notare che questa operazione può avere un impatto sulle prestazioni.

  • Se si desidera replicare dei caratteri emoji da 4 byte, il set di caratteri schema di destinazione deve essere impostato su utf8mb4.

Tipi di dati

La informazioni relative tipo di dati nativo vengono mantenute e vengono visualizzate nella colonna Tipo di dati nativo nelle visualizzazioni del set di dati. Se la colonna non è visibile, è necessario aprire lo strumento di selezione delle colonne della visualizzazione del set di dati e selezionare la colonna Tipo di dati nativo.

Tipi di dati supportati
Tipi di dati Qlik Cloud Tipi di dati MySQL

BOOL

BOOL

BYTES

Se la lunghezza è => 1 e =< 8095, allora:

VARBINARY (Length)

Se la lunghezza è => 8096 e =< 65535, allora:

BLOB

Se la lunghezza è => 65536 e =< 16777215, allora:

MEDIUMBLOB

Se la lunghezza => 16777216 e =< 2147483647, allora:

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

If scale is => 0 and =< 6, then:

DECIMAL (p,s)

If scale is => 7 and =< 12, then:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Se la scala è => 0 e =< 37, allora:

DECIMAL (p,s)

Se la scala è => 31 e =< 100, allora:

VARCHAR (45)

REAL4

FLOAT

REAL8

DOUBLE

STRING

Se la lunghezza è => 1 e =< 8095, allora:

VARCHAR (Length)

Se la lunghezza è => 8096 e =< 65535, allora:

TEXT

Se la lunghezza è => 65536 e =< 16777215, allora:

MEDIUMTEXT

Se la lunghezza => 16777216 e =< 2147483647, allora:

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Se la lunghezza è => 1 e =< 8095, allora:

VARCHAR (Length)

Se la lunghezza è => 8096 e =< 65535, allora:

TEXT

Se la lunghezza è => 65536 e =< 16777215, allora:

MEDIUMTEXT

Se la lunghezza => 16777216 e =< 2147483647, allora:

LONGTEXT

BLOB

Quando l'opzione Consenti dimensioni LOB illimitate è abilitata:

  • LONGBLOB

Quando l'opzione Limita dimensione LOB a è abilitata:

  • Se il valore specificato è di 63 KB o inferiore, allora:

    BLOB

  • Se il valore specificato è di 64 KB o maggiore, allora:

    LONGBLOB

Per ulteriori informazioni su come limitare la dimensione LOB, vedere Metadata.

NCLOB

Quando l'opzione Consenti dimensioni LOB illimitate è abilitata:

  • TEXT

Quando l'opzione Limita dimensione LOB a è abilitata:

  • Se il valore specificato è di 63 KB o inferiore, allora:

    TEXT

  • Se il valore specificato è di 64 KB o maggiore, allora:

    LONGTEXT

Per ulteriori informazioni su come limitare la dimensione LOB, vedere Metadata.

CLOB

Quando l'opzione Consenti dimensioni LOB illimitate è abilitata:

  • TEXT CHARACTER SET UTF-16

Quando l'opzione Limita dimensione LOB a è abilitata:

  • Se il valore specificato è di 63 KB o inferiore, allora:

    TEXT CHARACTER SET UTF-16

  • Se il valore specificato è di 64 KB o maggiore, allora:

    LONGTEXT CHARACTER SET UTF-16

Per ulteriori informazioni su come limitare la dimensione LOB, vedere Metadata.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!