MySQL
Bu konuda, MySQL hedef bağlayıcısı kullanılarak bir MySQL hedefine bağlantının nasıl yapılandırılacağı açıklanmaktadır. MySQL sadece çoğaltma görevlerinde hedef veri tabanı olarak kullanılabilir. Bir MySQL hedefine bağlanmadan önce veritabanındaki Gerekli izinler öğesini yapılandırmanız gerekir. MySQL'e Veri Hareketi ağ geçidi üzerinden bağlanıyorsanız Sürücü kurulumu bölümünde açıklandığı gibi sürücüyü de yüklemeniz gerekir.
MySQL Hedef bağlayıcısını kullanırken dikkat edilmesi gereken hususlar ve sınırlamalar hakkında bilgi için bkz. Sınırlamalar ve dikkate alınacak noktalar.
Bağlantı özelliklerini ayarlama
Bağlayıcıyı yapılandırmak için aşağıdakileri yapın:
-
Bağlantılar'da Bağlantı oluştur'a tıklayın.
-
MySQL hedef bağlayıcısını seçin ve ardından aşağıdaki ayarları sağlayın:
Veri hedefi
-
Veri ağ geçidi: Veri Hareketi ağ geçidi ile çalışırken MySQL hedefine bağlantıyı test etmek için kullanılacak veri ağ geçidini seçin. Bu, veri kaynağına erişmek için kullanılan ağ geçidiyle aynı olmalıdır.
Bilgi notu- Veri Hareketi ağ geçidi bu abonelik kademesiyle desteklenmediğinden bu alan, Qlik Talend Cloud Başlangıç Kılavuzu aboneliğiyle kullanılamaz.
-
Veri Hareketi ağ geçidi makinesine de uygun sürücüyü yüklemeniz gerekir. Ayrıntılar için aşağıdaki Sürücü kurulumu öğesine bakın.
-
Bulut sağlayıcı: Aşağıdakilerden uygun olan birini seçin:
-
Yok
- Şirket içi MySQL, MariaDB, Amazon Aurora veya Microsoft Azure Database for MySQL - Flexible Server için.
- Veri Hareketi ağ geçidi olmadan çalışırken
-
Amazon RDS
Amazon RDS for MariaDB veya Amazon RDS for MySQL için.
-
Google Cloud
Google Cloud SQL for MySQL için.
-
Microsoft Azure
Microsoft Azure Database for MySQL için.
-
-
Sunucu: MySQL veritabanının yüklü olduğu bilgisayarın IP adresi veya konak adı.
-
Bağlantı noktası: Veri tabanına bağlanırken kullanılacak bağlantı noktası. Varsayılan: 3306.
Hesap özellikleri
Kullanıcı Adı ve Parola: MySQL Server veritabanına erişim yetkisi olan bir kullanıcının kullanıcı adı ve parolası.
Veritabanı özellikleri
- Hedef Veri Türü: Aşağıdakilerden birini seçin:
- Belirli bir veri tabanı: Bu seçenek belirlendiğinde tüm kaynak şemaları belirtilen Veri tabanı'na yüklenecektir.
- Birden fazla veri tabanı: Bu seçenek belirlendiğinde kaynak şemalarının her biri ilgili veri tabanına yüklenecektir. Ayrıca varsayılan olarak tüm Kontrol Tabloları, attrep_control adlı yeni bir şemaya çoğaltılacaktır. Kontrol Tabloları hakkında daha fazla bilgi için bkz. Kontrol tabloları.
- Maks. dosya boyutu (KB): MySQL hedef veri tabanına yüklenmeden önce bir CSV dosyasının maksimum boyutunu (KB cinsinden) seçin veya yazın. Varsayılan değer 32000 KB'tır.
- Paralel yükleme iş parçacıkları: İş parçacıklarının sayısının artırılması, verileri MySQL hedef veri tabanına yüklerken performansı iyileştirebilir. Her bir iş parçacığı ayrı bir bağlantı gerektirdiğinden yüksek sayıda iş parçacığı ayarlamak, veri tabanı performansı üzerinde olumsuz etkiye sahip olabilir.
Dahili özellikler
Dahili özellikler özel kullanım durumları içindir ve bu nedenle diyalog penceresinde gösterilmez. Bunları yalnızca Qlik Desteği tarafından talimat verildiği takdirde kullanmalısınız.
Gerektiği takdirde özellik eklemek veya kaldırmak için alanların sağındaki ve düğmelerini kullanın.
Ad
Bağlantının görünen adı.
Önkoşullar
Gerekli izinler
Bağlayıcı ayarlarında belirtilen kullanıcıya şunların verilmesi gerekir:
- MySQL hesabına erişim
- MySQL veri tabanında yazma/okuma ayrıcalıkları
- Çoğaltmaya dahil olan her bir hedef şema için aşağıdaki izinler:
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Sürücü kurulumu
Bu bölümde, gerekli driver öğesinin nasıl yükleneceği açıklanmıştır. Sürece, gerekli driver öğesini otomatik olarak indirecek, yükleyecek ve yapılandıracak bir komut dosyası çalıştırma işlemi dahildir. Gerektiğinde driver öğesini güncellemek ve kaldırmak için de komut dosyaları çalıştırabilirsiniz.
Yüklemeyi hazırlama
-
Python 3.6 veya daha yeni bir sürümünün Veri Hareketi ağ geçidi sunucusunda yüklü olduğundan emin olun.
Python, çoğu Linux dağıtımında önceden yüklenmiş şekilde sunulur. Aşağıdaki komutu çalıştırarak sisteminizde yüklü olan Python sürümünü öğrenebilirsiniz:
python3 --version
driver uygulamasını yükleme
driver öğesini indirip yüklemek için:
-
Veri Hareketi ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:
opt/qlik/gateway/movement/drivers/bin
-
Şu komutu çalıştırın:
Söz Dizimi:
./install mysql
driver yüklenemiyorsa (erişim kısıtlamaları veya teknik sorunlar nedeniyle) driver öğesini nereden indireceğiniz ve Veri Hareketi ağ geçidi makinesinde nereye kopyalayacağınız konusunda size talimat veren bir mesaj görünür. Bu işlemi yaptıktan sonra install mysql komutunu tekrar çalıştırın.
Aksi durumda, driver öğesinin EULA'sı görünür.
-
Şunlardan birini yapın:
- EULA'da yavaşça gezinmek için [Enter] tuşuna tekrar tekrar basın.
- EULA'da hızlı bir şekilde gezinmek için Boşluk tuşuna tekrar tekrar basın.
- Lisans metninden çıkmak ve EULA kabul seçeneklerine ulaşmak için q tuşuna basın.
-
Şunlardan birini yapın:
- EULA'yı kabul etmek ve yükleme işlemini başlatmak için "y" yazıp [Enter] tuşuna basın.
- EULA'yı reddetmek ve yükleme işleminden çıkmak için "n" yazıp [Enter] tuşuna basın.
-
EULA'yı tekrar görüntülemek için "v" yazıp [Enter] tuşuna basın.
driver yüklenir.
driver öğesini güncelleme
Sağlanan driver öğesini yüklemeden önce driver öğesinin eski sürümlerini kaldırmak istiyorsanız güncelleme komutunu çalıştırın.
driver öğesini indirip güncellemek için:
-
Veri Hareketi ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:
opt/qlik/gateway/movement/drivers/bin
-
Şu komutu çalıştırın:
Söz Dizimi:
./update mysql
driver yüklenemiyorsa (erişim kısıtlamaları veya teknik sorunlar nedeniyle) driver öğesini nereden indireceğiniz ve Veri Hareketi ağ geçidi makinesinde nereye kopyalayacağınız konusunda size talimat veren bir mesaj görünür. Bu işlemi yaptıktan sonra update mysql komutunu tekrar çalıştırın.
Aksi durumda, driver öğesinin EULA'sı görünür.
-
Şunlardan birini yapın:
- EULA'da yavaşça gezinmek için [Enter] tuşuna tekrar tekrar basın.
- EULA'da hızlı bir şekilde gezinmek için Boşluk tuşuna tekrar tekrar basın.
- Lisans metninden çıkmak ve EULA kabul seçeneklerine ulaşmak için q tuşuna basın.
-
Şunlardan birini yapın:
- EULA'yı kabul etmek ve yükleme işlemini başlatmak için "y" yazıp [Enter] tuşuna basın.
- EULA'yı reddetmek ve yükleme işleminden çıkmak için "n" yazıp [Enter] tuşuna basın.
- EULA'yı baştan incelemek için "v" yazıp [Enter] tuşuna basın.
Eski driver kaldırılacak ve yeni driver yüklenecektir.
driver öğesini kaldırma
driver öğesini kaldırmak istiyorsanız kaldırma komutunu çalıştırın.
driver öğesini kaldırmak için:
-
Bu bağlayıcıyı kullanmak için yapılandırılan tüm görevleri durdurun.
-
Veri Hareketi ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:
opt/qlik/gateway/movement/drivers/bin
-
Şu komutu çalıştırın:
Söz Dizimi:
./uninstall mysql
driver kaldırılacaktır.
Sürücüyü manuel olarak yükleme
driver öğesini manuel olarak yüklemeyi yalnızca otomatik sürücü yükleme başarıyla tamamlanmadığında denemelisiniz.
Veri Hareketi ağ geçidi yüklendikten sonra mysql-connector-odbc-<version>.x86_64.rpm sürücüsünü indirin. /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml dizininde binary-artifacts altında desteklenen bir sürümün doğrudan indirme bağlantısını bulabilirsiniz. İndirme tamamlandığında RPM'yi Veri Hareketi ağ geçidi makinesine kopyalayın.
Veri Hareketi ağ geçidi sunucusunda bir kabuk istemi açıp şunu yapın:
-
Veri Hareketi ağ geçidi hizmetini durdurun:
sudo systemctl stop repagent
-
İsteğe bağlı olarak hizmetin durduğunu doğrulayın:
sudo systemctl status repagent
Durum aşağıdaki gibi olmalıdır:
Active: inactive (dead) since <timestamp> ago
- Sürücüyü Veri Hareketi ağ geçidi makinesine yükleyin.
-
<Veri Hareketi ağ geçidi-Yukleme-Dizini>/bin dizinine geçin.
-
Sürücü konumunu site_arep_login.sh dosyasına kopyalayın:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
Bu, sürücüyü "LD_LIBRARY_PATH" değişkenine ekler ve site_arep_login.sh dosyasında sürücü konumunu günceller.
-
İsteğe bağlı olarak sürücü konumunun kopyalandığını doğrulayın:
cat site_arep_login.sh
-
/etc/odbcinst.ini dosyasının, aşağıdaki örnekteki gibi bir MySQL girişi içerdiğinden emin olun:
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Veri Hareketi ağ geçidi hizmetini başlatın:
sudo systemctl start repagent
-
İsteğe bağlı olarak hizmetin başladığını doğrulayın:
sudo systemctl status repagent
Durum aşağıdaki gibi olmalıdır:
Active: active (running) since <timestamp> ago
Sınırlamalar ve dikkate alınacak noktalar
Çoğaltma hedefi olarak MySQL kullanılırken aşağıdaki kısıtlamalar uygulanır:
-
MariaDB hedef veri tabanına çoğaltırken DATETIME değeri sıfır olarak ayarlanırsa DATETIME değerinin yerine geçerli değerleri koyan bir dönüştürme tanımlamanız gerekir. Örneğin:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
Bilgi notuBu sınırlama MySQL için Microsoft Azure Veritabanı için geçerli değildir. - MySQL öğesinin çalışma şekli nedeniyle, Tam Yükleme görevi sırasında MySQL hedefine veri yüklerken temel hatalar günlüklere bildirilmeyecektir.
-
Bir sütunun değerini mevcut değeriyle güncellerken MySQL öğesinden etkilenen sıfır satırları döndürülür (bir satırı güncelleyen Oracle ve Microsoft SQL Server'ın aksine).
Bu, attrep_apply_exceptions Control Table içinde bir giriş ve aşağıdaki uyarıyı oluşturur:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
MySQL 5.7 ile ilgili (8.0 sürümünde çözülen) bir sorun nedeniyle, Tam Yükleme işlemi CSV dosyalarını kullanırken TEXT sütunlarına çok baytlı karakterler eklenemez. Sonuç olarak, hedef uç nokta MySQL 5.7 sürümüyse ve çoğaltılmış bir tabloda UTF-8 çok baytlı karakterleri içeren TEXT sütunları varsa hedef tablo boş olabilir.
Geçici Çözüm:
Bağlayıcı ayarları'nda loadUsingCSV dahili parametresini FALSE olarak ayarlayın. Bunun performansı etkileyebileceğini unutmayın.
-
4 baytlık emoji karakterlerini çoğaltmanız gerekiyorsa hedef şema karakteri utf8mb4 olarak ayarlanmalıdır.
Veri türleri
Yerel veri türü bilgileri korunur ve veri kümesi görünümlerinde Yerel veri türü sütununda görüntülenir. Sütun görünür değilse veri kümesi görünümünün sütun seçicisini açmanız ve Yerel veri türü sütununu seçmeniz gerekir.
Qlik Cloud veri türleri | MySQL veri türleri |
---|---|
BOOL |
BOOL |
BYTES |
Uzunluk => 1 ve =< 8095 ise: VARBINARY (Uzunluk) Uzunluk => 8096 ve =< 65535 ise: BLOB Uzunluk => 65536 ve =< 16777215 ise: MEDIUMBLOB Uzunluk => 16777216 ve =< 2147483647 ise: LONGBLOB |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Ölçek => 0 ve =< 6 ise o zaman: DECIMAL (p,s) Ölçek => 7 ve =< 12 o zaman: VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
Ölçek => 0 ve =< 30 ise: DECIMAL (p,s) Ölçek => 31 ve =< 100 ise: VARCHAR (45) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
STRING |
Uzunluk => 1 ve =< 8095 ise: VARCHAR (Uzunluk) Uzunluk => 8096 ve =< 65535 ise: TEXT Uzunluk => 65536 ve =< 16777215 ise: MEDIUMTEXT Uzunluk => 16777216 ve =< 2147483647 ise: LONGTEXT |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Uzunluk => 1 ve =< 8095 ise: VARCHAR (Uzunluk) Uzunluk => 8096 ve =< 65535 ise: TEXT Uzunluk => 65536 ve =< 16777215 ise: MEDIUMTEXT Uzunluk => 16777216 ve =< 2147483647 ise: LONGTEXT |
BLOB |
Sınırsız LOB boyutuna izin ver seçeneği etkinleştirildiğinde:
LOB boyutu sınırı seçeneği etkinleştirildiğinde:
LOB boyutunu sınırlama hakkında bilgi için bkz. Metadata. |
NCLOB |
Sınırsız LOB boyutuna izin ver seçeneği etkinleştirildiğinde:
LOB boyutu sınırı seçeneği etkinleştirildiğinde:
LOB boyutunu sınırlama hakkında bilgi için bkz. Metadata. |
CLOB |
Sınırsız LOB boyutuna izin ver seçeneği etkinleştirildiğinde:
LOB boyutu sınırı seçeneği etkinleştirildiğinde:
LOB boyutunu sınırlama hakkında bilgi için bkz. Metadata. |