MySQL
Bu konu, MySQL hedef bağlayıcısını kullanarak bir MySQL hedefine bağlanabilirliğin nasıl yapılandırılacağını açıklar. MySQL, yalnızca bir çoğaltma görevinde hedef veritabanı olarak kullanılabilir. Bir MySQL hedefine bağlanabilmeniz için önce veritabanında Gerekli izinler yapılandırmanız gerekir. MySQL'e Data Movement gateway aracılığıyla bağlanıyorsanız, sürücüyü Sürücü kurulumu bölümünde açıklandığı gibi yüklemeniz de gerekir.
MySQL bağlayıcısını kullanırken geçerli olan sınırlamalar ve dikkat edilmesi gerekenler hakkında bilgi için bkz. Sınırlamalar ve dikkat edilmesi gerekenler.
Bağlantı özelliklerini ayarlama
Bağlayıcıyı yapılandırmak için aşağıdakileri yapın:
-
Bağlantılar içinde 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
-
Data gateway: Data Movement gateway ile çalışırken, MySQL hedefine olan 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- Bu alan, Data Movement gateway bu abonelik katmanında desteklenmediğinden Qlik Talend Cloud Starter aboneliğinde kullanılamaz.
-
Ayrıca Data Movement gateway makinesine uygun sürücüyü yüklemeniz gerekir. Ayrıntılar için aşağıdaki Sürücü kurulumu bölümüne bakın.
-
Bulut sağlayıcısı: Uygun şekilde aşağıdakilerden birini seçin:
-
Yok
- Şirket içi MySQL, MariaDB, Amazon Aurora veya MySQL için Microsoft Azure Veritabanı - Esnek Sunucu için.
- Data Movement gateway 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 ana bilgisayar adı veya IP adresi.
-
Bağlantı noktası: Veritabanına bağlanırken kullanılacak bağlantı noktası. Varsayılan değer 3306'dır.
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 Veritabanı Türü: Aşağıdakilerden birini seçin:
- Belirli veritabanı: Bu seçenek belirlendiğinde, tüm kaynak şemalar belirtilen Veritabanı içine yüklenir.
- Birden çok veritabanı: Bu seçenek belirlendiğinde, kaynak şemaların her biri karşılık gelen veritabanına yüklenir. Ayrıca, varsayılan olarak tüm Kontrol Tabloları attrep_control adlı yeni bir şemaya çoğaltılır. Kontrol Tabloları hakkında daha fazla bilgi için bkz. Kontrol tabloları.
- Maksimum dosya boyutu (KB): Bir CSV dosyasının MySQL hedef veritabanına yüklenmeden önceki maksimum boyutunu (KB cinsinden) seçin veya yazın. Varsayılan değer 32000 KB'dir.
- Paralel yükleme iş parçacıkları: İş parçacığı sayısını artırmak, verileri MySQL hedef veritabanına yüklerken performansı artırabilir. Her iş parçacığı için ayrı bir bağlantı gerektiğinden, çok sayıda iş parçacığı ayarlamanın veritabanı performansı üzerinde olumsuz bir etkisi olabileceğini unutmayın.
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ı için görünen ad.
Ön koşullar
Gerekli izinler
Bağlayıcı ayarlarında belirtilen kullanıcıya şunlar verilmelidir:
- MySQL hesap erişimi
- MySQL veritabanında okuma/yazma ayrıcalıkları
-
Çoğaltmaya dahil olan her 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 Data Movement 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:
-
Data Movement 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 Data Movement 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:
-
Data Movement 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 Data Movement 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.
-
Data Movement 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.
Data Movement gateway 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 Data Movement gateway 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.soUsageCount = 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 dikkat edilmesi gerekenler
MySQL'i bir çoğaltma hedefi olarak kullanırken aşağıdaki sınırlamalar geçerlidir:
-
MariaDB hedef veritabanına çoğaltma yaparken, DATETIME değeri sıfır olarak ayarlanmışsa, DATETIME değerini geçerli değerlerle değiştiren 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 Microsoft Azure Database for MySQL için geçerli değildir. - MySQL çalışma şekli nedeniyle, bir Tam Yükleme görevi sırasında bir MySQL hedefine veri yüklerken, çoğaltılmış anahtar hataları günlüklere bildirilmez.
-
Bir sütunun değerini mevcut değeriyle güncellerken, MySQL tarafından etkilenen sıfır satır döndürülür (bir satırlık güncelleme gerçekleştiren 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.
-
4 baytlık emoji karakterlerini çoğaltmanız gerekiyorsa, hedef şema karakter seti utf8mb4 olarak ayarlanmalıdır.
-
Bir kaynak tablo çok sayıda sütun içerdiğinde, MySQL'de varsayılan maksimum satır boyutu 8126 bayt olduğundan MySQL bir Row size too large (> 8126) hatası döndürebilir. SaaS uygulama kaynaklarını kullanırken, bu hata çalışma zamanı sırasında oluşur. Veritabanları gibi diğer kaynak türlerini kullanırken, hata görev hazırlığı sırasında oluşur. Bu sınırlamayı gidermek için aşağıdaki yaklaşımlardan birini kullanın:
-
Önerilen yaklaşım: Veriler alındıktan sonra hedefte ihtiyacınız olmayan sütunları kaldırın. Bunun nasıl yapılacağı hakkında bilgi için bkz. Sütunları kaldırma. Hatayla karşılaşmaya devam ederseniz daha fazla sütunu kaldırın.
-
Alternatif çözüm: Tüm kaynak sütunların hedef tabloya dahil edilmesi gerekiyorsa, buna izin verecek belirli MySQL veritabanı yapılandırmaları vardır. Bunlardan biri, MySQL sayfa boyutunu satır boyutunu barındıracak kadar büyük olacak şekilde artırmaktır.
Bilgi notu65.535 bayt sınırını aşan satır boyutlarına sahip kaynaklar için, kaynak alanını daha büyük satır boyutlarını destekleyen bir veri türüne dönüştürmeniz gerekir. Bu, maksimum satır kaydı boyutundaki bilinen bir sınırlamadan kaynaklanmaktadır. Daha fazla bilgi için bkz. satır boyutu sınırları hakkındaki MySQL belgeleri.
-
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. |