閱讀820 返回首頁    go 阿裏雲 go 技術社區[雲棲]


MySQL 中的數據是否可以放到雲數據庫 HybridDB 版進行分析__使用管理常見問題_產品相關問題_雲數據庫 HybridDB-阿裏雲

向大家提供幾種經過驗證的向阿裏雲雲數據庫 HybridDB 版導入大量數據的方法。

一:使用 COPY 命令導入數據

COPY語法

  1. 特點:
  2. 1. HybridDB 提供的原生數據導入方法。
  3. 2. 需要先把數據從 Mysql 導出成文本文件。
  4. 3. 適合少量數據上雲,導入過程中數據會經過 HybridDB 的 Master 節點,所以性能不會特別理想。

二: 通過阿裏雲開源的工具 mysql2pgsql 導入

mysql2pgsql 使用方法

  1. 特點:
  2. 1. Mysql 導入 HybridDB DB 到 DB 不落地的導入方案,簡單實用。
  3. 2. 推薦購買 ECS,和在 ECS 上使用該工具,特別適合從 RDS Mysql/ECS 自建實例導入數據。
  4. 3. 該工具已經開源了代碼,各位可以定製自己的需求。
  5. 4. 該工具寫入端也會走 Master 節點,所以性能不會特別理想。

三: 通過 OSS 導入大量數據

gp_oss_ext 使用方法

ossfs 使用方法

  1. 該方法的流程如下:
  2. 1. 購買和開通阿裏雲 ECS,OSS 服務。
  3. 2. 在 ECS 上使用 ossfs 包掛載購買的 oss 為本地文件係統。
  4. 3. 在 ECS 上安裝 mysql 二進製RPM。
  5. 4. 使用 mysqldump 命令流式獲取源庫中對應表中的數據,並增量寫入到 oss 中。
  6. 5. 使用 gp_oss_ext 在 HybridDB 中創建 oss 外部表,並行的將數據導入到 HybridDB 中。

mysqldump 導出舉例:

  1. nohup /home/mysql/bin/mysqldump -h192.168.1.1 -P3306 -utest -ptest testdb testtab | sed 's/),(/n/g;s/NULL//g' | split -l 1000000 - /ossdata/testtab/data. 1>/home/test/testtab.out 2>&1 &

上麵的舉例有幾個要點,大家可以根據自己的需求定製

  1. 1. 用戶可以使用 mysqldump 導出數據,也可以使用 mysql 命令,如果數據量較大,建議使用 --quick 參數,避免內存不足。
  2. 2. mysqldump 跟上的 sed 命令是為了格式化導出的數據,以符合 HybridDB 導入的格式規範,大家可以根據需求定製這一項。
  3. 3. split 也是一個比較關鍵的點。它用於定製切割和存放文件的規則。原因有以下兩點
  4. 3.1 oss 上普通文件有大小限製
  5. 3.2 gp_oss_ext 並行導入 oss 上的數據是以文件為單位並發的,推薦在 OSS 上使用虛擬文件夾存放對應一個表的所有數據。

從 OSS 裝載數據的特點:

  1. 1. 這是一個應對大量數據導入到 HybridDB 的方法,可以輕鬆從 Mysql 導入上百G,甚至上T的數據到 HybridDB。
  2. 2. 不需要很大的緩衝臨時空間,數據是流式寫入到 OSS 的。
  3. 3. 導出和導入時以表為單位進行的,使用者可以並發操作多個表以提高整體的性能。
  4. 4. 該方法的性能遠好於前兩種,導入到雲上 HybridDB 規格越大,性能也會越好。

最後更新:2016-11-24 19:10:04

  上一篇:go 如何獲取更多技術信息__常見問題_雲數據庫 HybridDB-阿裏雲
  下一篇:go 如何開通實例__購買續費常見問題_產品相關問題_雲數據庫 HybridDB-阿裏雲