MySQL
W tym temacie wyjaśniono, jak skonfigurować łączność z miejscem docelowym MySQL przy użyciu łącznika miejsca docelowego MySQL. MySQL może być docelową bazą danych tylko w zadaniu replikacji. Zanim będzie można się połączyć z miejscem docelowym MySQL, należy skonfigurować Wymagane uprawnienia w bazie danych. Jeśli łączysz się z MySQL przez Brama danych ruchu danych, musisz również zainstalować sterownik zgodnie z opisem w Konfiguracja sterowników.
Aby uzyskać informacje o ograniczeniach i kwestiach do uwzględnienia w związku z używaniem łącznika MySQL, zobacz temat Ograniczenia i uwagi.
Konfiguracja właściwości połączenia
Aby skonfigurować łącznik, wykonaj następujące czynności:
-
W obszarze Połączenia kliknij Utwórz połączenie.
-
Wybierz łącznik miejsca docelowego MySQL, a następnie podaj następujące ustawienia:
Miejsce docelowe danych
-
Brama danych: Podczas pracy z bramą Brama danych ruchu danych wybierz bramę danych, która będzie używana do testowania połączenia z miejscem docelowym MySQL. Powinna to być ta sama brama, która została użyta do uzyskania dostępu do źródła danych.
Informacja- To pole jest niedostępne w subskrypcji Qlik Talend Cloud Starter, ponieważ brama Brama danych ruchu danych jest nieobsługiwana na tym poziomie subskrypcji.
-
Należy też zainstalować odpowiedni sterownik na urządzeniu z Brama danych ruchu danych. Szczegółowe informacje zawiera temat Konfiguracja sterowników poniżej.
-
Dostawca usługi w chmurze: wybierz jedną z poniższych opcji odpowiednio do potrzeb:
-
Brak
- W przypadku lokalnego MySQL, MariaDB, Amazon Aurora lub Microsoft Azure Database for MySQL - Flexible Server.
- Podczas pracy bez Brama danych ruchu danych
-
Amazon RDS
W przypadku Amazon RDS for MariaDB lub Amazon RDS for MySQL.
-
Google Cloud
W przypadku Google Cloud SQL for MySQL
-
Microsoft Azure
W przypadku Microsoft Azure Database for MySQL.
-
-
Serwer: nazwa hosta lub adres IP komputera, na którym zainstalowana jest baza danych MySQL.
-
Port: Port używany do łączenia się z bazą danych. Wartością domyślną jest 3306.
Właściwości konta
Nazwa użytkownika i Hasło: nazwa użytkownika i hasło użytkownika uprawnionego do dostępu do bazy danych MySQL Server.
Właściwości bazy danych
- Typ docelowej bazy danych: Wybierz jedną z następujących opcji:
- Określona baza danych: Po wybraniu tej opcji wszystkie schematy źródłowe zostaną załadowane do określonej Bazy danych.
- Wiele baz danych: Po wybraniu tej opcji każdy ze schematów źródłowych zostanie załadowany do odpowiedniej bazy danych. Dodatkowo wszystkie tabele kontrolne zostaną domyślnie zreplikowane do nowego schematu o nazwie attrep_control. Więcej informacji na temat tabel kontrolnych zawiera temat Tabele kontrolne.
- Maksymalny rozmiar pliku (KB): Wybierz lub wpisz maksymalny rozmiar (w KB) pliku CSV, zanim zostanie załadowany do docelowej bazy danych MySQL. Wartość domyślna wynosi 32000 KB.
- Wątki z obciążeniem równoległym: Zwiększenie liczby wątków może poprawić wydajność podczas ładowania danych do docelowej bazy danych MySQL. Należy pamiętać, że ustawienie dużej liczby wątków może mieć niekorzystny wpływ na wydajność bazy danych, ponieważ do każdego wątku jest wymagane osobne połączenie.
Właściwości wewnętrzne
Właściwości wewnętrzne są przeznaczone dla specjalnych przypadków, w związku z czym nie są ukazywane w oknie dialogowym. Należy ich używać tylko na polecenie Qlik Pomocy technicznej.
Użyj przycisków i znajdujących się po prawej stronie pól, aby dodać lub usunąć właściwości zgodnie z potrzebą.
Nazwa
Nazwa wyświetlana dla połączenia.
Wymagania wstępne
Wymagane uprawnienia
Użytkownik określony w ustawieniach łącznika musi mieć:
- Dostęp do konta MySQL
- Uprawnienia do odczytu/zapisu w bazie danych MySQL
- Następujące uprawnienia dla każdego schematu miejsca docelowego biorącego udział w replikacji:
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Konfiguracja sterowników
W tej sekcji opisano, jak zainstalować wymagany driver. Proces ten obejmuje uruchomienie skryptu, który automatycznie pobierze, zainstaluje i skonfiguruje wymagany driver. W razie potrzeby można także uruchamiać skrypty, aby zaktualizować i odinstalować driver.
Przygotowanie instalacji
-
Na serwerze bramy Ruch danych musi być zainstalowane środowisko Python 3.6 lub nowsze.
Środowisko Python jest preinstalowane w większości dystrybucji systemu Linux. Aby sprawdzić, która wersja środowiska Pythona jest zainstalowana w Twoim systemie, uruchom następujące polecenie:
python3 --version
Instalowanie aplikacji driver
Aby pobrać i zainstalować driver:
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./install mysql
Jeśli driver nie może zostać pobrany (ze względu na ograniczenia dostępu lub problemy techniczne), zostanie wyświetlony komunikat informujący, skąd pobrać driver i dokąd go skopiować na urządzenie bramy Ruch danych. Po wykonaniu tej czynności ponownie uruchom polecenie install mysql.
W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.
-
Wykonaj jedną z poniższych czynności:
- Naciśnij klawisz [Enter] wielokrotnie, aby powoli przewinąć treść umowy licencyjnej.
- Naciśnij klawisz spacji wielokrotnie, aby szybko przewinąć treść umowy licencyjnej.
- Naciśnij klawisz „q”, aby zamknąć tekst umowy licencyjnej i wyświetlić opcje jej akceptacji.
-
Wykonaj jedną z poniższych czynności:
- Wpisz „y” i naciśnij klawisz [Enter], aby zaakceptować umowę licencyjną i rozpocząć instalację.
- Wpisz „n” i naciśnij klawisz [Enter], aby odrzucić umowę licencyjną i zakończyć instalację.
-
Wpisz „v” i naciśnij klawisz [Enter], aby ponownie wyświetlić umowę licencyjną.
Zostanie zainstalowany driver.
driver — aktualizacja
Uruchom polecenie aktualizacji, jeśli chcesz odinstalować driver w poprzedniej wersji, zanim zainstalujesz dostarczony driver.
Aby pobrać i zaktualizować driver:
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./update mysql
Jeśli driver nie może zostać pobrany (ze względu na ograniczenia dostępu lub problemy techniczne), zostanie wyświetlony komunikat informujący, skąd pobrać driver i dokąd go skopiować na urządzenie bramy Ruch danych. Po wykonaniu tej czynności ponownie uruchom polecenie update mysql.
W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.
-
Wykonaj jedną z poniższych czynności:
- Naciśnij klawisz [Enter] wielokrotnie, aby powoli przewinąć treść umowy licencyjnej.
- Naciśnij klawisz spacji wielokrotnie, aby szybko przewinąć treść umowy licencyjnej.
- Naciśnij klawisz „q”, aby zamknąć tekst umowy licencyjnej i wyświetlić opcje jej akceptacji.
-
Wykonaj jedną z poniższych czynności:
- Wpisz „y” i naciśnij klawisz [Enter], aby zaakceptować umowę licencyjną i rozpocząć instalację.
- Wpisz „n” i naciśnij klawisz [Enter], aby odrzucić umowę licencyjną i zakończyć instalację.
- Wpisz „v” i naciśnij klawisz [Enter], aby wyświetlić umowę licencyjną od początku.
Stary driver zostanie odinstalowany, a zainstalowany zostanie nowy driver.
driver — odinstalowywanie
Uruchom polecenie odinstalowania, jeśli chcesz odinstalować driver.
Aby odinstalować driver:
-
Zatrzymaj wszystkie zadania skonfigurowane do korzystania z tego łącznika.
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./uninstall mysql
Sterownik driverzostanie odinstalowany.
Instalowanie sterownika ręcznie
Sterownik driver należy instalować ręcznie tylko wtedy, gdy automatyczna instalacja nie zakończyła się pomyślnie.
Po zainstalowaniu Brama danych ruchu danych pobierz sterownik mysql-connector-odbc-<wersja>.x86_64.rpm. Łącze do bezpośredniego pobrania obsługiwanej wersji można znaleźć w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Po zakończeniu pobierania skopiuj plik RPM na komputer z Brama danych ruchu danych.
Na serwerze Data Movement gateway otwórz wiersz poleceń i wykonaj następujące czynności:
-
Zatrzymaj usługę Data Movement gateway:
sudo systemctl stop repagent
-
Opcjonalnie potwierdź, że usługa została zatrzymana:
sudo systemctl status repagent
Status powinien być następujący:
Active: inactive (dead) since <timestamp> ago
- Zainstaluj sterownik na urządzeniu Data Movement gateway.
-
Zmień katalog roboczy na <Data Movement gateway-Install-Dir>/bin.
-
Skopiuj lokalizację sterownika do plikusite_arep_login.sh:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
Spowoduje to dodanie sterownika do "LD_LIBRARY_PATH" i zaktualizuje lokalizację sterownika w pliku site_arep_login.sh.
-
Opcjonalnie potwierdź, że lokalizacja sterownika została skopiowana:
cat site_arep_login.sh
-
Upewnij się, że w pliku /etc/odbcinst.ini znajduje się wpis dotyczący MySQL, jak w poniższym przykładzie:
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Uruchom usługę Data Movement gateway:
sudo systemctl start repagent
-
Opcjonalnie potwierdź, że usługa została uruchomiona:
sudo systemctl status repagent
Status powinien być następujący:
Active: active (running) since <timestamp> ago
Ograniczenia i uwagi
W przypadku używania MySQL jako celu replikacji obowiązują następujące ograniczenia:
-
Jeśli podczas replikacji do docelowej bazy danych MariaDB wartość DATETIME jest ustawiona na zero, należy zdefiniować transformację, która zastąpi DATETIME prawidłowymi wartościami. Na przykład:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
InformacjaTo ograniczenie nie dotyczy Microsoft Azure Database for MySQL. - Ze względu na sposób działania MySQL podczas ładowania danych do miejsca docelowego MySQL podczas zadania pełnego ładowania zduplikowane błędy klucza nie będą zgłaszane w dziennikach.
-
Podczas aktualizowania wartości kolumny do jej istniejącej wartości zwracany jest z MySQL komunikat o zerowej liczbie wierszy, których to dotyczy (w przeciwieństwie do Oracle i Microsoft SQL Server, które dokonują aktualizacji jednego wiersza).
Spowoduje to wygenerowanie wpisu w attrep_apply_exceptions Control Table i następującego ostrzeżenia:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
Ze względu na problem z MySQL 5.7 (który został rozwiązany w wersji 8.0), znaków wielobajtowych nie można wstawiać do kolumn typu TEXT, gdy pełne ładowanie wykorzystuje pliki CSV. W związku z tym, jeśli docelowym punktem końcowym jest MySQL 5.7, a zreplikowana tabela zawiera kolumny typu TEXT ze znakami wielobajtowymi UTF-8, tabela docelowa może być pusta.
Obejście:
Wybierz ustawienia łącznika, a następnie ustaw parametr wewnętrzny loadUsingCSV na FALSE. Uwaga: może to mieć wpływ na wydajność.
-
Jeśli chcesz replikować 4-bajtowe znaki emoji, zestaw znaków schematu miejsca docelowego musi być ustawiony na utf8mb4.
Typy danych
Informacje o natywnym typie danych są zachowywane i wyświetlane w widokach zestawu danych w kolumnie Natywny typ danych. Jeśli kolumna nie jest widoczna, otwórz selektor kolumn w widoku zestawu danych i wybierz kolumnę Natywny typ danych.
Typy danych Qlik Cloud | Typy danych MySQL |
---|---|
BOOL |
BOOL |
BYTES |
Jeżeli długość => 1 i =< 8095, to: VARBINARY (Length) Jeżeli długość => 8096 i =< 65535, to: BLOB Jeżeli długość => 65536 i =< 16777215, to: MEDIUMBLOB Jeżeli długość => 16777216 i =< 2147483647, to: LONGBLOB |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Jeżeli skala => 0 i =< 6, to: DECIMAL (p,s) Jeżeli skala => 7 i =< 12, to: VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
Jeżeli skala => 0 i =< 30, to: DECIMAL (p,s) Jeżeli skala => 31 i =< 100, to: VARCHAR (45) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
STRING |
Jeżeli długość => 1 i =< 8095, to: VARCHAR (Length) Jeżeli długość => 8096 i =< 65535, to: TEXT Jeżeli długość => 65536 i =< 16777215, to: MEDIUMTEXT Jeżeli długość => 16777216 i =< 2147483647, to: LONGTEXT |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Jeżeli długość => 1 i =< 8095, to: VARCHAR (Length) Jeżeli długość => 8096 i =< 65535, to: TEXT Jeżeli długość => 65536 i =< 16777215, to: MEDIUMTEXT Jeżeli długość => 16777216 i =< 2147483647, to: LONGTEXT |
BLOB |
Kiedy opcja Zezwalaj na nieograniczony rozmiar obiektów LOB jest włączona:
Kiedy opcja Ogranicz rozmiar obiektów LOB do jest włączona:
Więcej informacji na temat ograniczania rozmiaru obiektów LOB zawiera temat Metadata. |
NCLOB |
Kiedy opcja Zezwalaj na nieograniczony rozmiar obiektów LOB jest włączona:
Kiedy opcja Ogranicz rozmiar obiektów LOB do jest włączona:
Więcej informacji na temat ograniczania rozmiaru obiektów LOB zawiera temat Metadata. |
CLOB |
Kiedy opcja Zezwalaj na nieograniczony rozmiar obiektów LOB jest włączona:
Kiedy opcja Ogranicz rozmiar obiektów LOB do jest włączona:
Więcej informacji na temat ograniczania rozmiaru obiektów LOB zawiera temat Metadata. |