MySQL | Qlik Cloud 說明
跳到主要內容 跳至補充內容

MySQL

本主題說明如何使用 MySQL 目標連接器設定與 MySQL 目標的連線。MySQL 只能在複寫任務中用作目標資料庫。在連線到 MySQL 目標之前,您需要在資料庫上設定 必要權限。如果您透過 資料移動閘道 連線到 MySQL,您還需要安裝驅動程式,如 驅動程式設定 中所述。

如需有關使用 MySQL 連接器時的限制和注意事項的資訊,請參閱 限制和注意事項

設定連線屬性

若要設定連接器,請執行下列操作:

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

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

資料目標

  • 資料閘道使用 資料移動閘道 時,選取將用於測試與 MySQL 目標連線的資料閘道。這應該與用於存取資料來源的閘道相同。

    資訊備註
    • 此欄位不適用於 Qlik Talend Cloud 啟動器 訂閱,因為此訂閱層級不支援 資料移動閘道
    • 您還需要在 資料移動閘道 機器上安裝適當的驅動程式。如需詳細資訊,請參閱下方的 驅動程式設定

  • 雲端供應商:視情況選擇下列其中一項:

      • 適用於內部部署 MySQL、MariaDB、Amazon Aurora 或 Microsoft Azure Database for MySQL - 彈性伺服器。
      • 在不使用 資料移動閘道 的情況下運作時
    • 適用於 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 檔案在載入 MySQL 目標資料庫之前的大小上限 (以 KB 為單位)。預設值為 32000 KB。
  • 平行載入執行緒:將資料載入 MySQL 目標資料庫時,增加執行緒數量可能會提高效能。請注意,設定大量執行緒可能會對資料庫效能產生不利影響,因為每個執行緒都需要獨立的連線。

內部屬性

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

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

名稱

連線的顯示名稱。

先決條件

必要權限

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

  • MySQL 帳戶存取權
  • MySQL 資料庫中的讀取/寫入權限
  • 複寫中涉及的每個目標結構描述的下列權限:
    • ALTER
    • CREATE
    • CREATE TEMPORARY TABLES
    • DELETE
    • DROP
    • INSERT
    • SELECT
    • UPDATE

驅動程式設定

此區段描述如何安裝所需的 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

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

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 目標資料庫時,如果 DATETIME 值設為零,您需要定義一個轉換,將 DATETIME 取代為有效值。例如:

    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.

  • 如果您需要複寫 4 位元組的表情符號字元,目標結構描述字元集必須設為 utf8mb4。

  • 當來源資料表包含大量欄時,MySQL 可能會傳回 Row size too large (> 8126) 錯誤,因為 8126 位元組是 MySQL 中預設的最大列大小。使用 SaaS 應用程式來源時,此錯誤會在執行階段發生。使用其他來源類型 (例如資料庫) 時,此錯誤會在工作準備期間發生。若要解決此限制,請使用下列任一方法:

    • 建議方法:擷取資料後,移除目標上不需要的欄。如需如何執行此操作的資訊,請參閱 移除欄。如果您仍然遇到錯誤,請移除更多欄。

    • 替代緩解措施:如果您需要將所有來源欄包含在目標資料表中,某些 MySQL 資料庫組態可以允許此操作。其中之一是增加 MySQL 頁面大小,使其足以容納列大小。

      資訊備註對於列大小超過 65,535 位元組限制的來源,您必須將來源欄位轉換為支援較大列大小的資料類型。這是由於最大列記錄大小的已知限制。如需詳細資訊,請參閱 關於列大小限制的 MySQL 文件

資料類型

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

支援的資料類型
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

此頁面是否對您有幫助?

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