Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
跳到主要內容 跳至補充內容

MySQL

此主題說明如何使用 MySQL 目標連接器對 MySQL 目標設定連線能力。MySQL 僅可作為複寫任務中的目標資料庫使用。您需要先在資料庫上設定 必要權限,才能連線至 MySQL 目標。若您正透過 Data Movement gateway 連線至 MySQL,您也需要按照 驅動程式的設定 中的說明安裝驅動程式。

如需關於使用 MySQL 連接器時的限制和考慮事項的資訊,請參閱 限制和考慮事項

設定連線屬性

若要設定連接器,進行下列事項:

  1. 連線中,按一下建立連線

  2. 選取 MySQL 目標連接器,然後提供下列設定:

資料目標

  • 資料閘道使用 Data Movement gateway 時,選取將會用來測試 MySQL 目標連線的資料閘道。其閘道應與用來存取資料來源的閘道相同。

    資訊備註
    • 此欄位無法用於 Qlik Talend Cloud 啟動器 訂閱,因為此訂閱層級不支援 Data Movement gateway
    • 您也需要在 Data Movement gateway 機器上安裝適當的驅動程式。如需詳細資訊,請參閱以下的 驅動程式的設定

  • 雲端提供者:在適當時選擇以下項目之一:

      • 適用於 MySQL 內部部署、MariaDB、Amazon Aurora 或 Microsoft Azure Database for MySQL - 彈性伺服器。
      • 在沒有 Data Movement gateway 的情況下運作時
    • 適用於 Amazon RDS for MariaDB 或 Amazon RDS for MySQL。

    • 適用於 Google Cloud SQL for MySQL。

    • 適用於 Microsoft Azure Database for MySQL。

  • 伺服器:MySQL 資料庫安裝所在電腦的主機名稱或 IP 位址。

  • 連接埠:連線至資料庫時使用的連接埠。預設值為 3306。

帳戶屬性

使用者名稱密碼:獲得授權可存取 MySQL Server 資料庫的使用者的使用者名稱和密碼。

資料庫屬性

  • 目標資料庫類型:選擇下列項目之一:
    • 特定資料庫:若選取此選項,所有來源結構描述將會載入到指定的資料庫中。
    • 多個資料庫:若選取此選項,每個來源結構描述將會載入到對應的資料庫中。此外,依照預設,所有控制表格將會複寫至新的結構描述,稱為 attrep_control。如需更多關於控制表格的資訊,請參閱 控制表格
  • 最大檔案大小 (KB):請先選取或輸入 CSV 檔案的最大大小 (單位為 KB),再載入到 MySQL 目標資料庫中。預設值為 32000 KB。
  • 平行載入執行緒:增加執行緒數量可能會在將資料載入到 MySQL 目標資料庫時改善效能。請注意,設定大量執行緒可能會對資料庫效能造成負面效果,因為每個執行緒需要獨立連線。

內部屬性

內部屬性用於特殊使用情況,因此不會在對話方塊中顯示。您只能在 Qlik 支援指示下使用。

根據需要使用欄位右側的 新建取消 按鈕以新增或移除屬性。

名稱

連線的顯示名稱。

必要條件

必要權限

必須向連接器設定中指定的使用者授予:

  • MySQL 帳戶存取權限
  • MySQL 資料庫中的讀取/寫入權限
  • 參與複寫的每個目標結構描述的下列權限:
    • 改變
    • 建立
    • 建立臨時表格
    • 刪除
    • 拖曳
    • 插入
    • 選取
    • 更新

驅動程式的設定

此區段描述如何安裝所需的 driver。該流程涉及執行將會自動下載、安裝並設定所需 driver 的指令碼。您也可以執行指令碼,以根據需求更新並解除安裝 driver

  • 確認 Python 3.6 或更高版本安裝於 Data Movement 閘道伺服器。

    Python 會預先安裝在大部分的 Linux 發行版。您可以執行下列命令,以查看哪個 Python 版本安裝在您的系統上:

    python3 --version

若要下載並安裝 driver

  1. Data Movement 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  2. 執行下列命令:

    語法:

    ./install mysql

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 Data Movement 閘道機器上的何處複製。完成後,再次執行 install mysql 命令。

    否則,就會顯示 driver 的 EULA。

  3. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  4. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以再次檢視 EULA。

  5. 將會安裝 driver

若您想要在安裝提供的 driver 之前解除安裝先前的 driver 版本,請執行更新命令。

若要下載並更新 driver

  1. Data Movement 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  2. 執行下列命令:

    語法:

    ./update mysql

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 Data Movement 閘道機器上的何處複製。完成後,再次執行 update mysql 命令。

    否則,就會顯示 driver 的 EULA。

  3. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  4. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以從頭檢閱 EULA。
  5. 將會解除安裝舊版 driver,並安裝新版 driver

若您想要解除安裝 driver,請執行解除安裝命令。

若要解除安裝 driver

  1. 停止設定為使用此連接器的所有任務。

  2. Data Movement 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  3. 執行下列命令:

    語法:

    ./uninstall mysql

    將會解除安裝 driver

手動安裝驅動程式

只有在自動驅動程式安裝無法成功完成時,才能嘗試手動安裝 driver

安裝 Data Movement gateway 後,下載 mysql-connector-odbc-<version>.x86_64.rpm 驅動程式。您可以在 /opt/qlik/gateway/movement/drivers/manifests/mysql.yamlbinary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 RPM 複製到 Data Movement gateway 機器。

Data Movement gateway 伺服器上,開啟 shell prompt 並進行以下項目:

  1. 停止 Data Movement gateway 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 將驅動程式安裝在 Data Movement gateway 機器。
  4. 變更任務目錄至 <Data Movement gateway-Install-Dir>/bin

  5. 複製驅動程式位置至 site_arep_login.sh 檔案:

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

    這將新增驅動程式至「LD_LIBRARY_PATH」並更新位於 site_arep_login.sh 檔案的驅動程式位置。

  6. 可自選,確認已複製驅動程式位置:

    cat site_arep_login.sh
  7. 確定 /etc/odbcinst.ini 檔案含有 MySQL 的項目,如以下範例所示:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. 開始 Data Movement gateway 服務:

    sudo systemctl start repagent

  9. 可自行選擇確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

限制和考慮事項

使用 MySQL 作為複寫目標時,下列限制適用:

  • 複寫至 MariaDB 目標資料庫時,若日期時間值設定為零,您需要以有效值定義取代日期時間的轉換。例如︰

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

    資訊備註此限制不適用於 Microsoft Azure Database for MySQL。
  • 由於 MySQL 的操作方式,在完整載入任務期間將資料載入到 MySQL 目標時,不會向記錄報告複製關鍵錯誤。
  • 將欄的值更新為現有的值時,會從 MySQL 傳回受影響的零列 (不同於執行一列更新的 Oracle 和 Microsoft SQL Server)。

    這會在 attrep_apply_exceptions Control Table 產生項目和下列警告:

    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 的問題 (已在版本 8.0 解決),當完整載入使用 CSV 檔案時,多位元組字元無法插入文字欄中。結果,若目標端點是 MySQL 5.7,且複寫的表格包含文字欄與 UTF-8 多位元組字元,則目標表格可能是空的。

     

    因應措施:

    連接器設定中,將 loadUsingCSV 內部參數設定為 FALSE。請注意,這可能會影響效能。

  • 若您需要複寫 4 位元組表情圖示字元,目標結構描述字元集合必須設定為 utf8mb4。

資料類型

會保留原生資料類型資訊,並顯示在資料集檢視的原生資料類型欄中。若看不見欄,您需要開啟資料集檢視的欄選擇器並選取原生資料類型欄。

支援的資料類型
Qlik Cloud 資料類型 MySQL 資料類型

BOOL

BOOL

位元組

若長度為 => 1 且 =< 8095,則:

VARBINARY (長度)

若長度為 => 8096 且 =< 65535,則:

BLOB

若長度為 => 65536 且 =< 16777215,則:

MEDIUMBLOB

若長度為 => 16777216 且 =< 2147483647,則:

LONGBLOB

日期

日期

時間

時間

日期時間

若刻度為 => 0 且 =< 6,則:

小數點 (p,s)

若刻度為 => 7 且 =< 12,則:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

整數

INT8

BIGINT

數字

若刻度為 => 0 且 =< 30,則:

小數點 (p,s)

若刻度為 => 31 且 =< 100,則:

VARCHAR (45)

REAL4

浮動

REAL8

雙重

字串

若長度為 => 1 且 =< 8095,則:

VARCHAR (長度)

若長度為 => 8096 且 =< 65535,則:

文字

若長度為 => 65536 且 =< 16777215,則:

MEDIUMTEXT

若長度為 => 16777216 且 =< 2147483647,則:

LONGTEXT

UINT1

未簽署 TINYINT

UINT2

未簽署 SMALLINT

UINT4

未簽署整數

UINT8

未簽署 BIGINT

WSTRING

若長度為 => 1 且 =< 8095,則:

VARCHAR (長度)

若長度為 => 8096 且 =< 65535,則:

文字

若長度為 => 65536 且 =< 16777215,則:

MEDIUMTEXT

若長度為 => 16777216 且 =< 2147483647,則:

LONGTEXT

BLOB

若啟用允許無限 LOB 大小選項:

  • LONGBLOB

若啟用限制 LOB 大小為選項:

  • 若指定的值為 63 KB 或更小,則:

    BLOB

  • 若指定的值為 64 KB 或更大,則:

    LONGBLOB

如需更多關於限制 LOB 大小的資訊,請參閱 Metadata

NCLOB

若啟用允許無限 LOB 大小選項:

  • 文字

若啟用限制 LOB 大小為選項:

  • 若指定的值為 63 KB 或更小,則:

    文字

  • 若指定的值為 64 KB 或更大,則:

    LONGTEXT

如需更多關於限制 LOB 大小的資訊,請參閱 Metadata

CLOB

若啟用允許無限 LOB 大小選項:

  • 文字字元集 UTF-16

若啟用限制 LOB 大小為選項:

  • 若指定的值為 63 KB 或更小,則:

    文字字元集 UTF-16

  • 若指定的值為 64 KB 或更大,則:

    LONGTEXT 字元集 UTF-16

如需更多關於限制 LOB 大小的資訊,請參閱 Metadata

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!